X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=modules%2Fdemux%2Fdemuxdump.c;h=2a642929978885abb6d00e8544a6c0d011d968ed;hb=33778d4d8c5d4b53793bdfe699315dac4e5baf68;hp=2e3f454cf66c411e7028b9204a8dc0d3f3283828;hpb=449fd28aaf007c6411251dae9d0dbfdc65b135d1;p=vlc diff --git a/modules/demux/demuxdump.c b/modules/demux/demuxdump.c index 2e3f454cf6..2a64292997 100644 --- a/modules/demux/demuxdump.c +++ b/modules/demux/demuxdump.c @@ -24,15 +24,15 @@ /***************************************************************************** * Preamble *****************************************************************************/ -#include #ifdef HAVE_CONFIG_H # include "config.h" #endif -#include +#include +#include #include -#include +#include /***************************************************************************** * Module descriptor @@ -47,20 +47,19 @@ static int Open( vlc_object_t * ); static void Close ( vlc_object_t * ); -vlc_module_begin(); - set_shortname("Dump"); - set_category( CAT_INPUT ); - set_subcategory( SUBCAT_INPUT_DEMUX ); - set_description( _("File dumper") ); - set_capability( "demux2", 0 ); +vlc_module_begin () + set_shortname("Dump") + set_category( CAT_INPUT ) + set_subcategory( SUBCAT_INPUT_DEMUX ) + set_description( N_("File dumper") ) + set_capability( "demux", 0 ) add_file( "demuxdump-file", "stream-demux.dump", NULL, FILE_TEXT, - FILE_LONGTEXT, false ); - change_unsafe(); - add_bool( "demuxdump-append", 0, NULL, APPEND_TEXT, APPEND_LONGTEXT, - false ); - set_callbacks( Open, Close ); - add_shortcut( "dump" ); -vlc_module_end(); + FILE_LONGTEXT, false ) + add_bool( "demuxdump-append", false, NULL, APPEND_TEXT, APPEND_LONGTEXT, + false ) + set_callbacks( Open, Close ) + add_shortcut( "dump" ) +vlc_module_end () /***************************************************************************** @@ -92,16 +91,17 @@ static int Open( vlc_object_t * p_this ) demux_t *p_demux = (demux_t*)p_this; demux_sys_t *p_sys; const char *psz_mode; - vlc_value_t val; bool b_append; /* Accept only if forced */ if( !p_demux->b_force ) return VLC_EGENERIC; - var_Create( p_demux, "demuxdump-append", VLC_VAR_BOOL|VLC_VAR_DOINHERIT ); - var_Get( p_demux, "demuxdump-append", &val ); - b_append = val.b_bool; + p_demux->p_sys = p_sys = malloc( sizeof( demux_sys_t ) ); + if( !p_sys ) + return VLC_ENOMEM; + + b_append = var_CreateGetBool( p_demux, "demuxdump-append" ); if ( b_append ) psz_mode = "ab"; else @@ -109,13 +109,15 @@ static int Open( vlc_object_t * p_this ) p_demux->pf_demux = Demux; p_demux->pf_control = Control; - p_demux->p_sys = p_sys = malloc( sizeof( demux_sys_t ) ); + p_sys->i_write = 0; p_sys->p_file = NULL; p_sys->psz_file = var_CreateGetString( p_demux, "demuxdump-file" ); if( *p_sys->psz_file == '\0' ) { msg_Warn( p_demux, "no dump file name given" ); + free( p_sys->psz_file ); + free( p_sys ); return VLC_EGENERIC; } @@ -124,10 +126,10 @@ static int Open( vlc_object_t * p_this ) msg_Info( p_demux, "dumping raw stream to standard output" ); p_sys->p_file = stdout; } - else if( ( p_sys->p_file = utf8_fopen( p_sys->psz_file, psz_mode ) ) == NULL ) + else if( ( p_sys->p_file = vlc_fopen( p_sys->psz_file, psz_mode ) ) == NULL ) { msg_Err( p_demux, "cannot create `%s' for writing", p_sys->psz_file ); - + free( p_sys->psz_file ); free( p_sys ); return VLC_EGENERIC; } @@ -146,7 +148,7 @@ static void Close( vlc_object_t *p_this ) demux_t *p_demux = (demux_t*)p_this; demux_sys_t *p_sys = p_demux->p_sys; - msg_Info( p_demux ,"closing %s ("I64Fd" Kbytes dumped)", p_sys->psz_file, + msg_Info( p_demux ,"closing %s (%"PRId64" KiB dumped)", p_sys->psz_file, p_sys->i_write / 1024 ); if( p_sys->p_file != stdout ) @@ -154,7 +156,6 @@ static void Close( vlc_object_t *p_this ) fclose( p_sys->p_file ); } free( p_sys->psz_file ); - free( p_sys ); } @@ -169,7 +170,6 @@ static int Demux( demux_t *p_demux ) int i_data; - /* I'm pretty sure that stream_Peek,stream_Read( , NULL ) would be faster*/ i_data = stream_Read( p_demux->s, p_sys->buffer, DUMP_BLOCKSIZE ); if ( i_data <= 0 ) return i_data; @@ -195,6 +195,6 @@ static int Demux( demux_t *p_demux ) *****************************************************************************/ static int Control( demux_t *p_demux, int i_query, va_list args ) { - return demux2_vaControlHelper( p_demux->s, 0, -1, 0, 1, i_query, args ); + return demux_vaControlHelper( p_demux->s, 0, -1, 0, 1, i_query, args ); }