summaryrefslogtreecommitdiffstats
path: root/stream/stream_memory.c
diff options
context:
space:
mode:
Diffstat (limited to 'stream/stream_memory.c')
-rw-r--r--stream/stream_memory.c18
1 files changed, 12 insertions, 6 deletions
diff --git a/stream/stream_memory.c b/stream/stream_memory.c
index 107fa80d19..3db4e0bb54 100644
--- a/stream/stream_memory.c
+++ b/stream/stream_memory.c
@@ -50,7 +50,7 @@ static int control(stream_t *s, int cmd, void *arg)
return STREAM_UNSUPPORTED;
}
-static int open2(stream_t *stream, void *arg)
+static int open2(stream_t *stream, struct stream_open_args *args)
{
stream->fill_buffer = fill_buffer;
stream->seek = seek;
@@ -67,8 +67,8 @@ static int open2(stream_t *stream, void *arg)
if (!use_hex)
bstr_eatstart0(&data, "memory://");
- if (arg)
- data = *(bstr *)arg;
+ if (args->special_arg)
+ data = *(bstr *)args->special_arg;
p->data = bstrdup(stream, data);
@@ -90,10 +90,16 @@ struct stream *stream_memory_open(struct mpv_global *global, void *data, int len
{
assert(len >= 0);
+ struct stream_open_args sargs = {
+ .global = global,
+ .url = "memory://",
+ .flags = STREAM_READ | STREAM_SILENT,
+ .sinfo = &stream_info_memory,
+ .special_arg = &(bstr){data, len},
+ };
+
struct stream *s = NULL;
- stream_create_instance(&stream_info_memory, "memory://",
- STREAM_READ | STREAM_SILENT, NULL, global,
- &(bstr){data, len}, &s);
+ stream_create_with_args(&sargs, &s);
MP_HANDLE_OOM(s);
return s;
}