[vlc-commits] stream_out: match exactly access/mux for warnings

Francois Cartegnie git at videolan.org
Tue Sep 9 13:53:56 CEST 2014


vlc | branch: master | Francois Cartegnie <fcvlcdev at free.fr> | Tue Sep  9 13:50:56 2014 +0200| [c9d33a6123bb499cce31b4cf469ae40e8c9e9b6c] | committer: Francois Cartegnie

stream_out: match exactly access/mux for warnings

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

 modules/stream_out/standard.c |   21 +++++++++++++++------
 1 file changed, 15 insertions(+), 6 deletions(-)

diff --git a/modules/stream_out/standard.c b/modules/stream_out/standard.c
index 1bdcf6a..03d7336 100644
--- a/modules/stream_out/standard.c
+++ b/modules/stream_out/standard.c
@@ -292,24 +292,33 @@ static int fixAccessMux( sout_stream_t *p_stream, char **ppsz_mux,
     return 0;
 }
 
+static bool exactMatch( const char *psz_target, const char *psz_string,
+                        size_t i_len )
+{
+    if ( strncmp( psz_target, psz_string, i_len ) )
+        return false;
+    else
+        return ( psz_target[i_len] < 'a' || psz_target[i_len] > 'z' );
+}
+
 static void checkAccessMux( sout_stream_t *p_stream, char *psz_access,
                             char *psz_mux )
 {
-    if( !strncmp( psz_access, "mmsh", 4 ) && strncmp( psz_mux, "asfh", 4 ) )
+    if( exactMatch( psz_access, "mmsh", 4 ) && !exactMatch( psz_mux, "asfh", 4 ) )
         msg_Err( p_stream, "mmsh output is only valid with asfh mux" );
-    else if( strncmp( psz_access, "file", 4 ) &&
-            ( !strncmp( psz_mux, "mov", 3 ) || !strncmp( psz_mux, "mp4", 3 ) ) )
+    else if( exactMatch( psz_access, "file", 4 ) &&
+             ( exactMatch( psz_mux, "mov", 3 ) || exactMatch( psz_mux, "mp4", 3 ) ) )
         msg_Err( p_stream, "mov and mp4 mux are only valid with file output" );
-    else if( !strncmp( psz_access, "udp", 3 ) )
+    else if( exactMatch( psz_access, "udp", 3 ) )
     {
-        if( !strncmp( psz_mux, "ffmpeg", 6 ) || !strncmp( psz_mux, "avformat", 8 ) )
+        if( exactMatch( psz_mux, "ffmpeg", 6 ) || exactMatch( psz_mux, "avformat", 8 ) )
         {   /* why would you use ffmpeg's ts muxer ? YOU DON'T LOVE VLC ??? */
             char *psz_ffmpeg_mux = var_CreateGetString( p_stream, "sout-avformat-mux" );
             if( !psz_ffmpeg_mux || strncmp( psz_ffmpeg_mux, "mpegts", 6 ) )
                 msg_Err( p_stream, "UDP output is only valid with TS mux" );
             free( psz_ffmpeg_mux );
         }
-        else if( strncmp( psz_mux, "ts", 2 ) )
+        else if( !exactMatch( psz_mux, "ts", 2 ) )
             msg_Err( p_stream, "UDP output is only valid with TS mux" );
     }
 }



More information about the vlc-commits mailing list