[vlc-commits] aout: do not compute the same difference three times
Rémi Denis-Courmont
git at videolan.org
Sat Apr 9 19:10:03 CEST 2011
vlc | branch: master | Rémi Denis-Courmont <remi at remlab.net> | Sat Apr 9 19:59:28 2011 +0300| [97c0744fee3247d048d60786f176fed37a1fafb4] | committer: Rémi Denis-Courmont
aout: do not compute the same difference three times
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=97c0744fee3247d048d60786f176fed37a1fafb4
---
src/audio_output/output.c | 31 ++++++++++++++-----------------
1 files changed, 14 insertions(+), 17 deletions(-)
diff --git a/src/audio_output/output.c b/src/audio_output/output.c
index a427467..368d185 100644
--- a/src/audio_output/output.c
+++ b/src/audio_output/output.c
@@ -341,30 +341,27 @@ aout_buffer_t * aout_OutputNextBuffer( aout_instance_t * p_aout,
p_aout->output.fifo.pp_last = &p_aout->output.fifo.p_first;
}
- if ( !b_can_sleek &&
- ( (p_buffer->i_pts - start_date > AOUT_PTS_TOLERANCE)
- || (start_date - p_buffer->i_pts > AOUT_PTS_TOLERANCE) ) )
+ if( !b_can_sleek )
{
- /* Try to compensate the drift by doing some resampling. */
- int i;
mtime_t difference = start_date - p_buffer->i_pts;
- msg_Warn( p_aout, "output date isn't PTS date, requesting "
- "resampling (%"PRId64")", difference );
- aout_FifoMoveDates( p_aout, &p_aout->output.fifo, difference );
- aout_unlock_output_fifo( p_aout );
-
- aout_lock_input_fifos( p_aout );
- for ( i = 0; i < p_aout->i_nb_inputs; i++ )
+ if( difference > AOUT_PTS_TOLERANCE
+ || difference < -AOUT_PTS_TOLERANCE )
{
- aout_fifo_t * p_fifo = &p_aout->pp_inputs[i]->mixer.fifo;
+ /* Try to compensate the drift by doing some resampling. */
+ msg_Warn( p_aout, "output date isn't PTS date, requesting "
+ "resampling (%"PRId64")", difference );
+ aout_FifoMoveDates( p_aout, &p_aout->output.fifo, difference );
+ aout_unlock_output_fifo( p_aout );
+
+ aout_lock_input_fifos( p_aout );
+ aout_fifo_t *p_fifo = &p_aout->pp_inputs[0]->mixer.fifo;
aout_FifoMoveDates( p_aout, p_fifo, difference );
+ aout_unlock_input_fifos( p_aout );
+ return p_buffer;
}
- aout_unlock_input_fifos( p_aout );
}
- else
- aout_unlock_output_fifo( p_aout );
-
+ aout_unlock_output_fifo( p_aout );
return p_buffer;
}
More information about the vlc-commits
mailing list