From 98a7d560b4f835ba5b99b9974ee1a2c096198bea Mon Sep 17 00:00:00 2001 From: John Stebbins Date: Fri, 25 Mar 2011 00:34:18 +0100 Subject: 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 --- libavformat/matroskadec.c | 2 ++ 1 file changed, 2 insertions(+) (limited to 'libavformat') 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; inb_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, -- cgit v1.2.3