From: Matthieu Patou <[email protected]>
Suggested-by: [email protected]
Signed-off-by: James Almer <[email protected]>
---
libavformat/flv.h | 6 ++++--
libavformat/flvdec.c | 11 +++++++++--
2 files changed, 13 insertions(+), 4 deletions(-)
diff --git a/libavformat/flv.h b/libavformat/flv.h
index 29bb36f7f6..6f3cad04e1 100644
--- a/libavformat/flv.h
+++ b/libavformat/flv.h
@@ -97,8 +97,10 @@ enum {
FLV_CODECID_NELLYMOSER = 6 << FLV_AUDIO_CODECID_OFFSET,
FLV_CODECID_PCM_ALAW = 7 << FLV_AUDIO_CODECID_OFFSET,
FLV_CODECID_PCM_MULAW = 8 << FLV_AUDIO_CODECID_OFFSET,
- FLV_CODECID_AAC = 10<< FLV_AUDIO_CODECID_OFFSET,
- FLV_CODECID_SPEEX = 11<< FLV_AUDIO_CODECID_OFFSET,
+ FLV_CODECID_OPUS = 9 << FLV_AUDIO_CODECID_OFFSET,
+ FLV_CODECID_AAC = 10 << FLV_AUDIO_CODECID_OFFSET,
+ FLV_CODECID_SPEEX = 11 << FLV_AUDIO_CODECID_OFFSET,
+
};
enum {
diff --git a/libavformat/flvdec.c b/libavformat/flvdec.c
index dafedb4770..48ef220a22 100644
--- a/libavformat/flvdec.c
+++ b/libavformat/flvdec.c
@@ -236,6 +236,8 @@ static int flv_same_audio_codec(AVCodecParameters *apar,
int flags)
case FLV_CODECID_PCM_ALAW:
return apar->sample_rate == 8000 &&
apar->codec_id == AV_CODEC_ID_PCM_ALAW;
+ case FLV_CODECID_OPUS:
+ return apar->codec_id == AV_CODEC_ID_OPUS;
default:
return apar->codec_tag == (flv_codecid >> FLV_AUDIO_CODECID_OFFSET);
}
@@ -294,6 +296,9 @@ static void flv_set_audio_codec(AVFormatContext *s,
AVStream *astream,
apar->sample_rate = 8000;
apar->codec_id = AV_CODEC_ID_PCM_ALAW;
break;
+ case FLV_CODECID_OPUS:
+ apar->codec_id = AV_CODEC_ID_OPUS;
+ break;
default:
avpriv_request_sample(s, "Audio codec (%x)",
flv_codecid >> FLV_AUDIO_CODECID_OFFSET);
@@ -1261,7 +1266,8 @@ retry_duration:
st->codecpar->codec_id == AV_CODEC_ID_H265 ||
st->codecpar->codec_id == AV_CODEC_ID_MPEG4 ||
st->codecpar->codec_id == AV_CODEC_ID_VP8 ||
- st->codecpar->codec_id == AV_CODEC_ID_VP9) {
+ st->codecpar->codec_id == AV_CODEC_ID_VP9 ||
+ st->codecpar->codec_id == AV_CODEC_ID_OPUS) {
int type = avio_r8(s->pb);
size--;
@@ -1289,7 +1295,8 @@ retry_duration:
}
if (type == 0 && (!st->codecpar->extradata || st->codecpar->codec_id
== AV_CODEC_ID_AAC ||
st->codecpar->codec_id == AV_CODEC_ID_H264 ||
st->codecpar->codec_id == AV_CODEC_ID_H265 ||
- st->codecpar->codec_id == AV_CODEC_ID_VP8 ||
st->codecpar->codec_id == AV_CODEC_ID_VP9)) {
+ st->codecpar->codec_id == AV_CODEC_ID_VP8 ||
st->codecpar->codec_id == AV_CODEC_ID_VP9 ||
+ st->codecpar->codec_id == AV_CODEC_ID_OPUS)) {
AVDictionaryEntry *t;
if (st->codecpar->extradata) {
--
2.32.0
_______________________________________________
ffmpeg-devel mailing list
[email protected]
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
[email protected] with subject "unsubscribe".