mirror of
https://projects.vdr-developer.org/git/vdr-plugin-softhddevice.git
synced 2023-10-10 19:16:51 +02:00
Mute pass-through, if volume is 0.
This commit is contained in:
parent
6dd7c2680a
commit
5456164dce
8
audio.c
8
audio.c
@ -848,16 +848,17 @@ static int AlsaPlayRingbuffer(void)
|
|||||||
if (!avail) { // full or buffer empty
|
if (!avail) { // full or buffer empty
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (AudioSoftVolume && !AudioRing[AudioRingRead].UseAc3) {
|
// muting ac3, can produce disturbance
|
||||||
|
if (AudioMute || (AudioSoftVolume && !AudioRing[AudioRingRead].UseAc3)) {
|
||||||
// FIXME: quick&dirty cast
|
// FIXME: quick&dirty cast
|
||||||
AudioSoftAmplifier((int16_t *) p, avail);
|
AudioSoftAmplifier((int16_t *) p, avail);
|
||||||
// FIXME: if not all are written, we double amplify them
|
// FIXME: if not all are written, we double amplify them
|
||||||
}
|
}
|
||||||
frames = snd_pcm_bytes_to_frames(AlsaPCMHandle, avail);
|
frames = snd_pcm_bytes_to_frames(AlsaPCMHandle, avail);
|
||||||
|
#ifdef DEBUG
|
||||||
if (avail != snd_pcm_frames_to_bytes(AlsaPCMHandle, frames)) {
|
if (avail != snd_pcm_frames_to_bytes(AlsaPCMHandle, frames)) {
|
||||||
Error(_("audio/alsa: bytes lost -> out of sync\n"));
|
Error(_("audio/alsa: bytes lost -> out of sync\n"));
|
||||||
}
|
}
|
||||||
#ifdef DEBUG
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
for (;;) {
|
for (;;) {
|
||||||
@ -3586,7 +3587,7 @@ void AudioEnqueue(const void *samples, int count)
|
|||||||
return; // no setup yet
|
return; // no setup yet
|
||||||
}
|
}
|
||||||
if (AudioRing[AudioRingWrite].UseAc3) {
|
if (AudioRing[AudioRingWrite].UseAc3) {
|
||||||
buffer = (void*)samples;
|
buffer = (void *)samples;
|
||||||
} else {
|
} else {
|
||||||
//
|
//
|
||||||
// Convert / resample input to hardware format
|
// Convert / resample input to hardware format
|
||||||
@ -3897,6 +3898,7 @@ int64_t AudioGetClock(void)
|
|||||||
void AudioSetVolume(int volume)
|
void AudioSetVolume(int volume)
|
||||||
{
|
{
|
||||||
AudioVolume = volume;
|
AudioVolume = volume;
|
||||||
|
AudioMute = !volume;
|
||||||
#ifdef USE_AUDIORING
|
#ifdef USE_AUDIORING
|
||||||
// reduce loudness for stereo output
|
// reduce loudness for stereo output
|
||||||
if (AudioStereoDescent && AudioRing[AudioRingRead].InChannels == 2
|
if (AudioStereoDescent && AudioRing[AudioRingRead].InChannels == 2
|
||||||
|
Loading…
Reference in New Issue
Block a user