summaryrefslogtreecommitdiffstats
path: root/demux/demux_raw.c
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2019-11-07 15:54:34 +0100
committerwm4 <wm4@nowhere>2019-11-07 22:53:13 +0100
commite5a9b792ecf08ddbcf3b674de3a00f7a919d1858 (patch)
treeead751b12d006d13f138867324b62dda62b8e77b /demux/demux_raw.c
parentca75fedaf4dea19986159f1caa5ab9ebc202f9d4 (diff)
downloadmpv-e5a9b792ecf08ddbcf3b674de3a00f7a919d1858.tar.bz2
mpv-e5a9b792ecf08ddbcf3b674de3a00f7a919d1858.tar.xz
stream: replace STREAM_CTRL_GET_SIZE with a proper entrypoint
This is overlay convoluted as a stream control, and important enough to warrant "first class" functionality.
Diffstat (limited to 'demux/demux_raw.c')
-rw-r--r--demux/demux_raw.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/demux/demux_raw.c b/demux/demux_raw.c
index 7469d80c5e..de657feb8c 100644
--- a/demux/demux_raw.c
+++ b/demux/demux_raw.c
@@ -137,8 +137,8 @@ static int generic_open(struct demuxer *demuxer)
struct stream *s = demuxer->stream;
struct priv *p = demuxer->priv;
- int64_t end = 0;
- if (stream_control(s, STREAM_CTRL_GET_SIZE, &end) == STREAM_OK)
+ int64_t end = stream_get_size(s);
+ if (end >= 0)
demuxer->duration = (end / p->frame_size) / p->frame_rate;
return 0;
@@ -299,8 +299,7 @@ static void raw_seek(demuxer_t *demuxer, double seek_pts, int flags)
{
struct priv *p = demuxer->priv;
stream_t *s = demuxer->stream;
- int64_t end = 0;
- stream_control(s, STREAM_CTRL_GET_SIZE, &end);
+ int64_t end = stream_get_size(s);
int64_t frame_nr = seek_pts * p->frame_rate;
frame_nr = frame_nr - (frame_nr % p->read_frames);
int64_t pos = frame_nr * p->frame_size;
@@ -308,7 +307,7 @@ static void raw_seek(demuxer_t *demuxer, double seek_pts, int flags)
pos = end * seek_pts;
if (pos < 0)
pos = 0;
- if (end && pos > end)
+ if (end > 0 && pos > end)
pos = end;
stream_seek(s, (pos / p->frame_size) * p->frame_size);
}