summaryrefslogtreecommitdiffstats
path: root/stream/stream_cb.c
diff options
context:
space:
mode:
Diffstat (limited to 'stream/stream_cb.c')
-rw-r--r--stream/stream_cb.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/stream/stream_cb.c b/stream/stream_cb.c
index fa8871ddf6..fa52935a4b 100644
--- a/stream/stream_cb.c
+++ b/stream/stream_cb.c
@@ -17,9 +17,11 @@
#include "options/path.h"
#include "player/client.h"
#include "libmpv/stream_cb.h"
+#include "misc/thread_tools.h"
struct priv {
mpv_stream_cb_info info;
+ struct mp_cancel *cancel;
};
static int fill_buffer(stream_t *s, char *buffer, int max_len)
@@ -98,6 +100,12 @@ static int open_cb(stream_t *stream)
stream->read_chunk = 64 * 1024;
stream->close = s_close;
+ if (p->info.cancel_fn && stream->cancel) {
+ p->cancel = mp_cancel_new(p);
+ mp_cancel_set_parent(p->cancel, stream->cancel);
+ mp_cancel_set_cb(p->cancel, p->info.cancel_fn, p->info.cookie);
+ }
+
return STREAM_OK;
}