[vlc-devel] [PATCH] Fixed two issues that conspired to make transcoding MPEG-TS streams with DVB-subtitles using soverlay impossible (seems to be broken since 0.8.6a):

Peter Bak Nielsen peter.bak.nielsen at gmail.com
Sun Jan 3 19:52:21 CET 2010


In modules/demux/ts.c:
  Skipped DVB-subtitles seemingly on purpose when output is a stream.
  I can't make out why that would be a good idea, but it masks the
  second issue below, so perhaps this is the reason. Anyway, I removed
  the check allowing subtitles to proceed.

In modules/codec/dvbsub.c:
  The module did not mark the subtitles it produces with "b_subtitle == true",
  which causes them to be handled as OSD, and thus allowing them to become
  out of sync unless video was streamed in real time...
---
 modules/codec/dvbsub.c |    1 +
 modules/demux/ts.c     |    2 +-
 2 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/modules/codec/dvbsub.c b/modules/codec/dvbsub.c
index 105b692..31c4a8e 100644
--- a/modules/codec/dvbsub.c
+++ b/modules/codec/dvbsub.c
@@ -1488,6 +1488,7 @@ static subpicture_t *render( decoder_t *p_dec )
     p_spu->b_ephemer = true;
     //p_spu->b_fade = true;
     //p_spu->i_stop = p_spu->i_start + (mtime_t) (i_timeout * 1000000);
+    p_spu->b_subtitle = true;
 
     /* Correct positioning of SPU */
     i_base_x = p_sys->i_spu_x;
diff --git a/modules/demux/ts.c b/modules/demux/ts.c
index bec293d..fc34886 100644
--- a/modules/demux/ts.c
+++ b/modules/demux/ts.c
@@ -3461,7 +3461,7 @@ static void PMTSetupEsDvbSubtitle( demux_t *p_demux, ts_pid_t *pid,
 #endif
 
     /* In stream output mode, do not separate the stream by page */
-    if( p_demux->out->b_sout  || i_page <= 0 )
+    if( i_page <= 0 )
     {
         p_fmt->subs.dvb.i_id = -1;
         p_fmt->psz_description = strdup( _("DVB subtitles") );
-- 
1.6.3.3




More information about the vlc-devel mailing list