[MPlayer-cvslog] r19604 - in trunk: cfg-common.h libmpdemux/demux_lavf.c
nicodvb
subversion at mplayerhq.hu
Thu Aug 31 00:25:40 CEST 2006
Author: nicodvb
Date: Thu Aug 31 00:25:40 2006
New Revision: 19604
Modified:
trunk/cfg-common.h
trunk/libmpdemux/demux_lavf.c
Log:
added lavfdopts to pass options to libavformat
Modified: trunk/cfg-common.h
==============================================================================
--- trunk/cfg-common.h (original)
+++ trunk/cfg-common.h Thu Aug 31 00:25:40 2006
@@ -239,6 +239,9 @@
#ifdef USE_LIBAVCODEC
{"lavdopts", lavc_decode_opts_conf, CONF_TYPE_SUBCONFIG, 0, 0, 0, NULL},
#endif
+#if defined(USE_LIBAVFORMAT) || defined(USE_LIBAVFORMAT_SO)
+ {"lavfdopts", lavfdopts_conf, CONF_TYPE_SUBCONFIG, CONF_GLOBAL, 0, 0, NULL},
+#endif
#if defined(HAVE_XVID3) || defined(HAVE_XVID4)
{"xvidopts", xvid_dec_opts, CONF_TYPE_SUBCONFIG, 0, 0, 0, NULL},
#endif
@@ -471,6 +474,10 @@
extern m_config_t dvbin_opts_conf[];
#endif
+#if defined(USE_LIBAVFORMAT) || defined(USE_LIBAVFORMAT_SO)
+extern m_option_t lavfdopts_conf[];
+#endif
+
#ifdef USE_FRIBIDI
extern char *fribidi_charset;
extern int flip_hebrew;
Modified: trunk/libmpdemux/demux_lavf.c
==============================================================================
--- trunk/libmpdemux/demux_lavf.c (original)
+++ trunk/libmpdemux/demux_lavf.c Thu Aug 31 00:25:40 2006
@@ -27,17 +27,27 @@
#include "stream.h"
#include "demuxer.h"
#include "stheader.h"
+#include "m_option.h"
#ifdef USE_LIBAVFORMAT_SO
#include <ffmpeg/avformat.h>
+#include <ffmpeg/opt.h>
#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 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 @@
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
More information about the MPlayer-cvslog
mailing list