[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