Commit c9d33a61 authored by François Cartegnie's avatar François Cartegnie 🤞

stream_out: match exactly access/mux for warnings

parent a25aa2c0
......@@ -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" );
}
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment