X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=modules%2Fdemux%2Fmjpeg.c;h=f601d92899492c91fd4868f18d158d5033134a98;hb=23fe953dbb391d1a20a6b75a79d41ff8a2d77f82;hp=768317fa94809cd3f0dc6382e87750261df9744c;hpb=449fd28aaf007c6411251dae9d0dbfdc65b135d1;p=vlc diff --git a/modules/demux/mjpeg.c b/modules/demux/mjpeg.c index 768317fa94..f601d92899 100644 --- a/modules/demux/mjpeg.c +++ b/modules/demux/mjpeg.c @@ -32,7 +32,8 @@ # include "config.h" #endif -#include +#include +#include #include #include @@ -50,8 +51,8 @@ static void Close( vlc_object_t * ); vlc_module_begin(); set_shortname( "MJPEG"); - set_description( _("M-JPEG camera demuxer") ); - set_capability( "demux2", 5 ); + set_description( N_("M-JPEG camera demuxer") ); + set_capability( "demux", 5 ); set_callbacks( Open, Close ); set_category( CAT_INPUT ); set_subcategory( SUBCAT_INPUT_DEMUX ); @@ -155,11 +156,8 @@ static char* GetLine( demux_t *p_demux, int *p_pos ) i--; } p_line = malloc( i + 1 ); - if( NULL == p_line ) - { - msg_Err( p_demux, "out of memory" ); + if( p_line == NULL ) return NULL; - } strncpy ( p_line, (char*)p_buf, i ); p_line[i] = '\0'; // msg_Dbg( p_demux, "i = %d, pos = %d, %s", i, *p_pos, p_line ); @@ -345,13 +343,13 @@ static int Open( vlc_object_t * p_this ) /* Check for jpeg file extension */ p_sys->b_still = false; p_sys->i_still_end = 0; - if( demux2_IsPathExtension( p_demux, ".jpeg" ) || - demux2_IsPathExtension( p_demux, ".jpg" ) ) + if( demux_IsPathExtension( p_demux, ".jpeg" ) || + demux_IsPathExtension( p_demux, ".jpg" ) ) { p_sys->b_still = true; if( val.f_float) { - p_sys->i_still_length =1000000.0 / val.f_float; + p_sys->i_still_length = 1000000.0 / val.f_float; } else { @@ -431,10 +429,9 @@ static int MimeDemux( demux_t *p_demux ) { demux_sys_t *p_sys = p_demux->p_sys; int i_size, i; - bool b_match; - bool b_done; - b_match = CheckMimeHeader( p_demux, &i_size ); + bool b_match = CheckMimeHeader( p_demux, &i_size ); + if( i_size > 0 ) { stream_Read( p_demux->s, NULL, i_size ); @@ -454,6 +451,7 @@ static int MimeDemux( demux_t *p_demux ) msg_Warn( p_demux, "cannot peek data" ); return 0; } + i = 0; i_size = strlen( p_sys->psz_separator ) + 2; if( p_sys->i_data_peeked < i_size ) @@ -461,8 +459,8 @@ static int MimeDemux( demux_t *p_demux ) msg_Warn( p_demux, "data shortage" ); return 0; } - b_done = false; - while( !b_done ) + + for( ;; ) { while( !( p_sys->p_peek[i] == '-' && p_sys->p_peek[i+1] == '-' ) ) { @@ -481,16 +479,15 @@ static int MimeDemux( demux_t *p_demux ) } } } + if( !strncmp( p_sys->psz_separator, (char *)(p_sys->p_peek + i + 2), strlen( p_sys->psz_separator ) ) ) { - b_done = true; - } - else - { - i++; - i_size++; + break; } + + i++; + i_size++; } if( !b_match ) @@ -520,5 +517,5 @@ static void Close ( vlc_object_t * p_this ) *****************************************************************************/ static int Control( demux_t *p_demux, int i_query, va_list args ) { - return demux2_vaControlHelper( p_demux->s, 0, 0, 0, 0, i_query, args ); + return demux_vaControlHelper( p_demux->s, 0, 0, 0, 0, i_query, args ); }