diff options
author | wm4 <wm4@nowhere> | 2019-11-07 15:54:34 +0100 |
---|---|---|
committer | wm4 <wm4@nowhere> | 2019-11-07 22:53:13 +0100 |
commit | e5a9b792ecf08ddbcf3b674de3a00f7a919d1858 (patch) | |
tree | ead751b12d006d13f138867324b62dda62b8e77b /demux/demux_raw.c | |
parent | ca75fedaf4dea19986159f1caa5ab9ebc202f9d4 (diff) | |
download | mpv-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.c | 9 |
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); } |