[vlc-devel] [PATCH 1/2] transcode: fps sync calculation correction

ileoo at videolan.org ileoo at videolan.org
Sat Feb 15 11:57:15 CET 2014


From: Ilkka Ollakka <ileoo at videolan.org>

---
 modules/stream_out/transcode/video.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/modules/stream_out/transcode/video.c b/modules/stream_out/transcode/video.c
index d758c19..690fc03 100644
--- a/modules/stream_out/transcode/video.c
+++ b/modules/stream_out/transcode/video.c
@@ -672,7 +672,7 @@ static void OutputFrame( sout_stream_sys_t *p_sys, picture_t *p_pic, sout_stream
      * different fps value
      */
     if( ( p_pic->date ) <
-        ( date_Get( &id->next_output_pts ) ) )
+        ( date_Get( &id->next_output_pts ) - (mtime_t)id->i_output_frame_interval ) )
     {
 #if 0
         msg_Dbg( p_stream, "dropping frame (%"PRId64" + %"PRId64" vs %"PRId64")",
@@ -900,15 +900,15 @@ int transcode_video_process( sout_stream_t *p_stream, sout_stream_id_t *id,
         /*Input lipsync and drop check */
         if( p_sys->b_master_sync )
         {
-            /* If input pts + input_frame_interval is lower than next_output_pts - output_frame_interval
+            /* If input pts lower than next_output_pts - output_frame_interval
              * Then the future input frame should fit better and we can drop this one 
              *
              * We check this here as we don't need to run video filter at all for pictures
              * we are going to drop anyway
              *
              * Duplication need is checked in OutputFrame */
-            if( ( p_pic->date + (mtime_t)id->i_input_frame_interval ) <
-                ( date_Get( &id->next_output_pts ) ) )
+            if( ( p_pic->date ) <
+                ( date_Get( &id->next_output_pts ) - (mtime_t)id->i_output_frame_interval ) )
             {
 #if 0
                 msg_Dbg( p_stream, "dropping frame (%"PRId64" + %"PRId64" vs %"PRId64")",
-- 
1.8.5.2




More information about the vlc-devel mailing list