summaryrefslogtreecommitdiffstats
path: root/stream
diff options
context:
space:
mode:
authorUoti Urpala <uau@glyph.nonexistent.invalid>2010-04-23 23:50:34 +0300
committerUoti Urpala <uau@glyph.nonexistent.invalid>2010-04-23 23:50:34 +0300
commit7be5f14c3ab0cc3e41f398827f4cf6d4f31d7b99 (patch)
tree61c2502f8663afc21a5d7f341e8c7808f3a9eaaf /stream
parent1d4d1bff82f70c7cde37b1beaf1b55c72b3d6618 (diff)
downloadmpv-7be5f14c3ab0cc3e41f398827f4cf6d4f31d7b99.tar.bz2
mpv-7be5f14c3ab0cc3e41f398827f4cf6d4f31d7b99.tar.xz
demux_lavf, stream_ffmpeg: support librtmp seeks
Diffstat (limited to 'stream')
-rw-r--r--stream/stream_ffmpeg.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/stream/stream_ffmpeg.c b/stream/stream_ffmpeg.c
index fe8df9446d..e6705883fc 100644
--- a/stream/stream_ffmpeg.c
+++ b/stream/stream_ffmpeg.c
@@ -50,7 +50,8 @@ static int seek(stream_t *s, off_t newpos)
static int control(stream_t *s, int cmd, void *arg)
{
- int64_t size;
+ int64_t size, ts;
+ double pts;
switch(cmd) {
case STREAM_CTRL_GET_SIZE:
size = url_filesize(s->priv);
@@ -58,6 +59,14 @@ static int control(stream_t *s, int cmd, void *arg)
*(off_t *)arg = size;
return 1;
}
+ break;
+ case STREAM_CTRL_SEEK_TO_TIME:
+ pts = *(double *)arg;
+ ts = pts * AV_TIME_BASE;
+ ts = av_url_read_seek(s->priv, -1, ts, 0);
+ if (ts >= 0)
+ return 1;
+ break;
}
return STREAM_UNSUPPORTED;
}