[vlc-commits] transcode: don't check drift if we have VLC_TS_INVALID pts
Ilkka Ollakka
git at videolan.org
Sun Sep 29 13:33:48 CEST 2013
vlc/vlc-2.1 | branch: master | Ilkka Ollakka <ileoo at videolan.org> | Sun Sep 29 11:41:08 2013 +0300| [1bbf0e468419744a382b6d4df02aa49c3cb153f1] | committer: Ilkka Ollakka
transcode: don't check drift if we have VLC_TS_INVALID pts
(cherry picked from commit af762f811d4ed34a883bc2003f4c70e18f66965e)
Signed-off-by: Ilkka Ollakka <ileoo at videolan.org>
> http://git.videolan.org/gitweb.cgi/vlc/vlc-2.1.git/?a=commit;h=1bbf0e468419744a382b6d4df02aa49c3cb153f1
---
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 6d5ccb3..8d3ee57 100644
--- a/modules/stream_out/transcode/audio.c
+++ b/modules/stream_out/transcode/audio.c
@@ -216,8 +216,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,
"drift is too high (%"PRId64"), resetting master sync",
@@ -225,7 +230,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