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 User johns
Date: Date:
Fix "broken driver" message if empty ring buffer.
Enable seamless audio track change. Enable seamless audio track change.
Fix bug #1302: Unsupported pixel format crash. Fix bug #1302: Unsupported pixel format crash.
Fix the fix, when sillpicture is called in suspend mode. 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); pthread_mutex_unlock(&AudioMutex);
Debug(3, "audio: ----> %dms start\n", (AudioUsedBytes() * 1000) Debug(3, "audio: ----> %dms start\n", (AudioUsedBytes() * 1000)
/ (!AudioRing[AudioRingRead].HwSampleRate + / (!AudioRing[AudioRingWrite].HwSampleRate +
!AudioRing[AudioRingRead].HwChannels + !AudioRing[AudioRingWrite].HwChannels +
AudioRing[AudioRingRead].HwSampleRate * AudioRing[AudioRingWrite].HwSampleRate *
AudioRing[AudioRingRead].HwChannels * AudioBytesProSample)); AudioRing[AudioRingWrite].HwChannels * AudioBytesProSample));
do { do {
int filled; int filled;
@ -2069,7 +2069,10 @@ static void *AudioPlayHandlerThread(void *dummy)
Debug(3, "audio: continue after flush\n"); Debug(3, "audio: continue after flush\n");
} }
// try to play some samples // 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 // underrun, check if new ring buffer is available
if (!err) { if (!err) {
int passthrough; int passthrough;