summaryrefslogtreecommitdiffstats
path: root/libmpdemux
diff options
context:
space:
mode:
authorhenry <henry@b3059339-0415-0410-9bf9-f77b7e298cf2>2003-01-01 20:21:45 +0000
committerhenry <henry@b3059339-0415-0410-9bf9-f77b7e298cf2>2003-01-01 20:21:45 +0000
commit1f9abf39b2ef111a91354e5edc9e04f1cadb17f0 (patch)
tree0bd547e8f175d4de15c9f746d4e778c686ca99ab /libmpdemux
parente839ac4f83561138b8aa93ae670a0dd5ba4d46c1 (diff)
downloadmpv-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.c23
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: