diff options
author | wm4 <wm4@nowhere> | 2019-06-19 16:48:46 +0200 |
---|---|---|
committer | wm4 <wm4@nowhere> | 2019-09-19 20:37:05 +0200 |
commit | e40885d963f8b60d83aa5ea8104985dd20af262f (patch) | |
tree | 82c2fd8284e9a81a211dc7755f5e40e97926cd6e /demux/demux_libarchive.c | |
parent | de3ecc60cb5ac39e727d8bd1fe4f9e3499f8e672 (diff) | |
download | mpv-e40885d963f8b60d83aa5ea8104985dd20af262f.tar.bz2 mpv-e40885d963f8b60d83aa5ea8104985dd20af262f.tar.xz |
stream: create memory streams in more straightforward way
Instead of having to rely on the protocol matching, make a function that
creates a stream from a stream_info_t directly. Instead of going through
a weird indirection with STREAM_CTRL, add a direct argument for non-text
arguments to the open callback. Instead of creating a weird dummy
mpv_global, just pass an existing one from all callers. (The latter one
is just an artifact from the past, where mpv_global wasn't available
everywhere.)
Actually I just wanted a function that creates a stream without any of
that bullshit. This goal was slightly missed, since you still need this
heavy "constructor" just to setup a shitty struct with some shitty
callbacks.
Diffstat (limited to 'demux/demux_libarchive.c')
-rw-r--r-- | demux/demux_libarchive.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/demux/demux_libarchive.c b/demux/demux_libarchive.c index c20990ae64..51c4e46f03 100644 --- a/demux/demux_libarchive.c +++ b/demux/demux_libarchive.c @@ -45,7 +45,8 @@ static int open_file(struct demuxer *demuxer, enum demux_check check) bstr probe = stream_peek(demuxer->stream, probe_size); if (probe.len == 0) return -1; - struct stream *probe_stream = open_memory_stream(probe.start, probe.len); + struct stream *probe_stream = + stream_memory_open(demuxer->global, probe.start, probe.len); struct mp_archive *mpa = mp_archive_new(mp_null_log, probe_stream, flags); bool ok = !!mpa; free_stream(probe_stream); |