vlc/vlc-2.0 | branch: master | Sébastien Escudier <[email protected]> | Thu Feb 16 15:08:33 2012 +0100| [cba4df235c0000fa2de179b1c50c77876baa5aeb] | committer: Sébastien Escudier
avformat : add an option to force a specific format (cherry picked from commit 56e7865dce209276279eae8d9c388c7e88737776) Signed-off-by: Sébastien Escudier <[email protected]> > http://git.videolan.org/gitweb.cgi/vlc/vlc-2.0.git/?a=commit;h=cba4df235c0000fa2de179b1c50c77876baa5aeb --- modules/demux/avformat/avformat.c | 4 ++++ modules/demux/avformat/demux.c | 12 ++++++++++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/modules/demux/avformat/avformat.c b/modules/demux/avformat/avformat.c index 70ce57f..18f8640 100644 --- a/modules/demux/avformat/avformat.c +++ b/modules/demux/avformat/avformat.c @@ -32,6 +32,9 @@ #include "avformat.h" +#define FORMAT_TEXT N_( "Format name" ) +#define FORMAT_LONGTEXT N_( "Internal libavcodec format name" ) + vlc_module_begin () #endif /* MERGE_FFMPEG */ add_shortcut( "ffmpeg", "avformat" ) @@ -41,6 +44,7 @@ vlc_module_begin () set_shortname( N_("Avformat") ) set_capability( "demux", 2 ) set_callbacks( OpenDemux, CloseDemux ) + add_string( "ffmpeg-format", NULL, FORMAT_TEXT, FORMAT_LONGTEXT, true ) #ifdef ENABLE_SOUT /* mux submodule */ diff --git a/modules/demux/avformat/demux.c b/modules/demux/avformat/demux.c index 01f06d9..4785ff5 100644 --- a/modules/demux/avformat/demux.c +++ b/modules/demux/avformat/demux.c @@ -104,7 +104,7 @@ int OpenDemux( vlc_object_t *p_this ) demux_t *p_demux = (demux_t*)p_this; demux_sys_t *p_sys; AVProbeData pd; - AVInputFormat *fmt; + AVInputFormat *fmt = NULL; unsigned int i; int64_t i_start_time = -1; bool b_can_seek; @@ -131,8 +131,16 @@ int OpenDemux( vlc_object_t *p_this ) av_register_all(); /* Can be called several times */ vlc_avcodec_unlock(); + char *psz_format = var_InheritString( p_this, "ffmpeg-format" ); + if( psz_format ) + { + if( fmt = av_find_input_format(psz_format) ) + msg_Dbg( p_demux, "forcing format: %s", fmt->name ); + free( psz_format ); + } + /* Guess format */ - if( !( fmt = av_probe_input_format( &pd, 1 ) ) ) + if( !fmt && !( fmt = av_probe_input_format( &pd, 1 ) ) ) { msg_Dbg( p_demux, "couldn't guess format" ); free( psz_url ); _______________________________________________ vlc-commits mailing list [email protected] http://mailman.videolan.org/listinfo/vlc-commits
