mirror of
https://github.com/mpv-player/mpv
synced 2024-11-14 22:48:35 +01:00
stream_dvb: Allow actual zapping of channels again.
This is realized by dvbin-channel-switch-offset, which is a numeric offset on the channel initially tuned to. Since the channel list is kept in the stream alone depending on detected hardware and chosen card, and no available backchannel to the player, there's no direct property which could be switched. Using input.conf like: H cycle dvbin-channel-switch-offset up K cycle dvbin-channel-switch-offset down Q set dvbin-prog "ZDF HD" allow fast and reliable channel switching again.
This commit is contained in:
parent
c408a48119
commit
12d74e4d95
@ -3530,6 +3530,7 @@ static const struct m_property mp_properties_base[] = {
|
||||
{"edition-list", property_list_editions},
|
||||
|
||||
{"dvbin-prog", mp_property_dvb_channel},
|
||||
{"dvbin-channel-switch-offset", mp_property_dvb_channel},
|
||||
|
||||
{"playlist", mp_property_playlist},
|
||||
{"playlist-pos", mp_property_playlist_pos},
|
||||
|
@ -121,6 +121,7 @@ typedef struct {
|
||||
int cfg_timeout;
|
||||
char *cfg_file;
|
||||
int cfg_full_transponder;
|
||||
int cfg_channel_switch_offset;
|
||||
} dvb_opts_t;
|
||||
|
||||
typedef struct {
|
||||
|
@ -78,6 +78,7 @@ const struct m_sub_options stream_dvb_conf = {
|
||||
OPT_INTRANGE("timeout", cfg_timeout, 0, 1, 30),
|
||||
OPT_STRING("file", cfg_file, M_OPT_FILE),
|
||||
OPT_FLAG("full-transponder", cfg_full_transponder, 0),
|
||||
OPT_INT("channel-switch-offset", cfg_channel_switch_offset, 0),
|
||||
{0}
|
||||
},
|
||||
.size = sizeof(dvb_opts_t),
|
||||
@ -1044,6 +1045,12 @@ static int dvb_streaming_start(stream_t *stream, char *progname)
|
||||
}
|
||||
|
||||
list->current = i;
|
||||
|
||||
// When switching channels, cfg_channel_switch_offset
|
||||
// keeps the offset to the initially chosen channel.
|
||||
list->current = (list->NUM_CHANNELS + list->current + priv->opts->cfg_channel_switch_offset) % list->NUM_CHANNELS;
|
||||
channel = &(list->channels[list->current]);
|
||||
MP_INFO(stream, "Tuning to channel \"%s\"...\n", channel->name);
|
||||
MP_VERBOSE(stream, "PROGRAM NUMBER %d: name=%s, freq=%u\n", i,
|
||||
channel->name, channel->freq);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user