]> git.sesse.net Git - vlc/commitdiff
* input, stream_output: handle sout_instance_t->p_meta.
authorLaurent Aimar <fenrir@videolan.org>
Wed, 10 Mar 2004 21:55:25 +0000 (21:55 +0000)
committerLaurent Aimar <fenrir@videolan.org>
Wed, 10 Mar 2004 21:55:25 +0000 (21:55 +0000)
src/input/input.c
src/stream_output/stream_output.c

index 42ebbb3127ae0881c4dd4fe4124be5e33b4ba726..2dddeee324f051240ecc5973997936a9798e0c7e 100644 (file)
@@ -899,7 +899,14 @@ static int InitThread( input_thread_t * p_input )
         }
         if( p_playlist ) vlc_object_release( p_playlist );
 
-        vlc_meta_Delete( meta );
+        if( p_input->stream.p_sout && p_input->stream.p_sout->p_meta == NULL )
+        {
+            p_input->stream.p_sout->p_meta = meta;
+        }
+        else
+        {
+            vlc_meta_Delete( meta );
+        }
     }
 
     /* get length */
index ec6127f78912dea80097113b7a81f1b7d0b48b57..5b0e3ed06d275ca107245ddfd8e385c8f34514c4 100644 (file)
 #include <string.h>                                            /* strerror() */
 
 #include <vlc/vlc.h>
-
 #include <vlc/sout.h>
+
+#include "vlc_meta.h"
+
 #undef DEBUG_BUFFER
 /*****************************************************************************
  * Local prototypes
@@ -117,6 +119,7 @@ sout_instance_t * __sout_NewInstance ( vlc_object_t *p_parent,
 
     /* *** init descriptor *** */
     p_sout->psz_sout    = strdup( psz_dest );
+    p_sout->p_meta      = NULL;
     p_sout->i_preheader = 0;
     p_sout->i_padding   = 0;
     p_sout->i_out_pace_nocontrol = 0;
@@ -162,6 +165,11 @@ void sout_DeleteInstance( sout_instance_t * p_sout )
     FREE( p_sout->psz_sout );
     FREE( p_sout->psz_chain );
 
+    if( p_sout->p_meta )
+    {
+        vlc_meta_Delete( p_sout->p_meta );
+    }
+
     sout_stream_delete( p_sout->p_stream );
     vlc_mutex_destroy( &p_sout->lock );