123456789101112131415161718192021222324252627282930313233343536 |
- From 50d11f576c5ef6bda8cad157f737fe571da4bcb7 Mon Sep 17 00:00:00 2001
- From: =?UTF-8?q?Martin=20Storsj=C3=B6?= <martin@martin.st>
- Date: Tue, 23 Jul 2013 16:39:30 +0300
- Subject: [PATCH 15/16] Revert "audiounit_ios: try to handle data drops more
- efficiently"
- This (more or less) reverts commit
- 2b7e016807507b632b8e0a7c874030bdffb2f604.
- Stopping the aout from within the callback like this could
- lead to deadlocks, where AudioOutputUnitStop in the callback thread
- and AudioOutputUnitStart in the audio decoder thread blocked each
- other (noticed at startup of playback on a 3GS with iOS 6.0).
- ---
- modules/audio_output/audiounit_ios.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
- diff --git a/modules/audio_output/audiounit_ios.c b/modules/audio_output/audiounit_ios.c
- index 1faaf58..974d172 100644
- --- a/modules/audio_output/audiounit_ios.c
- +++ b/modules/audio_output/audiounit_ios.c
- @@ -383,8 +383,8 @@ static OSStatus RenderCallback(vlc_object_t *p_obj,
-
- /* check if we have enough data */
- if (!availableBytes) {
- - /* bail out and restart unit the next time we receive some data */
- - Flush(p_aout, false);
- + /* return an empty buffer so silence is played until we have data */
- + memset(targetBuffer, 0, bytesToCopy);
- } else {
- memcpy(targetBuffer, buffer, __MIN(bytesToCopy, availableBytes));
- TPCircularBufferConsume(&p_sys->circular_buffer, __MIN(bytesToCopy, availableBytes));
- --
- 1.7.9.4
|