summaryrefslogtreecommitdiffstats
path: root/stream/tv.c
diff options
context:
space:
mode:
Diffstat (limited to 'stream/tv.c')
-rw-r--r--stream/tv.c610
1 files changed, 305 insertions, 305 deletions
diff --git a/stream/tv.c b/stream/tv.c
index b9e5a97b9b..80e6c5e990 100644
--- a/stream/tv.c
+++ b/stream/tv.c
@@ -249,12 +249,12 @@ static int demux_tv_fill_buffer(demuxer_t *demux)
if (want_video && tvh->functions->control(tvh->priv,
TVI_CONTROL_IS_VIDEO, 0) == TVI_CONTROL_TRUE)
{
- len = tvh->functions->get_video_framesize(tvh->priv);
- dp=new_demux_packet(len);
+ len = tvh->functions->get_video_framesize(tvh->priv);
+ dp=new_demux_packet(len);
dp->keyframe = true;
- dp->pts=tvh->functions->grab_video_frame(tvh->priv, dp->buffer, len);
- demuxer_add_packet(demux, want_video, dp);
- }
+ dp->pts=tvh->functions->grab_video_frame(tvh->priv, dp->buffer, len);
+ demuxer_add_packet(demux, want_video, dp);
+ }
if (tvh->tv_param->scan) tv_scan(tvh);
return 1;
@@ -387,8 +387,8 @@ int tv_set_norm(tvi_handle_t *tvh, char* norm)
MP_VERBOSE(tvh, "Selected norm : %s\n", norm);
if (tvh->functions->control(tvh->priv, TVI_CONTROL_TUN_SET_NORM, &tvh->norm) != TVI_CONTROL_TRUE) {
- MP_ERR(tvh, "Error: Cannot set norm!\n");
- return 0;
+ MP_ERR(tvh, "Error: Cannot set norm!\n");
+ return 0;
}
return 1;
}
@@ -431,8 +431,8 @@ static int open_tv(tvi_handle_t *tvh)
if (funcs->control(tvh->priv, TVI_CONTROL_IS_VIDEO, 0) != TVI_CONTROL_TRUE)
{
- MP_ERR(tvh, "Error: No video input present!\n");
- return 0;
+ MP_ERR(tvh, "Error: No video input present!\n");
+ return 0;
}
if (tvh->tv_param->outfmt == -1)
@@ -447,25 +447,25 @@ static int open_tv(tvi_handle_t *tvh)
{
switch(tvh->tv_param->outfmt)
{
- case MP_FOURCC_YV12:
- case MP_FOURCC_I420:
- case MP_FOURCC_UYVY:
- case MP_FOURCC_YUY2:
- case MP_FOURCC_RGB32:
- case MP_FOURCC_RGB24:
- case MP_FOURCC_BGR32:
- case MP_FOURCC_BGR24:
- case MP_FOURCC_BGR16:
- case MP_FOURCC_BGR15:
- break;
- default:
- MP_ERR(tvh, "==================================================================\n"\
- " WARNING: UNTESTED OR UNKNOWN OUTPUT IMAGE FORMAT REQUESTED (0x%x)\n"\
- " This may cause buggy playback or program crash! Bug reports will\n"\
- " be ignored! You should try again with YV12 (which is the default\n"\
- " colorspace) and read the documentation!\n"\
- "==================================================================\n"
- ,tvh->tv_param->outfmt);
+ case MP_FOURCC_YV12:
+ case MP_FOURCC_I420:
+ case MP_FOURCC_UYVY:
+ case MP_FOURCC_YUY2:
+ case MP_FOURCC_RGB32:
+ case MP_FOURCC_RGB24:
+ case MP_FOURCC_BGR32:
+ case MP_FOURCC_BGR24:
+ case MP_FOURCC_BGR16:
+ case MP_FOURCC_BGR15:
+ break;
+ default:
+ MP_ERR(tvh, "==================================================================\n"\
+ " WARNING: UNTESTED OR UNKNOWN OUTPUT IMAGE FORMAT REQUESTED (0x%x)\n"\
+ " This may cause buggy playback or program crash! Bug reports will\n"\
+ " be ignored! You should try again with YV12 (which is the default\n"\
+ " colorspace) and read the documentation!\n"\
+ "==================================================================\n"
+ ,tvh->tv_param->outfmt);
}
funcs->control(tvh->priv, TVI_CONTROL_VID_SET_FORMAT, &tvh->tv_param->outfmt);
}
@@ -488,155 +488,155 @@ static int open_tv(tvi_handle_t *tvh)
/* set width */
if (tvh->tv_param->width != -1)
{
- if (funcs->control(tvh->priv, TVI_CONTROL_VID_CHK_WIDTH, &tvh->tv_param->width) == TVI_CONTROL_TRUE)
- funcs->control(tvh->priv, TVI_CONTROL_VID_SET_WIDTH, &tvh->tv_param->width);
- else
- {
- MP_ERR(tvh, "Unable to set requested width: %d\n", tvh->tv_param->width);
- funcs->control(tvh->priv, TVI_CONTROL_VID_GET_WIDTH, &tvh->tv_param->width);
- }
+ if (funcs->control(tvh->priv, TVI_CONTROL_VID_CHK_WIDTH, &tvh->tv_param->width) == TVI_CONTROL_TRUE)
+ funcs->control(tvh->priv, TVI_CONTROL_VID_SET_WIDTH, &tvh->tv_param->width);
+ else
+ {
+ MP_ERR(tvh, "Unable to set requested width: %d\n", tvh->tv_param->width);
+ funcs->control(tvh->priv, TVI_CONTROL_VID_GET_WIDTH, &tvh->tv_param->width);
+ }
}
/* set height */
if (tvh->tv_param->height != -1)
{
- if (funcs->control(tvh->priv, TVI_CONTROL_VID_CHK_HEIGHT, &tvh->tv_param->height) == TVI_CONTROL_TRUE)
- funcs->control(tvh->priv, TVI_CONTROL_VID_SET_HEIGHT, &tvh->tv_param->height);
- else
- {
- MP_ERR(tvh, "Unable to set requested height: %d\n", tvh->tv_param->height);
- funcs->control(tvh->priv, TVI_CONTROL_VID_GET_HEIGHT, &tvh->tv_param->height);
- }
+ if (funcs->control(tvh->priv, TVI_CONTROL_VID_CHK_HEIGHT, &tvh->tv_param->height) == TVI_CONTROL_TRUE)
+ funcs->control(tvh->priv, TVI_CONTROL_VID_SET_HEIGHT, &tvh->tv_param->height);
+ else
+ {
+ MP_ERR(tvh, "Unable to set requested height: %d\n", tvh->tv_param->height);
+ funcs->control(tvh->priv, TVI_CONTROL_VID_GET_HEIGHT, &tvh->tv_param->height);
+ }
}
if (funcs->control(tvh->priv, TVI_CONTROL_IS_TUNER, 0) != TVI_CONTROL_TRUE)
{
- MP_WARN(tvh, "Selected input hasn't got a tuner!\n");
- goto done;
+ MP_WARN(tvh, "Selected input hasn't got a tuner!\n");
+ goto done;
}
/* select channel list */
for (i = 0; chanlists[i].name != NULL; i++)
{
- if (!strcasecmp(chanlists[i].name, tvh->tv_param->chanlist))
- {
- tvh->chanlist = i;
- tvh->chanlist_s = chanlists[i].list;
- break;
- }
+ if (!strcasecmp(chanlists[i].name, tvh->tv_param->chanlist))
+ {
+ tvh->chanlist = i;
+ tvh->chanlist_s = chanlists[i].list;
+ break;
+ }
}
if (tvh->chanlist == -1) {
- MP_WARN(tvh, "Unable to find selected channel list! (%s)\n",
- tvh->tv_param->chanlist);
+ MP_WARN(tvh, "Unable to find selected channel list! (%s)\n",
+ tvh->tv_param->chanlist);
return 0;
} else
- MP_VERBOSE(tvh, "Selected channel list: %s (including %d channels)\n",
- chanlists[tvh->chanlist].name, chanlists[tvh->chanlist].count);
+ MP_VERBOSE(tvh, "Selected channel list: %s (including %d channels)\n",
+ chanlists[tvh->chanlist].name, chanlists[tvh->chanlist].count);
if (tvh->tv_param->freq && tvh->tv_param->channel)
{
- MP_WARN(tvh, "You can't set frequency and channel simultaneously!\n");
- goto done;
+ MP_WARN(tvh, "You can't set frequency and channel simultaneously!\n");
+ goto done;
}
/* Handle channel names */
if (tvh->tv_param->channels) {
parse_channels(tvh);
} else
- tv_channel_last_real = malloc(5);
+ tv_channel_last_real = malloc(5);
if (tv_channel_list) {
- int channel = 0;
- if (tvh->tv_param->channel)
- {
- if (isdigit(*tvh->tv_param->channel))
- /* if tvh->tv_param->channel begins with a digit interpret it as a number */
- channel = atoi(tvh->tv_param->channel);
- else
- {
- /* if tvh->tv_param->channel does not begin with a digit
- set the first channel that contains tvh->tv_param->channel in its name */
-
- tv_channel_current = tv_channel_list;
- while ( tv_channel_current ) {
- if ( strstr(tv_channel_current->name, tvh->tv_param->channel) )
- break;
- tv_channel_current = tv_channel_current->next;
- }
- if ( !tv_channel_current ) tv_channel_current = tv_channel_list;
- }
- }
- else
- channel = 1;
-
- if ( channel ) {
- tv_channel_current = tv_channel_list;
- for (int n = 1; n < channel; n++)
- if (tv_channel_current->next)
- tv_channel_current = tv_channel_current->next;
- }
-
- set_norm_and_freq(tvh, tv_channel_current);
- tv_channel_last = tv_channel_current;
+ int channel = 0;
+ if (tvh->tv_param->channel)
+ {
+ if (isdigit(*tvh->tv_param->channel))
+ /* if tvh->tv_param->channel begins with a digit interpret it as a number */
+ channel = atoi(tvh->tv_param->channel);
+ else
+ {
+ /* if tvh->tv_param->channel does not begin with a digit
+ set the first channel that contains tvh->tv_param->channel in its name */
+
+ tv_channel_current = tv_channel_list;
+ while ( tv_channel_current ) {
+ if ( strstr(tv_channel_current->name, tvh->tv_param->channel) )
+ break;
+ tv_channel_current = tv_channel_current->next;
+ }
+ if ( !tv_channel_current ) tv_channel_current = tv_channel_list;
+ }
+ }
+ else
+ channel = 1;
+
+ if ( channel ) {
+ tv_channel_current = tv_channel_list;
+ for (int n = 1; n < channel; n++)
+ if (tv_channel_current->next)
+ tv_channel_current = tv_channel_current->next;
+ }
+
+ set_norm_and_freq(tvh, tv_channel_current);
+ tv_channel_last = tv_channel_current;
} else {
/* we need to set frequency */
if (tvh->tv_param->freq)
{
- unsigned long freq = atof(tvh->tv_param->freq)*16;
+ unsigned long freq = atof(tvh->tv_param->freq)*16;
/* set freq in MHz */
- funcs->control(tvh->priv, TVI_CONTROL_TUN_SET_FREQ, &freq);
+ funcs->control(tvh->priv, TVI_CONTROL_TUN_SET_FREQ, &freq);
- funcs->control(tvh->priv, TVI_CONTROL_TUN_GET_FREQ, &freq);
- MP_VERBOSE(tvh, "Selected frequency: %lu (%.3f)\n",
- freq, freq/16.0);
+ funcs->control(tvh->priv, TVI_CONTROL_TUN_GET_FREQ, &freq);
+ MP_VERBOSE(tvh, "Selected frequency: %lu (%.3f)\n",
+ freq, freq/16.0);
}
- if (tvh->tv_param->channel) {
- struct CHANLIST cl;
-
- MP_VERBOSE(tvh, "Requested channel: %s\n", tvh->tv_param->channel);
- for (i = 0; i < chanlists[tvh->chanlist].count; i++)
- {
- cl = tvh->chanlist_s[i];
- // printf("count%d: name: %s, freq: %d\n",
- // i, cl.name, cl.freq);
- if (!strcasecmp(cl.name, tvh->tv_param->channel))
- {
- strcpy(tv_channel_last_real, cl.name);
- tvh->channel = i;
- MP_INFO(tvh, "Selected channel: %s (freq: %.3f)\n",
- cl.name, cl.freq/1000.0);
- tv_set_freq_float(tvh, cl.freq);
- break;
- }
- }
+ if (tvh->tv_param->channel) {
+ struct CHANLIST cl;
+
+ MP_VERBOSE(tvh, "Requested channel: %s\n", tvh->tv_param->channel);
+ for (i = 0; i < chanlists[tvh->chanlist].count; i++)
+ {
+ cl = tvh->chanlist_s[i];
+ // printf("count%d: name: %s, freq: %d\n",
+ // i, cl.name, cl.freq);
+ if (!strcasecmp(cl.name, tvh->tv_param->channel))
+ {
+ strcpy(tv_channel_last_real, cl.name);
+ tvh->channel = i;
+ MP_INFO(tvh, "Selected channel: %s (freq: %.3f)\n",
+ cl.name, cl.freq/1000.0);
+ tv_set_freq_float(tvh, cl.freq);
+ break;
+ }
+ }
}
}
/* grep frequency in chanlist */
{
- unsigned long i2;
- int freq;
+ unsigned long i2;
+ int freq;
- tv_get_freq(tvh, &i2);
+ tv_get_freq(tvh, &i2);
- freq = (int) (((float)(i2/16))*1000)+250;
+ freq = (int) (((float)(i2/16))*1000)+250;
- for (i = 0; i < chanlists[tvh->chanlist].count; i++)
- {
- if (tvh->chanlist_s[i].freq == freq)
- {
- tvh->channel = i+1;
- break;
- }
- }
+ for (i = 0; i < chanlists[tvh->chanlist].count; i++)
+ {
+ if (tvh->chanlist_s[i].freq == freq)
+ {
+ tvh->channel = i+1;
+ break;
+ }
+ }
}
done:
/* also start device! */
- return 1;
+ return 1;
}
static tvi_handle_t *tv_begin(tv_param_t* tv_param, struct mp_log *log)
@@ -646,12 +646,12 @@ static tvi_handle_t *tv_begin(tv_param_t* tv_param, struct mp_log *log)
if(tv_param->driver && !strcmp(tv_param->driver,"help")){
mp_info(log, "Available drivers:\n");
for(i=0;tvi_driver_list[i];i++){
- mp_info(log, " %s\t%s",tvi_driver_list[i]->short_name,tvi_driver_list[i]->name);
- if(tvi_driver_list[i]->comment)
- mp_info(log, " (%s)",tvi_driver_list[i]->comment);
- mp_info(log, "\n");
- }
- return NULL;
+ mp_info(log, " %s\t%s",tvi_driver_list[i]->short_name,tvi_driver_list[i]->name);
+ if(tvi_driver_list[i]->comment)
+ mp_info(log, " (%s)",tvi_driver_list[i]->comment);
+ mp_info(log, "\n");
+ }
+ return NULL;
}
for(i=0;tvi_driver_list[i];i++){
@@ -711,8 +711,8 @@ static int demux_open_tv(demuxer_t *demuxer, enum demux_check check)
tvh->demuxer = demuxer;
if (!open_tv(tvh)){
- tv_uninit(tvh);
- return -1;
+ tv_uninit(tvh);
+ return -1;
}
funcs = tvh->functions;
demuxer->priv=tvh;
@@ -761,71 +761,71 @@ static int demux_open_tv(demuxer_t *demuxer, enum demux_check check)
/* here comes audio init */
if (tvh->tv_param->noaudio == 0 && funcs->control(tvh->priv, TVI_CONTROL_IS_AUDIO, 0) == TVI_CONTROL_TRUE)
{
- int audio_format;
-
- /* yeah, audio is present */
-
- funcs->control(tvh->priv, TVI_CONTROL_AUD_SET_SAMPLERATE,
- &tvh->tv_param->audiorate);
-
- if (funcs->control(tvh->priv, TVI_CONTROL_AUD_GET_FORMAT, &audio_format) != TVI_CONTROL_TRUE)
- goto no_audio;
-
- switch(audio_format)
- {
- case AF_FORMAT_U8:
- case AF_FORMAT_S8:
- case AF_FORMAT_U16_LE:
- case AF_FORMAT_U16_BE:
- case AF_FORMAT_S16_LE:
- case AF_FORMAT_S16_BE:
- case AF_FORMAT_S32_LE:
- case AF_FORMAT_S32_BE:
- break;
- case AF_FORMAT_MPEG2:
- default:
- MP_ERR(tvh, "Audio type '%s' unsupported!\n",
- af_fmt_to_str(audio_format));
- goto no_audio;
- }
-
- struct sh_stream *sh_a = new_sh_stream(demuxer, STREAM_AUDIO);
- sh_audio = sh_a->audio;
-
- funcs->control(tvh->priv, TVI_CONTROL_AUD_GET_SAMPLERATE,
+ int audio_format;
+
+ /* yeah, audio is present */
+
+ funcs->control(tvh->priv, TVI_CONTROL_AUD_SET_SAMPLERATE,
+ &tvh->tv_param->audiorate);
+
+ if (funcs->control(tvh->priv, TVI_CONTROL_AUD_GET_FORMAT, &audio_format) != TVI_CONTROL_TRUE)
+ goto no_audio;
+
+ switch(audio_format)
+ {
+ case AF_FORMAT_U8:
+ case AF_FORMAT_S8:
+ case AF_FORMAT_U16_LE:
+ case AF_FORMAT_U16_BE:
+ case AF_FORMAT_S16_LE:
+ case AF_FORMAT_S16_BE:
+ case AF_FORMAT_S32_LE:
+ case AF_FORMAT_S32_BE:
+ break;
+ case AF_FORMAT_MPEG2:
+ default:
+ MP_ERR(tvh, "Audio type '%s' unsupported!\n",
+ af_fmt_to_str(audio_format));
+ goto no_audio;
+ }
+
+ struct sh_stream *sh_a = new_sh_stream(demuxer, STREAM_AUDIO);
+ sh_audio = sh_a->audio;
+
+ funcs->control(tvh->priv, TVI_CONTROL_AUD_GET_SAMPLERATE,
&sh_audio->samplerate);
int nchannels = sh_audio->channels.num;
- funcs->control(tvh->priv, TVI_CONTROL_AUD_GET_CHANNELS,
+ funcs->control(tvh->priv, TVI_CONTROL_AUD_GET_CHANNELS,
&nchannels);
mp_chmap_from_channels(&sh_audio->channels, nchannels);
sh_a->codec = "mp-pcm";
- sh_a->format = audio_format;
+ sh_a->format = audio_format;
int samplesize = af_fmt2bits(audio_format) / 8;
- sh_audio->i_bps =
- sh_audio->samplerate * samplesize * sh_audio->channels.num;
+ sh_audio->i_bps =
+ sh_audio->samplerate * samplesize * sh_audio->channels.num;
- // emulate WF for win32 codecs:
- sh_audio->wf = talloc_zero(sh_audio, MP_WAVEFORMATEX);
- sh_audio->wf->wFormatTag = sh_a->format;
- sh_audio->wf->nChannels = sh_audio->channels.num;
- sh_audio->wf->wBitsPerSample = samplesize * 8;
- sh_audio->wf->nSamplesPerSec = sh_audio->samplerate;
- sh_audio->wf->nBlockAlign = samplesize * sh_audio->channels.num;
- sh_audio->wf->nAvgBytesPerSec = sh_audio->i_bps;
+ // emulate WF for win32 codecs:
+ sh_audio->wf = talloc_zero(sh_audio, MP_WAVEFORMATEX);
+ sh_audio->wf->wFormatTag = sh_a->format;
+ sh_audio->wf->nChannels = sh_audio->channels.num;
+ sh_audio->wf->wBitsPerSample = samplesize * 8;
+ sh_audio->wf->nSamplesPerSec = sh_audio->samplerate;
+ sh_audio->wf->nBlockAlign = samplesize * sh_audio->channels.num;
+ sh_audio->wf->nAvgBytesPerSec = sh_audio->i_bps;
- MP_VERBOSE(tvh, " TV audio: %d channels, %d bits, %d Hz\n",
+ MP_VERBOSE(tvh, " TV audio: %d channels, %d bits, %d Hz\n",
sh_audio->wf->nChannels, sh_audio->wf->wBitsPerSample,
sh_audio->wf->nSamplesPerSec);
}
no_audio:
if(!(funcs->start(tvh->priv))){
- // start failed :(
- tv_uninit(tvh);
- return -1;
+ // start failed :(
+ tv_uninit(tvh);
+ return -1;
}
/* set color eq */
@@ -856,16 +856,16 @@ int tv_set_color_options(tvi_handle_t *tvh, int opt, int value)
switch(opt)
{
- case TV_COLOR_BRIGHTNESS:
- return funcs->control(tvh->priv, TVI_CONTROL_VID_SET_BRIGHTNESS, &value);
- case TV_COLOR_HUE:
- return funcs->control(tvh->priv, TVI_CONTROL_VID_SET_HUE, &value);
- case TV_COLOR_SATURATION:
- return funcs->control(tvh->priv, TVI_CONTROL_VID_SET_SATURATION, &value);
- case TV_COLOR_CONTRAST:
- return funcs->control(tvh->priv, TVI_CONTROL_VID_SET_CONTRAST, &value);
- default:
- MP_WARN(tvh, "Unknown color option (%d) specified!\n", opt);
+ case TV_COLOR_BRIGHTNESS:
+ return funcs->control(tvh->priv, TVI_CONTROL_VID_SET_BRIGHTNESS, &value);
+ case TV_COLOR_HUE:
+ return funcs->control(tvh->priv, TVI_CONTROL_VID_SET_HUE, &value);
+ case TV_COLOR_SATURATION:
+ return funcs->control(tvh->priv, TVI_CONTROL_VID_SET_SATURATION, &value);
+ case TV_COLOR_CONTRAST:
+ return funcs->control(tvh->priv, TVI_CONTROL_VID_SET_CONTRAST, &value);
+ default:
+ MP_WARN(tvh, "Unknown color option (%d) specified!\n", opt);
}
return TVI_CONTROL_UNKNOWN;
@@ -877,16 +877,16 @@ int tv_get_color_options(tvi_handle_t *tvh, int opt, int* value)
switch(opt)
{
- case TV_COLOR_BRIGHTNESS:
- return funcs->control(tvh->priv, TVI_CONTROL_VID_GET_BRIGHTNESS, value);
- case TV_COLOR_HUE:
- return funcs->control(tvh->priv, TVI_CONTROL_VID_GET_HUE, value);
- case TV_COLOR_SATURATION:
- return funcs->control(tvh->priv, TVI_CONTROL_VID_GET_SATURATION, value);
- case TV_COLOR_CONTRAST:
- return funcs->control(tvh->priv, TVI_CONTROL_VID_GET_CONTRAST, value);
- default:
- MP_WARN(tvh, "Unknown color option (%d) specified!\n", opt);
+ case TV_COLOR_BRIGHTNESS:
+ return funcs->control(tvh->priv, TVI_CONTROL_VID_GET_BRIGHTNESS, value);
+ case TV_COLOR_HUE:
+ return funcs->control(tvh->priv, TVI_CONTROL_VID_GET_HUE, value);
+ case TV_COLOR_SATURATION:
+ return funcs->control(tvh->priv, TVI_CONTROL_VID_GET_SATURATION, value);
+ case TV_COLOR_CONTRAST:
+ return funcs->control(tvh->priv, TVI_CONTROL_VID_GET_CONTRAST, value);
+ default:
+ MP_WARN(tvh, "Unknown color option (%d) specified!\n", opt);
}
return TVI_CONTROL_UNKNOWN;
@@ -896,9 +896,9 @@ int tv_get_freq(tvi_handle_t *tvh, unsigned long *freq)
{
if (tvh->functions->control(tvh->priv, TVI_CONTROL_IS_TUNER, 0) == TVI_CONTROL_TRUE)
{
- tvh->functions->control(tvh->priv, TVI_CONTROL_TUN_GET_FREQ, freq);
- MP_VERBOSE(tvh, "Current frequency: %lu (%.3f)\n",
- *freq, *freq/16.0);
+ tvh->functions->control(tvh->priv, TVI_CONTROL_TUN_GET_FREQ, freq);
+ MP_VERBOSE(tvh, "Current frequency: %lu (%.3f)\n",
+ *freq, *freq/16.0);
}
return 1;
}
@@ -907,14 +907,14 @@ int tv_set_freq(tvi_handle_t *tvh, unsigned long freq)
{
if (tvh->functions->control(tvh->priv, TVI_CONTROL_IS_TUNER, 0) == TVI_CONTROL_TRUE)
{
-// unsigned long freq = atof(tvh->tv_param->freq)*16;
+// unsigned long freq = atof(tvh->tv_param->freq)*16;
/* set freq in MHz */
- tvh->functions->control(tvh->priv, TVI_CONTROL_TUN_SET_FREQ, &freq);
+ tvh->functions->control(tvh->priv, TVI_CONTROL_TUN_SET_FREQ, &freq);
- tvh->functions->control(tvh->priv, TVI_CONTROL_TUN_GET_FREQ, &freq);
- MP_VERBOSE(tvh, "Current frequency: %lu (%.3f)\n",
- freq, freq/16.0);
+ tvh->functions->control(tvh->priv, TVI_CONTROL_TUN_GET_FREQ, &freq);
+ MP_VERBOSE(tvh, "Current frequency: %lu (%.3f)\n",
+ freq, freq/16.0);
}
return 1;
}
@@ -952,123 +952,123 @@ int tv_step_channel_real(tvi_handle_t *tvh, int direction)
tvh->tv_param->scan=0;
if (direction == TV_CHANNEL_LOWER)
{
- if (tvh->channel-1 >= 0)
- {
- strcpy(tv_channel_last_real, tvh->chanlist_s[tvh->channel].name);
- cl = tvh->chanlist_s[--tvh->channel];
- MP_INFO(tvh, "Selected channel: %s (freq: %.3f)\n",
- cl.name, cl.freq/1000.0);
- tv_set_freq_float(tvh, cl.freq);
- }
+ if (tvh->channel-1 >= 0)
+ {
+ strcpy(tv_channel_last_real, tvh->chanlist_s[tvh->channel].name);
+ cl = tvh->chanlist_s[--tvh->channel];
+ MP_INFO(tvh, "Selected channel: %s (freq: %.3f)\n",
+ cl.name, cl.freq/1000.0);
+ tv_set_freq_float(tvh, cl.freq);
+ }
}
if (direction == TV_CHANNEL_HIGHER)
{
- if (tvh->channel+1 < chanlists[tvh->chanlist].count)
- {
- strcpy(tv_channel_last_real, tvh->chanlist_s[tvh->channel].name);
- cl = tvh->chanlist_s[++tvh->channel];
- MP_INFO(tvh, "Selected channel: %s (freq: %.3f)\n",
- cl.name, cl.freq/1000.0);
- tv_set_freq_float(tvh, cl.freq);
- }
+ if (tvh->channel+1 < chanlists[tvh->chanlist].count)
+ {
+ strcpy(tv_channel_last_real, tvh->chanlist_s[tvh->channel].name);
+ cl = tvh->chanlist_s[++tvh->channel];
+ MP_INFO(tvh, "Selected channel: %s (freq: %.3f)\n",
+ cl.name, cl.freq/1000.0);
+ tv_set_freq_float(tvh, cl.freq);
+ }
}
return 1;
}
int tv_step_channel(tvi_handle_t *tvh, int direction) {
- tvh->tv_param->scan=0;
- if (tv_channel_list) {
- if (direction == TV_CHANNEL_HIGHER) {
- tv_channel_last = tv_channel_current;
- if (tv_channel_current->next)
- tv_channel_current = tv_channel_current->next;
- else
- tv_channel_current = tv_channel_list;
- set_norm_and_freq(tvh, tv_channel_current);
- }
- if (direction == TV_CHANNEL_LOWER) {
- tv_channel_last = tv_channel_current;
- if (tv_channel_current->prev)
- tv_channel_current = tv_channel_current->prev;
- else
- while (tv_channel_current->next)
- tv_channel_current = tv_channel_current->next;
- set_norm_and_freq(tvh, tv_channel_current);
- }
- } else tv_step_channel_real(tvh, direction);
- return 1;
+ tvh->tv_param->scan=0;
+ if (tv_channel_list) {
+ if (direction == TV_CHANNEL_HIGHER) {
+ tv_channel_last = tv_channel_current;
+ if (tv_channel_current->next)
+ tv_channel_current = tv_channel_current->next;
+ else
+ tv_channel_current = tv_channel_list;
+ set_norm_and_freq(tvh, tv_channel_current);
+ }
+ if (direction == TV_CHANNEL_LOWER) {
+ tv_channel_last = tv_channel_current;
+ if (tv_channel_current->prev)
+ tv_channel_current = tv_channel_current->prev;
+ else
+ while (tv_channel_current->next)
+ tv_channel_current = tv_channel_current->next;
+ set_norm_and_freq(tvh, tv_channel_current);
+ }
+ } else tv_step_channel_real(tvh, direction);
+ return 1;
}
int tv_set_channel_real(tvi_handle_t *tvh, char *channel) {
- int i;
- struct CHANLIST cl;
+ int i;
+ struct CHANLIST cl;
tvh->tv_param->scan=0;
strcpy(tv_channel_last_real, tvh->chanlist_s[tvh->channel].name);
- for (i = 0; i < chanlists[tvh->chanlist].count; i++)
- {
- cl = tvh->chanlist_s[i];
-// printf("count%d: name: %s, freq: %d\n",
-// i, cl.name, cl.freq);
- if (!strcasecmp(cl.name, channel))
- {
- tvh->channel = i;
- MP_INFO(tvh, "Selected channel: %s (freq: %.3f)\n",
- cl.name, cl.freq/1000.0);
- tv_set_freq_float(tvh, cl.freq);
- break;
- }
- }
- return 1;
+ for (i = 0; i < chanlists[tvh->chanlist].count; i++)
+ {
+ cl = tvh->chanlist_s[i];
+// printf("count%d: name: %s, freq: %d\n",
+// i, cl.name, cl.freq);
+ if (!strcasecmp(cl.name, channel))
+ {
+ tvh->channel = i;
+ MP_INFO(tvh, "Selected channel: %s (freq: %.3f)\n",
+ cl.name, cl.freq/1000.0);
+ tv_set_freq_float(tvh, cl.freq);
+ break;
+ }
+ }
+ return 1;
}
int tv_set_channel(tvi_handle_t *tvh, char *channel) {
- int i, channel_int;
-
- tvh->tv_param->scan=0;
- if (tv_channel_list) {
- tv_channel_last = tv_channel_current;
- channel_int = atoi(channel);
- tv_channel_current = tv_channel_list;
- for (i = 1; i < channel_int; i++)
- if (tv_channel_current->next)
- tv_channel_current = tv_channel_current->next;
- set_norm_and_freq(tvh, tv_channel_current);
- } else tv_set_channel_real(tvh, channel);
- return 1;
+ int i, channel_int;
+
+ tvh->tv_param->scan=0;
+ if (tv_channel_list) {
+ tv_channel_last = tv_channel_current;
+ channel_int = atoi(channel);
+ tv_channel_current = tv_channel_list;
+ for (i = 1; i < channel_int; i++)
+ if (tv_channel_current->next)
+ tv_channel_current = tv_channel_current->next;
+ set_norm_and_freq(tvh, tv_channel_current);
+ } else tv_set_channel_real(tvh, channel);
+ return 1;
}
int tv_last_channel(tvi_handle_t *tvh) {
- tvh->tv_param->scan=0;
- if (tv_channel_list) {
- tv_channels_t *tmp;
-
- tmp = tv_channel_last;
- tv_channel_last = tv_channel_current;
- tv_channel_current = tmp;
-
- set_norm_and_freq(tvh, tv_channel_current);
- } else {
- int i;
- struct CHANLIST cl;
-
- for (i = 0; i < chanlists[tvh->chanlist].count; i++)
- {
- cl = tvh->chanlist_s[i];
- if (!strcasecmp(cl.name, tv_channel_last_real))
- {
- strcpy(tv_channel_last_real, tvh->chanlist_s[tvh->channel].name);
- tvh->channel = i;
- MP_INFO(tvh, "Selected channel: %s (freq: %.3f)\n",
- cl.name, cl.freq/1000.0);
- tv_set_freq_float(tvh, cl.freq);
- break;
- }
- }
- }
- return 1;
+ tvh->tv_param->scan=0;
+ if (tv_channel_list) {
+ tv_channels_t *tmp;
+
+ tmp = tv_channel_last;
+ tv_channel_last = tv_channel_current;
+ tv_channel_current = tmp;
+
+ set_norm_and_freq(tvh, tv_channel_current);
+ } else {
+ int i;
+ struct CHANLIST cl;
+
+ for (i = 0; i < chanlists[tvh->chanlist].count; i++)
+ {
+ cl = tvh->chanlist_s[i];
+ if (!strcasecmp(cl.name, tv_channel_last_real))
+ {
+ strcpy(tv_channel_last_real, tvh->chanlist_s[tvh->channel].name);
+ tvh->channel = i;
+ MP_INFO(tvh, "Selected channel: %s (freq: %.3f)\n",
+ cl.name, cl.freq/1000.0);
+ tv_set_freq_float(tvh, cl.freq);
+ break;
+ }
+ }
+ }
+ return 1;
}
int tv_step_norm(tvi_handle_t *tvh)