Fix "broken driver" message if empty ring buffer.

This commit is contained in:
Johns 2013-04-15 16:55:15 +02:00
parent 9dd248f9d0
commit c0286b3ab4
2 changed files with 9 additions and 5 deletions

View File

@ -1,6 +1,7 @@
User johns
Date:
Fix "broken driver" message if empty ring buffer.
Enable seamless audio track change.
Fix bug #1302: Unsupported pixel format crash.
Fix the fix, when sillpicture is called in suspend mode.

13
audio.c
View File

@ -2033,10 +2033,10 @@ static void *AudioPlayHandlerThread(void *dummy)
pthread_mutex_unlock(&AudioMutex);
Debug(3, "audio: ----> %dms start\n", (AudioUsedBytes() * 1000)
/ (!AudioRing[AudioRingRead].HwSampleRate +
!AudioRing[AudioRingRead].HwChannels +
AudioRing[AudioRingRead].HwSampleRate *
AudioRing[AudioRingRead].HwChannels * AudioBytesProSample));
/ (!AudioRing[AudioRingWrite].HwSampleRate +
!AudioRing[AudioRingWrite].HwChannels +
AudioRing[AudioRingWrite].HwSampleRate *
AudioRing[AudioRingWrite].HwChannels * AudioBytesProSample));
do {
int filled;
@ -2069,7 +2069,10 @@ static void *AudioPlayHandlerThread(void *dummy)
Debug(3, "audio: continue after flush\n");
}
// try to play some samples
err = AudioUsedModule->Thread();
err = 0;
if (RingBufferUsedBytes(AudioRing[AudioRingRead].RingBuffer)) {
err = AudioUsedModule->Thread();
}
// underrun, check if new ring buffer is available
if (!err) {
int passthrough;