summaryrefslogtreecommitdiff
path: root/libavformat/matroskadec.c
diff options
context:
space:
mode:
authorJohn Stebbins <stebbins@jetheaddev.com>2011-03-25 00:34:18 +0100
committerLuca Barbato <lu_zero@gentoo.org>2011-03-25 00:34:18 +0100
commit98a7d560b4f835ba5b99b9974ee1a2c096198bea (patch)
tree2eeba02b3e82f9784955094aa21c6eda515d999a /libavformat/matroskadec.c
parent5666a9f20c6ef2b207e0517c8eeb9556badf76a3 (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.c2
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,