diff options
author | wm4 <wm4@nowhere> | 2014-11-16 18:13:41 +0100 |
---|---|---|
committer | wm4 <wm4@nowhere> | 2014-11-16 18:13:41 +0100 |
commit | 78cbbb4c49c76558eea3397d7fd0f90978248210 (patch) | |
tree | b9aa703b3544859ee9d67be08b551580c7894484 /demux | |
parent | 613ee8f450c90e9feb27842c94d0c9104d9cc2f3 (diff) | |
download | mpv-78cbbb4c49c76558eea3397d7fd0f90978248210.tar.bz2 mpv-78cbbb4c49c76558eea3397d7fd0f90978248210.tar.xz |
demux_cue: use stream_peek()
This could cause probing failures with unseekable streams. (Although I'm
not perfectly sure why; seeking back should work in this particular
case.)
Diffstat (limited to 'demux')
-rw-r--r-- | demux/demux_cue.c | 8 |
1 files changed, 2 insertions, 6 deletions
diff --git a/demux/demux_cue.c b/demux/demux_cue.c index 2f2e6fca46..bc1b727f5f 100644 --- a/demux/demux_cue.c +++ b/demux/demux_cue.c @@ -35,13 +35,9 @@ static int try_open_file(struct demuxer *demuxer, enum demux_check check) { struct stream *s = demuxer->stream; if (check >= DEMUX_CHECK_UNSAFE) { - char buf[PROBE_SIZE]; - int len = stream_read(s, buf, sizeof(buf)); - if (len <= 0) + bstr d = stream_peek(s, PROBE_SIZE); + if (d.len < 1 || !mp_probe_cue(d)) return -1; - if (!mp_probe_cue((struct bstr) { buf, len })) - return -1; - stream_seek(s, 0); } demuxer->file_contents = stream_read_complete(s, demuxer, 1000000); if (demuxer->file_contents.start == NULL) |