[FFmpeg-cvslog] avidec: Enable full parsing for potencoder mpeg1/2

Michael Niedermayer git at videolan.org
Fri May 10 17:00:53 CEST 2013


ffmpeg | branch: master | Michael Niedermayer <michaelni at gmx.at> | Fri May 10 16:55:06 2013 +0200| [a079ed63d3c0d9a31bc4f4fd659a0b31c72ad4bc] | committer: Michael Niedermayer

avidec: Enable full parsing for potencoder mpeg1/2

Signed-off-by: Michael Niedermayer <michaelni at gmx.at>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=a079ed63d3c0d9a31bc4f4fd659a0b31c72ad4bc
---

 libavformat/avidec.c |   11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/libavformat/avidec.c b/libavformat/avidec.c
index 28f2d64..2066c18 100644
--- a/libavformat/avidec.c
+++ b/libavformat/avidec.c
@@ -365,6 +365,7 @@ static int avi_read_header(AVFormatContext *s)
     int amv_file_format=0;
     uint64_t list_end = 0;
     int ret;
+    AVDictionaryEntry *dict_entry;
 
     avi->stream_index= -1;
 
@@ -802,6 +803,16 @@ static int avi_read_header(AVFormatContext *s)
         avi_load_index(s);
     avi->index_loaded |= 1;
     avi->non_interleaved |= guess_ni_flag(s) | (s->flags & AVFMT_FLAG_SORT_DTS);
+
+    dict_entry = av_dict_get(s->metadata, "ISFT", NULL, 0);
+    if (dict_entry && !strcmp(dict_entry->value, "PotEncoder"))
+        for (i=0; i<s->nb_streams; i++) {
+            AVStream *st = s->streams[i];
+            if (   st->codec->codec_id == AV_CODEC_ID_MPEG1VIDEO
+                || st->codec->codec_id == AV_CODEC_ID_MPEG2VIDEO)
+                st->need_parsing = AVSTREAM_PARSE_FULL;
+        }
+
     for(i=0; i<s->nb_streams; i++){
         AVStream *st = s->streams[i];
         if(st->nb_index_entries)



More information about the ffmpeg-cvslog mailing list