vlc | branch: master | Francois Cartegnie <fcvlc...@free.fr> | Tue Jul 10 
16:22:33 2018 +0200| [a4451cd32d8e4ffed15f2d59740b1a0ec1ee3f14] | committer: 
Francois Cartegnie

sout: be more resilient with broken streams

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=a4451cd32d8e4ffed15f2d59740b1a0ec1ee3f14
---

 src/stream_output/stream_output.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/src/stream_output/stream_output.c 
b/src/stream_output/stream_output.c
index 904fcc51a6..18aabd7227 100644
--- a/src/stream_output/stream_output.c
+++ b/src/stream_output/stream_output.c
@@ -543,7 +543,10 @@ int sout_MuxSendBuffer( sout_mux_t *p_mux, sout_input_t 
*p_input,
                       current_date - i_dts );
     }
 
-    if( p_mux->b_waiting_stream )
+    if( i_dts == VLC_TICK_INVALID )
+        i_dts = p_buffer->i_pts;
+
+    if( p_mux->b_waiting_stream && i_dts != VLC_TICK_INVALID )
     {
         const vlc_tick_t i_caching = VLC_TICK_FROM_MS(var_GetInteger( 
p_mux->p_sout, "sout-mux-caching" ));
 
@@ -551,8 +554,7 @@ int sout_MuxSendBuffer( sout_mux_t *p_mux, sout_input_t 
*p_input,
             p_mux->i_add_stream_start = i_dts;
 
         /* Wait until we have enough data before muxing */
-        if( p_mux->i_add_stream_start == VLC_TICK_INVALID ||
-            i_dts < p_mux->i_add_stream_start + i_caching )
+        if( llabs( i_dts - p_mux->i_add_stream_start ) < i_caching )
             return VLC_SUCCESS;
         p_mux->b_waiting_stream = false;
     }

_______________________________________________
vlc-commits mailing list
vlc-commits@videolan.org
https://mailman.videolan.org/listinfo/vlc-commits

Reply via email to