[vlc-devel] [PATCH] auhal: fail in render callbacks if bytesToCopy is <= 0

david.fuhrmann at gmail.com david.fuhrmann at gmail.com
Tue Dec 31 11:21:03 CET 2013


From: David Fuhrmann <david.fuhrmann at googlemail.com>

This should not happen in the current implementation.
---
 modules/audio_output/auhal.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/modules/audio_output/auhal.c b/modules/audio_output/auhal.c
index dcb59f3..cad7e37 100644
--- a/modules/audio_output/auhal.c
+++ b/modules/audio_output/auhal.c
@@ -1446,12 +1446,11 @@ static OSStatus RenderCallbackAnalog(vlc_object_t *p_obj,
         memset(targetBuffer, 0, bytesRequested);
     } else {
         int32_t bytesToCopy = __MIN(bytesRequested, availableBytes);
+        assert(bytesToCopy > 0);
 
-        if (likely(bytesToCopy > 0)) {
-            memcpy(targetBuffer, buffer, bytesToCopy);
-            TPCircularBufferConsume(&p_sys->circular_buffer, bytesToCopy);
-            ioData->mBuffers[0].mDataByteSize = bytesToCopy;
-        }
+        memcpy(targetBuffer, buffer, bytesToCopy);
+        TPCircularBufferConsume(&p_sys->circular_buffer, bytesToCopy);
+        ioData->mBuffers[0].mDataByteSize = bytesToCopy;
     }
 
     vlc_cond_signal(&p_sys->cond);
@@ -1494,6 +1493,7 @@ static OSStatus RenderCallbackSPDIF(AudioDeviceID inDevice,
         memset(targetBuffer, 0, bytesRequested);
     } else {
         int32_t bytesToCopy = __MIN(bytesRequested, availableBytes);
+        assert(bytesToCopy > 0);
 
         memcpy(targetBuffer, buffer, bytesToCopy);
         TPCircularBufferConsume(&p_sys->circular_buffer, bytesToCopy);
-- 
1.8.3.4 (Apple Git-47)




More information about the vlc-devel mailing list