vlc | branch: master | Francois Cartegnie <[email protected]> | Tue Nov 10 
16:41:44 2020 +0100| [44782fa1f73fd88787c7b570b7ddabe705c49173] | committer: 
Francois Cartegnie

demux: ts: fix possibly non monotonic first generated pcr

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

 modules/demux/mpeg/ts.c | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/modules/demux/mpeg/ts.c b/modules/demux/mpeg/ts.c
index eb521ec19b..cfeccd6a34 100644
--- a/modules/demux/mpeg/ts.c
+++ b/modules/demux/mpeg/ts.c
@@ -2237,9 +2237,13 @@ static void ProgramSetPCR( demux_t *p_demux, ts_pmt_t 
*p_pmt, stime_t i_pcr )
 
         if( i_mindts != VLC_TICK_INVALID )
         {
-            msg_Dbg( p_demux, "Program %d PCR prequeue fixup 
%"PRId64"->%"PRId64,
-                     p_pmt->i_number, TO_SCALE(i_mindts), i_pcr );
-            i_pcr = TO_SCALE(i_mindts);
+            if( i_pcr > p_pmt->pcr.i_first ) /* don't bork the natural pcr 
offset */
+            {
+                msg_Dbg( p_demux, "Program %d PCR prequeue fixup 
%"PRId64"->%"PRId64,
+                         p_pmt->i_number, TO_SCALE(i_mindts), i_pcr );
+                i_pcr = TO_SCALE(i_mindts);
+            }
+            else i_pcr = p_pmt->pcr.i_first;
         }
     }
 

_______________________________________________
vlc-commits mailing list
[email protected]
https://mailman.videolan.org/listinfo/vlc-commits

Reply via email to