asfdec: substract preroll time from marker presentation time
authorVladimir Pantelic <vladoman@gmail.com>
Thu, 19 Sep 2013 15:50:34 +0000 (17:50 +0200)
committerAnton Khirnov <anton@khirnov.net>
Thu, 19 Sep 2013 17:37:28 +0000 (19:37 +0200)
this was forgotten when we changed ASF to not output the preroll time

Signed-off-by: Vladimir Pantelic <vladoman@gmail.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
libavformat/asfdec.c

index f3978f0..b99cb02 100644 (file)
@@ -672,6 +672,7 @@ static int asf_read_metadata(AVFormatContext *s, int64_t size)
 static int asf_read_marker(AVFormatContext *s, int64_t size)
 {
     AVIOContext *pb = s->pb;
+    ASFContext *asf = s->priv_data;
     int i, count, name_len, ret;
     char name[1024];
 
@@ -689,6 +690,7 @@ static int asf_read_marker(AVFormatContext *s, int64_t size)
 
         avio_rl64(pb);             // offset, 8 bytes
         pres_time = avio_rl64(pb); // presentation time
+        pres_time -= asf->hdr.preroll * 10000;
         avio_rl16(pb);             // entry length
         avio_rl32(pb);             // send time
         avio_rl32(pb);             // flags