[vlc-commits] auhal: do not stop and restart audio unit on flush
David Fuhrmann
git at videolan.org
Tue Nov 26 23:04:53 CET 2013
vlc | branch: master | David Fuhrmann <david.fuhrmann at googlemail.com> | Tue Nov 26 19:40:09 2013 +0100| [1f46c35a5aa44fd1c32b49c65500e37d795f1a91] | committer: David Fuhrmann
auhal: do not stop and restart audio unit on flush
This is a manual revert of 878169fe, which is not needed anymore.
Additionally, it fixes blayback with devices which are not fast
enough for starting up.
close #9886
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=1f46c35a5aa44fd1c32b49c65500e37d795f1a91
---
modules/audio_output/auhal.c | 14 +-------------
1 file changed, 1 insertion(+), 13 deletions(-)
diff --git a/modules/audio_output/auhal.c b/modules/audio_output/auhal.c
index fd1b060..6ce555d 100644
--- a/modules/audio_output/auhal.c
+++ b/modules/audio_output/auhal.c
@@ -103,9 +103,6 @@ struct aout_sys_t
bool b_revert; /* Whether we need to revert the stream format */
bool b_changed_mixing; /* Whether we need to set the mixing mode back */
-
- bool b_got_first_sample; /* did the aout core provide something to render? */
-
int i_rate; /* media sample rate */
int i_bytes_per_sample;
@@ -828,7 +825,7 @@ static int StartAnalog(audio_output_t *p_aout, audio_sample_format_t *fmt)
TPCircularBufferInit(&p_sys->circular_buffer, AUDIO_BUFFER_SIZE_IN_SECONDS *
fmt->i_rate * fmt->i_bytes_per_frame);
- p_sys->b_got_first_sample = false;
+ verify_noerr(AudioOutputUnitStart(p_sys->au_unit));
/* Set volume for output unit */
VolumeSet(p_aout, p_sys->f_volume);
@@ -1345,12 +1342,6 @@ static void Play(audio_output_t * p_aout, block_t * p_block)
struct aout_sys_t *p_sys = p_aout->sys;
if (p_block->i_nb_samples > 0) {
- if (!p_sys->b_got_first_sample) {
- /* Start the AU */
- verify_noerr(AudioOutputUnitStart(p_sys->au_unit));
- p_sys->b_got_first_sample = true;
- }
-
/* Do the channel reordering */
if (p_sys->chans_to_reorder && !p_sys->b_digital) {
aout_ChannelReorder(p_block->p_buffer,
@@ -1404,10 +1395,7 @@ static void Flush(audio_output_t *p_aout, bool wait)
vlc_mutex_unlock(&p_sys->lock);
} else {
- p_sys->b_got_first_sample = false;
-
/* flush circular buffer */
- AudioOutputUnitStop(p_aout->sys->au_unit);
TPCircularBufferClear(&p_aout->sys->circular_buffer);
}
}
More information about the vlc-commits
mailing list