[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