[vlc-commits] transcode: don't check drift if we have VLC_TS_INVALID pts
Ilkka Ollakka
git at videolan.org
Sun Sep 29 13:30:31 CEST 2013
vlc | branch: master | Ilkka Ollakka <ileoo at videolan.org> | Sun Sep 29 11:41:08 2013 +0300| [af762f811d4ed34a883bc2003f4c70e18f66965e] | committer: Ilkka Ollakka
transcode: don't check drift if we have VLC_TS_INVALID pts
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=af762f811d4ed34a883bc2003f4c70e18f66965e
---
modules/stream_out/transcode/audio.c | 12 +++++++++---
1 file changed, 9 insertions(+), 3 deletions(-)
diff --git a/modules/stream_out/transcode/audio.c b/modules/stream_out/transcode/audio.c
index 5ad2230..7b02b38 100644
--- a/modules/stream_out/transcode/audio.c
+++ b/modules/stream_out/transcode/audio.c
@@ -204,8 +204,13 @@ int transcode_audio_process( sout_stream_t *p_stream,
if( p_sys->b_master_sync )
{
mtime_t i_pts = date_Get( &id->interpolated_pts ) + 1;
- mtime_t i_drift = p_audio_buf->i_pts - i_pts;
- if (i_drift > MASTER_SYNC_MAX_DRIFT || i_drift < -MASTER_SYNC_MAX_DRIFT)
+ mtime_t i_drift = 0;
+
+ if( likely( p_audio_buf->i_pts != VLC_TS_INVALID ) )
+ i_drift = p_audio_buf->i_pts - i_pts;
+
+ if ( unlikely(i_drift > MASTER_SYNC_MAX_DRIFT
+ || i_drift < -MASTER_SYNC_MAX_DRIFT) )
{
msg_Dbg( p_stream,
"audio drift is too high (%"PRId64"), resetting master sync",
@@ -213,7 +218,8 @@ int transcode_audio_process( sout_stream_t *p_stream,
date_Set( &id->interpolated_pts, p_audio_buf->i_pts );
i_pts = p_audio_buf->i_pts + 1;
}
- p_sys->i_master_drift = p_audio_buf->i_pts - i_pts;
+ if( likely(p_audio_buf->i_pts != VLC_TS_INVALID ) )
+ p_sys->i_master_drift = p_audio_buf->i_pts - i_pts;
date_Increment( &id->interpolated_pts, p_audio_buf->i_nb_samples );
p_audio_buf->i_pts = i_pts;
}
More information about the vlc-commits
mailing list