summaryrefslogtreecommitdiff
path: root/libavcodec/opus.c
diff options
context:
space:
mode:
authorKieran Kunhya <kierank@obe.tv>2014-10-18 00:25:16 +0100
committerMichael Niedermayer <michaelni@gmx.at>2014-10-26 22:29:07 +0100
commit74141f693ded2fbf75af56fff309d2db35183635 (patch)
tree8f531d7dba7aa00e505990eab6e980b67ed75c17 /libavcodec/opus.c
parent05da586fef865274d44da57f841068b5f17c812c (diff)
downloadffmpeg-74141f693ded2fbf75af56fff309d2db35183635.tar.gz
avcodec: Add support for Opus in MPEG-TS
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavcodec/opus.c')
-rw-r--r--libavcodec/opus.c11
1 files changed, 3 insertions, 8 deletions
diff --git a/libavcodec/opus.c b/libavcodec/opus.c
index e76c510a77..6b3d3c310e 100644
--- a/libavcodec/opus.c
+++ b/libavcodec/opus.c
@@ -290,10 +290,6 @@ av_cold int ff_opus_parse_extradata(AVCodecContext *avctx,
OpusContext *s)
{
static const uint8_t default_channel_map[2] = { 0, 1 };
- uint8_t default_extradata[19] = {
- 'O', 'p', 'u', 's', 'H', 'e', 'a', 'd',
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- };
int (*channel_reorder)(int, int) = channel_reorder_unknown;
@@ -308,9 +304,8 @@ av_cold int ff_opus_parse_extradata(AVCodecContext *avctx,
"Multichannel configuration without extradata.\n");
return AVERROR(EINVAL);
}
- default_extradata[9] = (avctx->channels == 1) ? 1 : 2;
- extradata = default_extradata;
- extradata_size = sizeof(default_extradata);
+ extradata = opus_default_extradata;
+ extradata_size = sizeof(opus_default_extradata);
} else {
extradata = avctx->extradata;
extradata_size = avctx->extradata_size;
@@ -330,7 +325,7 @@ av_cold int ff_opus_parse_extradata(AVCodecContext *avctx,
avctx->delay = AV_RL16(extradata + 10);
- channels = extradata[9];
+ channels = avctx->extradata ? extradata[9] : (avctx->channels == 1) ? 1 : 2;
if (!channels) {
av_log(avctx, AV_LOG_ERROR, "Zero channel count specified in the extadata\n");
return AVERROR_INVALIDDATA;