diff options
author | John Stebbins <stebbins@jetheaddev.com> | 2011-03-25 02:34:18 +0300 |
---|---|---|
committer | Luca Barbato <lu_zero@gentoo.org> | 2011-03-25 02:34:18 +0300 |
commit | 98a7d560b4f835ba5b99b9974ee1a2c096198bea (patch) | |
tree | 2eeba02b3e82f9784955094aa21c6eda515d999a /libavformat/matroskadec.c | |
parent | 5666a9f20c6ef2b207e0517c8eeb9556badf76a3 (diff) |
matroskadec: set default duration for simple block
When a normal Block is parsed, duration is initialized to
AV_NOPTS_VALUE. If it is not changed, then the track's default
duration is used. But for SimpleBlock, duration is initialized to
0 instead of AV_NOPTS_VALUE. This is due to the difference in how
EBML_NEST vs EBML_PASS are processed. Setting duration to 0 leads
eventually to wrongly estimate the frame duration in util.c
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
Diffstat (limited to 'libavformat/matroskadec.c')
-rw-r--r-- | libavformat/matroskadec.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c index 828d5787af..61a77abdf8 100644 --- a/libavformat/matroskadec.c +++ b/libavformat/matroskadec.c @@ -1852,6 +1852,8 @@ static int matroska_parse_cluster(MatroskaDemuxContext *matroska) for (i=0; i<blocks_list->nb_elem; i++) if (blocks[i].bin.size > 0 && blocks[i].bin.data) { int is_keyframe = blocks[i].non_simple ? !blocks[i].reference : -1; + if (!blocks[i].non_simple) + blocks[i].duration = AV_NOPTS_VALUE; res=matroska_parse_block(matroska, blocks[i].bin.data, blocks[i].bin.size, blocks[i].bin.pos, cluster.timecode, |