]> git.sesse.net Git - vlc/blobdiff - modules/stream_out/es.c
Don't include config.h from the headers - refs #297.
[vlc] / modules / stream_out / es.c
index c700471a290748045abd9dec1906cb44aaf84f97..222bfa33a73848ad235933c5187ab3c83ea3052b 100644 (file)
 /*****************************************************************************
  * Preamble
  *****************************************************************************/
-#include <stdlib.h>
-#include <string.h>
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
 
 #include <vlc/vlc.h>
-#include <vlc/input.h>
-#include <vlc/sout.h>
+#include <vlc_input.h>
+#include <vlc_sout.h>
+#include <vlc_interface.h>
 
 /*****************************************************************************
  * Module descriptor
@@ -94,16 +97,17 @@ vlc_module_begin();
 
     add_string( SOUT_CFG_PREFIX "dst", "", NULL, DEST_TEXT,
                 DEST_LONGTEXT, VLC_TRUE );
+        change_unsafe();
     add_string( SOUT_CFG_PREFIX "dst-audio", "", NULL, DESTA_TEXT,
                 DESTA_LONGTEXT, VLC_TRUE );
+        change_unsafe();
     add_string( SOUT_CFG_PREFIX "dst-video", "", NULL, DESTV_TEXT,
                 DESTV_LONGTEXT, VLC_TRUE );
+        change_unsafe();
 
     set_callbacks( Open, Close );
 vlc_module_end();
 
-
-#define FREE( p ) if( p ) { free( p ); (p) = NULL; }
 /*****************************************************************************
  * Exported prototypes
  *****************************************************************************/
@@ -146,7 +150,7 @@ static int Open( vlc_object_t *p_this )
     sout_stream_sys_t   *p_sys;
     vlc_value_t         val;
 
-    sout_CfgParse( p_stream, SOUT_CFG_PREFIX, ppsz_sout_options, p_stream->p_cfg );
+    config_ChainParse( p_stream, SOUT_CFG_PREFIX, ppsz_sout_options, p_stream->p_cfg );
     p_sys                   = malloc( sizeof( sout_stream_sys_t ) );
 
     p_sys->i_count          = 0;
@@ -362,6 +366,11 @@ static sout_stream_id_t *Add( sout_stream_t *p_stream, es_format_t *p_fmt )
     {
         msg_Err( p_stream, "no suitable sout access module for `%s/%s://%s'",
                  psz_access, psz_mux, psz_dst );
+        intf_UserFatal( p_stream, VLC_FALSE,
+                    _("Streaming / Transcoding failed"),
+                    _("There is no suitable stream-output access module for \"%s/%s://%s\"."),
+                          psz_access,
+                          psz_mux, psz_dst );
         return( NULL );
     }
 
@@ -371,6 +380,11 @@ static sout_stream_id_t *Add( sout_stream_t *p_stream, es_format_t *p_fmt )
     {
         msg_Err( p_stream, "no suitable sout mux module for `%s/%s://%s'",
                  psz_access, psz_mux, psz_dst );
+        intf_UserFatal( p_stream, VLC_FALSE,
+                        _("Streaming / Transcoding failed"),
+                        _("There is no suitable stream-output access module "\
+                          "for \"%s/%s://%s\"."),
+                          psz_access, psz_mux, psz_dst );
         sout_AccessOutDelete( p_access );
         return( NULL );
     }
@@ -395,7 +409,7 @@ static sout_stream_id_t *Add( sout_stream_t *p_stream, es_format_t *p_fmt )
 static int Del( sout_stream_t *p_stream, sout_stream_id_t *id )
 {
     sout_access_out_t *p_access = id->p_mux->p_access;
-
+    sout_MuxDelete( id->p_mux );
     sout_MuxDeleteStream( id->p_mux, id->p_input );
     sout_AccessOutDelete( p_access );