ffmpeg | branch: release/2.8 | Michael Niedermayer <mich...@niedermayer.cc> | Wed Dec 9 21:45:07 2015 +0100| [07b43fb69afdcd091af7fd32228c2608fd4821cb] | committer: Michael Niedermayer
avformat/mov: Enable parser for mp3s by old HandBrake Fixes Ticket5047 Signed-off-by: Michael Niedermayer <mich...@niedermayer.cc> (cherry picked from commit 861f47ddf463926da2cba9e12665e7f004419f4b) Signed-off-by: Michael Niedermayer <mich...@niedermayer.cc> > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=07b43fb69afdcd091af7fd32228c2608fd4821cb --- libavformat/isom.h | 1 + libavformat/mov.c | 13 +++++++++++++ 2 files changed, 14 insertions(+) diff --git a/libavformat/isom.h b/libavformat/isom.h index 6e921c0..1f466f0 100644 --- a/libavformat/isom.h +++ b/libavformat/isom.h @@ -184,6 +184,7 @@ typedef struct MOVContext { MOVTrackExt *trex_data; unsigned trex_count; int itunes_metadata; ///< metadata are itunes style + int handbrake_version; int chapter_track; int use_absolute_path; int ignore_editlist; diff --git a/libavformat/mov.c b/libavformat/mov.c index 735e956..4ce4e2d 100644 --- a/libavformat/mov.c +++ b/libavformat/mov.c @@ -419,6 +419,12 @@ retry: snprintf(key2, sizeof(key2), "%s-%s", key, language); av_dict_set(&c->fc->metadata, key2, str, 0); } + if (!strcmp(key, "encoder")) { + int major, minor, micro; + if (sscanf(str, "HandBrake %d.%d.%d", &major, &minor, µ) == 3) { + c->handbrake_version = 1000000*major + 1000*minor + micro; + } + } } av_log(c->fc, AV_LOG_TRACE, "lang \"%3s\" ", language); av_log(c->fc, AV_LOG_TRACE, "tag \"%s\" value \"%s\" atom \"%.4s\" %d %"PRId64"\n", @@ -4528,6 +4534,13 @@ static int mov_read_header(AVFormatContext *s) return err; } } + if (mov->handbrake_version && + mov->handbrake_version <= 1000000*0 + 1000*10 + 0 && // 0.10.0 + st->codec->codec_id == AV_CODEC_ID_MP3 + ) { + av_log(s, AV_LOG_VERBOSE, "Forcing full parsing for mp3 stream\n"); + st->need_parsing = AVSTREAM_PARSE_FULL; + } } if (mov->trex_data) { _______________________________________________ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog