diff librtmp.c @ 5963:12bdd63f5259 libavformat

Implement librtmp seek support. Implement flv_read_seek(), add a missing check on stream_index and fix timestamp rounding in rtmp_read_seek(). Also add the flv_read_seek2() function, which is not enabled but is useful as reference. To actually implement flv_read_seek2() correctly, there would need to be some corresponding av_url_read_fseek2() function to propagate the timestamps down to the ByteIOContext and URLContext. Patch by Howard Chu <hyc <at> highlandsun.com>. See the thread: Subject: [FFmpeg-devel] RTMP seek support Date: 2010-03-28 23:35:02 GMT
author stefano
date Sun, 18 Apr 2010 19:09:25 +0000
parents e967aa2c1754
children 178de7695c6c
line wrap: on
line diff
--- a/librtmp.c	Sun Apr 18 19:09:22 2010 +0000
+++ b/librtmp.c	Sun Apr 18 19:09:25 2010 +0000
@@ -144,7 +144,10 @@
         return AVERROR(ENOSYS);
 
     /* seeks are in milliseconds */
-    timestamp = av_rescale(timestamp, AV_TIME_BASE, 1000);
+    if (stream_index < 0)
+        timestamp = av_rescale_rnd(timestamp, 1000, AV_TIME_BASE,
+            flags & AVSEEK_FLAG_BACKWARD ? AV_ROUND_DOWN : AV_ROUND_UP);
+
     if (!RTMP_SendSeek(r, timestamp))
         return -1;
     return timestamp;