diff options
author | henry <henry@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2003-01-01 20:21:45 +0000 |
---|---|---|
committer | henry <henry@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2003-01-01 20:21:45 +0000 |
commit | 1f9abf39b2ef111a91354e5edc9e04f1cadb17f0 (patch) | |
tree | 0bd547e8f175d4de15c9f746d4e778c686ca99ab /libmpdemux | |
parent | e839ac4f83561138b8aa93ae670a0dd5ba4d46c1 (diff) | |
download | mpv-1f9abf39b2ef111a91354e5edc9e04f1cadb17f0.tar.bz2 mpv-1f9abf39b2ef111a91354e5edc9e04f1cadb17f0.tar.xz |
supress clicks/noise when changing channels
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@8704 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libmpdemux')
-rw-r--r-- | libmpdemux/tvi_v4l.c | 23 |
1 files changed, 19 insertions, 4 deletions
diff --git a/libmpdemux/tvi_v4l.c b/libmpdemux/tvi_v4l.c index 8d27a70043..0cf8edf0e7 100644 --- a/libmpdemux/tvi_v4l.c +++ b/libmpdemux/tvi_v4l.c @@ -562,10 +562,12 @@ static int uninit(priv_t *priv) pthread_join(priv->video_grabber_thread, NULL); mp_msg(MSGT_TV, MSGL_V, "done\n"); - priv->audio[priv->audio_id].volume = 0; - priv->audio[priv->audio_id].flags |= VIDEO_AUDIO_MUTE; - ioctl(priv->video_fd, VIDIOCSAUDIO, &priv->audio[priv->audio_id]); - + if (priv->capability.audios) { + priv->audio[priv->audio_id].volume = 0; + priv->audio[priv->audio_id].flags |= VIDEO_AUDIO_MUTE; + ioctl(priv->video_fd, VIDIOCSAUDIO, &priv->audio[priv->audio_id]); + } + close(priv->video_fd); audio_in_uninit(&priv->audio_in); @@ -941,6 +943,12 @@ static int control(priv_t *priv, int cmd, void *arg) /* argument is in MHz ! */ unsigned long freq = (unsigned long)*(void **)arg; + if (priv->capability.audios) { + priv->audio[priv->audio_id].volume = 0; + priv->audio[priv->audio_id].flags |= VIDEO_AUDIO_MUTE; + ioctl(priv->video_fd, VIDIOCSAUDIO, &priv->audio[priv->audio_id]); + } + mp_msg(MSGT_TV, MSGL_V, "requested frequency: %.3f\n", (float)freq/16); /* tuner uses khz not mhz ! */ @@ -953,6 +961,13 @@ static int control(priv_t *priv, int cmd, void *arg) return(TVI_CONTROL_FALSE); } usleep(100000); // wait to supress noise during switching + + if (priv->capability.audios) { + priv->audio[priv->audio_id].volume = tv_param_volume; + priv->audio[priv->audio_id].flags &= ~VIDEO_AUDIO_MUTE; + ioctl(priv->video_fd, VIDIOCSAUDIO, &priv->audio[priv->audio_id]); + } + return(TVI_CONTROL_TRUE); } case TVI_CONTROL_TUN_GET_TUNER: |