diff --git a/DOCS/man/en/mplayer.1 b/DOCS/man/en/mplayer.1 index 503e61c26a..beef5bc900 100644 --- a/DOCS/man/en/mplayer.1 +++ b/DOCS/man/en/mplayer.1 @@ -1751,6 +1751,10 @@ Set tuner to channel. available: europe-east, europe-west, us-bcast, us-cable, etc .IPs channels=\-,\-,... Set names for channels. +.I NOTE: +If is an integer greater than 1000, it will be treated as frequency (in kHz) +rather than channel name from frequency table. +.br Use _ for spaces in names (or play with quoting ;-). The channel names will then be written using OSD, and the slave commands tv_step_channel, tv_set_channel and tv_last_channel will be usable for diff --git a/stream/tv.c b/stream/tv.c index 1a06cb05bc..b3bcc37923 100644 --- a/stream/tv.c +++ b/stream/tv.c @@ -361,10 +361,16 @@ static int open_tv(tvi_handle_t *tvh) sizeof(tv_channel_current->name)); sep[0] = '\0'; strncpy(tv_channel_current->number, tmp, 5); + tv_channel_current->number[4]='\0'; while ((sep=strchr(tv_channel_current->name, '_'))) sep[0] = ' '; + // if channel number is a number and larger than 1000 threat it as frequency + // tmp still contain pointer to null-terminated string with channel number here + if (atoi(tmp)>1000){ + tv_channel_current->freq=atoi(tmp); + }else{ tv_channel_current->freq = 0; for (i = 0; i < chanlists[tvh->chanlist].count; i++) { cl = tvh->chanlist_s[i]; @@ -373,6 +379,7 @@ static int open_tv(tvi_handle_t *tvh) break; } } + } if (tv_channel_current->freq == 0) mp_msg(MSGT_TV, MSGL_ERR, "Couldn't find frequency for channel %s (%s)\n", tv_channel_current->number, tv_channel_current->name);