]> git.sesse.net Git - vlc/blobdiff - modules/stream_out/transcode/osd.c
sout: allow duplicate outputs to be merged
[vlc] / modules / stream_out / transcode / osd.c
index 22ffdbee49b15a0aa1506e4d681497a78b22a985..4424f6ecd75edcc327ccb792c83681c6d2ed792d 100644 (file)
 
 #include "transcode.h"
 
+#include <vlc_osd.h>
+
 /*
- *  * OSD menu
- *   */
+ * OSD menu
+ */
 int transcode_osd_new( sout_stream_t *p_stream, sout_stream_id_t *id )
 {
     sout_stream_sys_t *p_sys = p_stream->p_sys;
@@ -66,7 +68,7 @@ int transcode_osd_new( sout_stream_t *p_stream, sout_stream_id_t *id )
         }
 
         /* open output stream */
-        id->id = sout_StreamIdAdd( p_sys->p_out, &id->p_encoder->fmt_out );
+        id->id = sout_StreamIdAdd( p_stream->p_next, &id->p_encoder->fmt_out );
         id->b_transcode = true;
 
         if( !id->id ) goto error;
@@ -75,7 +77,7 @@ int transcode_osd_new( sout_stream_t *p_stream, sout_stream_id_t *id )
     {
         msg_Dbg( p_stream, "not transcoding a stream (fcc=`%4.4s')",
                  (char*)&id->p_decoder->fmt_out.i_codec );
-        id->id = sout_StreamIdAdd( p_sys->p_out, &id->p_decoder->fmt_out );
+        id->id = sout_StreamIdAdd( p_stream->p_next, &id->p_decoder->fmt_out );
         id->b_transcode = false;
 
         if( !id->id ) goto error;
@@ -117,7 +119,7 @@ int transcode_osd_process( sout_stream_t *p_stream, sout_stream_id_t *id,
     subpicture_t *p_subpic = NULL;
 
     /* Check if we have a subpicture to send */
-    if( p_sys->p_spu && in->i_dts > 0)
+    if( p_sys->p_spu && in->i_dts > VLC_TS_INVALID )
     {
         p_subpic = spu_SortSubpictures( p_sys->p_spu, in->i_dts, false );
     }