From c7d0a8f58e536b22db88a229dc2f53daf0f02951 Mon Sep 17 00:00:00 2001 From: Aman Gupta Date: Thu, 26 Sep 2019 16:11:48 -0700 Subject: stream_cb: add cancel_fn callback This allows stream_cb backends to implement blocking behavior inside read_fn, and still get notified when the user wants to cancel and stop playback. Signed-off-by: Aman Gupta --- libmpv/stream_cb.h | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'libmpv/stream_cb.h') diff --git a/libmpv/stream_cb.h b/libmpv/stream_cb.h index 45e81b8e38..63593d7228 100644 --- a/libmpv/stream_cb.h +++ b/libmpv/stream_cb.h @@ -147,6 +147,22 @@ typedef int64_t (*mpv_stream_cb_size_fn)(void *cookie); */ typedef void (*mpv_stream_cb_close_fn)(void *cookie); +/** + * Cancel callback used to implement a custom stream. + * + * This callback is used to interrupt any current or future read and seek + * operations. It will be called from a separate thread than the demux + * thread, and should not block. + * + * This callback can be NULL. + * + * Available since API 1.106. + * + * @param cookie opaque cookie identifying the stream, + * returned from mpv_stream_cb_open_fn + */ +typedef void (*mpv_stream_cb_cancel_fn)(void *cookie); + /** * See mpv_stream_cb_open_ro_fn callback. */ @@ -170,6 +186,7 @@ typedef struct mpv_stream_cb_info { mpv_stream_cb_seek_fn seek_fn; mpv_stream_cb_size_fn size_fn; mpv_stream_cb_close_fn close_fn; + mpv_stream_cb_cancel_fn cancel_fn; /* since API 1.106 */ } mpv_stream_cb_info; /** -- cgit v1.2.3