[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