@@ -516,7 +516,7 @@ static void end_buffer(FAudioSourceVoice *voice)
516516 if (voice -> src .queued_buffer_count )
517517 voice -> src .curBufferOffset = voice -> src .queued_buffers [0 ].buffer .PlayBegin ;
518518
519- if (callback )
519+ if (callback && ! internal )
520520 {
521521 FAudio_PlatformUnlockMutex (voice -> src .bufferLock );
522522 LOG_MUTEX_UNLOCK (voice -> audio , voice -> src .bufferLock )
@@ -527,10 +527,10 @@ static void end_buffer(FAudioSourceVoice *voice)
527527 FAudio_PlatformUnlockMutex (voice -> audio -> sourceLock );
528528 LOG_MUTEX_UNLOCK (voice -> audio , voice -> audio -> sourceLock )
529529
530- if (! internal && callback -> OnBufferEnd )
530+ if (callback -> OnBufferEnd )
531531 callback -> OnBufferEnd (callback , context );
532532
533- if (! internal && eos && callback -> OnStreamEnd )
533+ if (eos && callback -> OnStreamEnd )
534534 callback -> OnStreamEnd (callback );
535535
536536 FAudio_PlatformLockMutex (voice -> audio -> sourceLock );
@@ -541,35 +541,35 @@ static void end_buffer(FAudioSourceVoice *voice)
541541
542542 FAudio_PlatformLockMutex (voice -> src .bufferLock );
543543 LOG_MUTEX_LOCK (voice -> audio , voice -> src .bufferLock )
544+ }
544545
545- if (voice -> src .queued_buffer_count && !voice -> src .queued_buffers [0 ].sent_OnStartBuffer )
546- {
547- buffer = & voice -> src .queued_buffers [0 ];
548- buffer -> sent_OnStartBuffer = true;
549- voice -> src .curBufferOffset = buffer -> buffer .PlayBegin ;
546+ if (voice -> src .queued_buffer_count && !voice -> src .queued_buffers [0 ].sent_OnStartBuffer )
547+ {
548+ buffer = & voice -> src .queued_buffers [0 ];
549+ buffer -> sent_OnStartBuffer = true;
550+ voice -> src .curBufferOffset = buffer -> buffer .PlayBegin ;
550551
551- if (voice -> src . callback -> OnBufferStart && !buffer -> internal )
552- {
553- FAudio_PlatformUnlockMutex (voice -> src .bufferLock );
554- LOG_MUTEX_UNLOCK (voice -> audio , voice -> src .bufferLock )
552+ if (callback && callback -> OnBufferStart && !buffer -> internal )
553+ {
554+ FAudio_PlatformUnlockMutex (voice -> src .bufferLock );
555+ LOG_MUTEX_UNLOCK (voice -> audio , voice -> src .bufferLock )
555556
556- FAudio_PlatformUnlockMutex (voice -> sendLock );
557- LOG_MUTEX_UNLOCK (voice -> audio , voice -> sendLock )
557+ FAudio_PlatformUnlockMutex (voice -> sendLock );
558+ LOG_MUTEX_UNLOCK (voice -> audio , voice -> sendLock )
558559
559- FAudio_PlatformUnlockMutex (voice -> audio -> sourceLock );
560- LOG_MUTEX_UNLOCK (voice -> audio , voice -> audio -> sourceLock )
560+ FAudio_PlatformUnlockMutex (voice -> audio -> sourceLock );
561+ LOG_MUTEX_UNLOCK (voice -> audio , voice -> audio -> sourceLock )
561562
562- callback -> OnBufferStart (callback , buffer -> buffer .pContext );
563+ callback -> OnBufferStart (callback , buffer -> buffer .pContext );
563564
564- FAudio_PlatformLockMutex (voice -> audio -> sourceLock );
565- LOG_MUTEX_LOCK (voice -> audio , voice -> audio -> sourceLock )
565+ FAudio_PlatformLockMutex (voice -> audio -> sourceLock );
566+ LOG_MUTEX_LOCK (voice -> audio , voice -> audio -> sourceLock )
566567
567- FAudio_PlatformLockMutex (voice -> sendLock );
568- LOG_MUTEX_LOCK (voice -> audio , voice -> sendLock )
568+ FAudio_PlatformLockMutex (voice -> sendLock );
569+ LOG_MUTEX_LOCK (voice -> audio , voice -> sendLock )
569570
570- FAudio_PlatformLockMutex (voice -> src .bufferLock );
571- LOG_MUTEX_LOCK (voice -> audio , voice -> src .bufferLock )
572- }
571+ FAudio_PlatformLockMutex (voice -> src .bufferLock );
572+ LOG_MUTEX_LOCK (voice -> audio , voice -> src .bufferLock )
573573 }
574574 }
575575}
0 commit comments