X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=modules%2Fdemux%2Fgme.cpp;h=de1c285d0f6c8a1bf230d2fbaed9f49810601f63;hb=41e8e58fd9787d5a98be9ba9e0fe0354aeb5e228;hp=6fe8e17d28a464aa2e9fde44601cd3af93a92434;hpb=d3fe7f28797d4dba65ffcdd60bf932e758a48a9e;p=vlc diff --git a/modules/demux/gme.cpp b/modules/demux/gme.cpp index 6fe8e17d28..de1c285d0f 100644 --- a/modules/demux/gme.cpp +++ b/modules/demux/gme.cpp @@ -24,9 +24,13 @@ /***************************************************************************** * Preamble *****************************************************************************/ -#include /* malloc(), free() */ -#include +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + +#include +#include #include "Nsf_Emu.h" #include "Gbs_Emu.h" @@ -48,8 +52,8 @@ static void Close ( vlc_object_t * ); vlc_module_begin(); set_shortname( "GME"); - set_description( _("GME demuxer (Game_Music_Emu)" ) ); - set_capability( "demux2", 10 ); + set_description( N_("GME demuxer (Game_Music_Emu)" ) ); + set_capability( "demux", 10 ); set_category( CAT_INPUT ); set_subcategory( SUBCAT_INPUT_DEMUX ); set_callbacks( Open, Close ); @@ -113,9 +117,9 @@ static int Open( vlc_object_t *p_this ) char *ext; int i; vlc_value_t val; - + /* We accept file based on extention match */ - if( strcasecmp( p_demux->psz_demux, "gme" ) ) + if( !p_demux->b_force ) { if( ( ext = strrchr( p_demux->psz_path, '.' ) ) == NULL || stream_Size( p_demux->s ) == 0 ) return VLC_EGENERIC; @@ -158,7 +162,7 @@ static int Open( vlc_object_t *p_this ) } /* Prepare emulator */ - + #ifdef HAVE_ZLIB_H if (i == 4) /* gzipped vgm */ { @@ -166,7 +170,7 @@ static int Open( vlc_object_t *p_this ) size_t i_outsize; inflate_gzbuf( p_sys->p_data, p_sys->i_data, &p_outbuffer, &i_outsize ); - + if (p_outbuffer == NULL) { msg_Err( p_demux, "failed to understand the file : unable to inflate vgz file" ); @@ -181,11 +185,11 @@ static int Open( vlc_object_t *p_this ) p_sys->p_data = p_outbuffer; p_sys->i_data = i_outsize; - } + } #endif - p_sys->p_reader = new Emu_Mem_Reader( p_sys->p_data, p_sys->i_data ); - + p_sys->p_reader = new Emu_Mem_Reader( p_sys->p_data, p_sys->i_data ); + switch(i) { case 0: @@ -215,15 +219,15 @@ static int Open( vlc_object_t *p_this ) p_emu->init( 44100 ); \ p_sys->p_musicemu = p_emu; \ p_sys->p_reader->read( &header, sizeof(header) ); \ - p_error = p_emu->load( header, *(p_sys->p_reader) ); + p_error = p_emu->load( header, *(p_sys->p_reader) ); p_sys->p_meta = vlc_meta_New(); char psz_temp[512]; - + /// \todo Reinstate meta codec name //SET_META( VLC_META_CODEC_NAME, type_str[p_sys->i_type]) - + const char * p_error; switch(p_sys->i_type) @@ -285,7 +289,7 @@ static int Open( vlc_object_t *p_this ) } } break; - } + } if( p_error != NULL ) { @@ -315,7 +319,7 @@ static int Open( vlc_object_t *p_this ) p_sys->fmt.audio.i_channels = 2; p_sys->fmt.audio.i_bitspersample = 16; p_sys->es = es_out_Add( p_demux->out, &p_sys->fmt ); - + return VLC_SUCCESS; } @@ -352,7 +356,7 @@ static int Demux( demux_t *p_demux ) p_frame = block_New( p_demux, i_buf ); p_sys->p_musicemu->play( i_emubuf, p_emubuf ); - + /* if( p_error != NULL ) { @@ -469,7 +473,7 @@ switch( i_query ) case DEMUX_SET_TITLE: i_idx = (int)va_arg( args, int ); - p_sys->p_musicemu->start_track( i_idx ); + p_sys->p_musicemu->start_track( i_idx ); p_demux->info.i_title = i_idx; p_demux->info.i_update = INPUT_UPDATE_TITLE; msg_Dbg( p_demux, "set title %i", i_idx); @@ -532,8 +536,8 @@ static void inflate_gzbuf(uint8_t * p_buffer, size_t i_size, uint8_t ** pp_obuff (*pi_osize) = out_size - z_str.avail_out; inflateEnd(&z_str); - - out_buffer = (uint8_t *)realloc(out_buffer, *pi_osize); + + out_buffer = (uint8_t *)realloc(out_buffer, *pi_osize); (*pp_obuffer) = out_buffer; } #endif