diff options
Diffstat (limited to 'demux')
-rw-r--r-- | demux/demux.c | 1 | ||||
-rw-r--r-- | demux/demux.h | 1 | ||||
-rw-r--r-- | demux/demux_disc.c | 2 | ||||
-rw-r--r-- | demux/demux_tv.c | 2 |
4 files changed, 6 insertions, 0 deletions
diff --git a/demux/demux.c b/demux/demux.c index 5f4c93b84f..ef420eb5ab 100644 --- a/demux/demux.c +++ b/demux/demux.c @@ -2211,6 +2211,7 @@ static struct demuxer *open_given_type(struct mpv_global *global, .access_references = opts->access_references, .events = DEMUX_EVENT_ALL, .duration = -1, + .extended_ctrls = stream->extended_ctrls, }; demuxer->seekable = stream->seekable; if (demuxer->stream->underlying && !demuxer->stream->underlying->seekable) diff --git a/demux/demux.h b/demux/demux.h index ccbc6ae94a..25cefd115f 100644 --- a/demux/demux.h +++ b/demux/demux.h @@ -202,6 +202,7 @@ typedef struct demuxer { bool fully_read; bool is_network; // opened directly from a network stream bool access_references; // allow opening other files/URLs + bool extended_ctrls; // supports some of BD/DVD/DVB/TV controls // Bitmask of DEMUX_EVENT_* int events; diff --git a/demux/demux_disc.c b/demux/demux_disc.c index 6ab17e69c8..2b81350ea4 100644 --- a/demux/demux_disc.c +++ b/demux/demux_disc.c @@ -342,6 +342,8 @@ static int d_open(demuxer_t *demuxer, enum demux_check check) if (stream_control(demuxer->stream, STREAM_CTRL_GET_TIME_LENGTH, &len) >= 1) demuxer->duration = len; + demuxer->extended_ctrls = true; + return 0; } diff --git a/demux/demux_tv.c b/demux/demux_tv.c index 0e9bee4317..79cff5d79d 100644 --- a/demux/demux_tv.c +++ b/demux/demux_tv.c @@ -181,6 +181,8 @@ no_audio: if(funcs->control(tvh->priv,TVI_CONTROL_VID_SET_GAIN,&tvh->tv_param->gain)!=TVI_CONTROL_TRUE) MP_WARN(tvh, "Unable to set gain control!\n"); + demuxer->extended_ctrls = true; + return 0; } |