From 735e934c58ddd831c5e94feac52ba87e7541cfc8 Mon Sep 17 00:00:00 2001 From: nicodvb Date: Wed, 30 Aug 2006 22:25:40 +0000 Subject: added lavfdopts to pass options to libavformat git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@19604 b3059339-0415-0410-9bf9-f77b7e298cf2 --- libmpdemux/demux_lavf.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'libmpdemux/demux_lavf.c') diff --git a/libmpdemux/demux_lavf.c b/libmpdemux/demux_lavf.c index 8740dba104..3ace94f665 100644 --- a/libmpdemux/demux_lavf.c +++ b/libmpdemux/demux_lavf.c @@ -27,17 +27,27 @@ #include "stream.h" #include "demuxer.h" #include "stheader.h" +#include "m_option.h" #ifdef USE_LIBAVFORMAT_SO #include +#include #else #include "avformat.h" #include "avi.h" +#include "opt.h" #endif #define PROBE_BUF_SIZE 2048 extern char *audio_lang; +static unsigned int opt_probesize = 0; + +m_option_t lavfdopts_conf[] = { + {"probesize", &(opt_probesize), CONF_TYPE_INT, CONF_RANGE, 32, INT_MAX, NULL}, + {NULL, NULL, 0, 0, 0, 0, NULL} +}; + typedef struct lavf_priv_t{ AVInputFormat *avif; @@ -136,6 +146,7 @@ static int lavf_check_file(demuxer_t *demuxer){ static demuxer_t* demux_open_lavf(demuxer_t *demuxer){ AVFormatContext *avfc; AVFormatParameters ap; + AVOption *opt; lavf_priv_t *priv= demuxer->priv; int i,g; char mp_filename[256]="mp:"; @@ -146,6 +157,14 @@ static demuxer_t* demux_open_lavf(demuxer_t *demuxer){ register_protocol(&mp_protocol); + avfc = av_alloc_format_context(); + ap.prealloced_context = 1; + if(opt_probesize) { + double d = (double) opt_probesize; + opt = av_set_double(avfc, "probesize", opt_probesize); + if(!opt) mp_msg(MSGT_HEADER,MSGL_ERR, "demux_lavf, couldn't set option probesize to %.3f\r\n", d); + } + if(demuxer->stream->url) strncpy(mp_filename + 3, demuxer->stream->url, sizeof(mp_filename)-3); else -- cgit v1.2.3