Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/FFmpeg/FFmpeg.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2011-04-30 23:38:40 +0400
committerMichael Niedermayer <michaelni@gmx.at>2011-05-01 00:09:15 +0400
commitfa1195227ff010bc22472688587fdcfa620f69de (patch)
treea1e023e58eaf85923ce97fcace59992badd46e87 /cmdutils.c
parentffdc49df25ec275c17e7f3e0ae5893185e3d9b93 (diff)
FFMPEG: support demuxer specific options.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'cmdutils.c')
-rw-r--r--cmdutils.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/cmdutils.c b/cmdutils.c
index 5ad45e107d..4363e8a842 100644
--- a/cmdutils.c
+++ b/cmdutils.c
@@ -297,6 +297,7 @@ int opt_default(const char *opt, const char *arg){
int opt_types[]={AV_OPT_FLAG_VIDEO_PARAM, AV_OPT_FLAG_AUDIO_PARAM, 0, AV_OPT_FLAG_SUBTITLE_PARAM, 0};
AVCodec *p = NULL;
AVOutputFormat *oformat = NULL;
+ AVInputFormat *iformat = NULL;
while ((p = av_codec_next(p))) {
AVClass *c = p->priv_class;
@@ -312,6 +313,13 @@ int opt_default(const char *opt, const char *arg){
}
if (oformat)
goto out;
+ while ((iformat = av_iformat_next(iformat))) {
+ const AVClass *c = iformat->priv_class;
+ if (c && av_find_opt(&c, opt, NULL, 0, 0))
+ break;
+ }
+ if (iformat)
+ goto out;
for(type=0; *avcodec_opts && type<AVMEDIA_TYPE_NB && ret>= 0; type++){
const AVOption *o2 = av_find_opt(avcodec_opts[0], opt, NULL, opt_types[type], opt_types[type]);
@@ -415,6 +423,8 @@ void set_context_opts(void *ctx, void *opts_ctx, int flags, AVCodec *codec)
AVFormatContext *avctx = ctx;
if (avctx->oformat && avctx->oformat->priv_class) {
priv_ctx = avctx->priv_data;
+ } else if (avctx->iformat && avctx->iformat->priv_class) {
+ priv_ctx = avctx->priv_data;
}
}