[vlc-commits] TS demux: set PCR for all programs

Rafaël Carré git at videolan.org
Sat Jul 26 01:19:57 CEST 2014


vlc/vlc-2.2 | branch: master | Rafaël Carré <funman at videolan.org> | Tue Jul  8 18:33:12 2014 +0200| [253b10a0dcd47dda203bf02407a99c4c63f7ad6c] | committer: Jean-Baptiste Kempf

TS demux: set PCR for all programs

Using the currently selected programs is wrong when we're using another
filter than --program.

Unconditionally use the PTS/DTS as PCR, which fixes automatically
lack of PCR.

Let's keep --no-ts-trust-pcr for when PCR is completely broken

--
Using both PCR and ES PTS seems to cause problems in some cases

(cherry picked from commit 8eb0b3d3b53c29b3495dcac275b5fe51f7633a6b)
(cherry picked from commit 5478a4d90b357c81b8e01f337aca0b9bb682605d)
Signed-off-by: Jean-Baptiste Kempf <jb at videolan.org>

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

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

diff --git a/modules/demux/ts.c b/modules/demux/ts.c
index 49ab933..a90d321 100644
--- a/modules/demux/ts.c
+++ b/modules/demux/ts.c
@@ -1732,9 +1732,9 @@ static void ParsePES( demux_t *p_demux, ts_pid_t *pid, block_t *p_pes )
                          block_Duplicate( p_block ) );
         }
 
-        if (!p_sys->b_trust_pcr && pid->i_owner_number == p_sys->i_current_program) {
-            es_out_Control( p_demux->out, ES_OUT_SET_PCR, p_block->i_pts);
-        }
+        if (!p_sys->b_trust_pcr)
+            es_out_Control( p_demux->out, ES_OUT_SET_GROUP_PCR,
+                    pid->i_owner_number, p_block->i_pts);
 
         es_out_Send( p_demux->out, pid->es->id, p_block );
     }



More information about the vlc-commits mailing list