[FFmpeg-cvslog] flv: Workaround for buggy Omnia A/XE encoder
Benjamin Larsson
git at videolan.org
Sat Jan 11 21:17:20 CET 2014
ffmpeg | branch: master | Benjamin Larsson <benjamin at southpole.se> | Sun Jan 5 14:42:14 2014 +0100| [547f8345373843fe4428e2b3de6b46de4df797af] | committer: Anton Khirnov
flv: Workaround for buggy Omnia A/XE encoder
The Omnia A/XE encoder writes the explicit extra data incorrectly
and wrongly disables parametric stereo. Truncating the extra data
by setting the size to 2 works around this. The AAC extra data
parser will then only parse the correct parts.
Bug-id: 599
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=547f8345373843fe4428e2b3de6b46de4df797af
---
libavformat/flvdec.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/libavformat/flvdec.c b/libavformat/flvdec.c
index c65c90c..a3630f8 100644
--- a/libavformat/flvdec.c
+++ b/libavformat/flvdec.c
@@ -915,6 +915,12 @@ skip:
return ret;
if (st->codec->codec_id == AV_CODEC_ID_AAC) {
MPEG4AudioConfig cfg;
+
+ /* Workaround for buggy Omnia A/XE encoder */
+ AVDictionaryEntry *t = av_dict_get(s->metadata, "Encoder", NULL, 0);
+ if (t && !strcmp(t->value, "Omnia A/XE"))
+ st->codec->extradata_size = 2;
+
avpriv_mpeg4audio_get_config(&cfg, st->codec->extradata,
st->codec->extradata_size * 8, 1);
st->codec->channels = cfg.channels;
More information about the ffmpeg-cvslog
mailing list