summaryrefslogtreecommitdiff
path: root/libavformat
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2013-05-10 16:55:06 +0200
committerMichael Niedermayer <michaelni@gmx.at>2013-05-10 16:55:06 +0200
commita079ed63d3c0d9a31bc4f4fd659a0b31c72ad4bc (patch)
tree29dde079b915ec0dcc02a4e3bd893668556000bf /libavformat
parent63e8fc4d8f0873fd23ffb945d63297c038f10c4e (diff)
avidec: Enable full parsing for potencoder mpeg1/2
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavformat')
-rw-r--r--libavformat/avidec.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/libavformat/avidec.c b/libavformat/avidec.c
index 28f2d64527..2066c18f65 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)