mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
make AVOptions default value field work.
Patch by Panagiotis Issaris % takis P issaris A uhasselt P be % Original thread: Date: Sep 8, 2006 3:22 PM Subject: [Ffmpeg-devel] [PATCH 1/2] Enable usage of AVOption default value Originally committed as revision 6224 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
b7cff9ce7c
commit
73a8ceaa17
@ -299,3 +299,40 @@ int av_opt_show(void *obj, void *av_log_obj){
|
|||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void av_opt_set_defaults(void *s)
|
||||||
|
{
|
||||||
|
AVOption *opt = NULL;
|
||||||
|
while ((opt = av_next_option(s, opt)) != NULL) {
|
||||||
|
switch(opt->type) {
|
||||||
|
case FF_OPT_TYPE_CONST:
|
||||||
|
/* Nothing to be done here */
|
||||||
|
break;
|
||||||
|
case FF_OPT_TYPE_FLAGS:
|
||||||
|
case FF_OPT_TYPE_INT: {
|
||||||
|
int val;
|
||||||
|
val = opt->default_val;
|
||||||
|
av_set_int(s, opt->name, val);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case FF_OPT_TYPE_FLOAT: {
|
||||||
|
double val;
|
||||||
|
val = opt->default_val;
|
||||||
|
av_set_double(s, opt->name, val);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case FF_OPT_TYPE_RATIONAL: {
|
||||||
|
AVRational val;
|
||||||
|
val = av_d2q(opt->default_val, INT_MAX);
|
||||||
|
av_set_q(s, opt->name, val);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case FF_OPT_TYPE_STRING:
|
||||||
|
/* Cannot set default for string as default_val is of type * double */
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
av_log(s, AV_LOG_DEBUG, "AVOption type %d of option %s not implemented yet\n", opt->type, opt->name);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@ -76,5 +76,6 @@ int64_t av_get_int(void *obj, const char *name, AVOption **o_out);
|
|||||||
const char *av_get_string(void *obj, const char *name, AVOption **o_out, char *buf, int buf_len);
|
const char *av_get_string(void *obj, const char *name, AVOption **o_out, char *buf, int buf_len);
|
||||||
AVOption *av_next_option(void *obj, AVOption *last);
|
AVOption *av_next_option(void *obj, AVOption *last);
|
||||||
int av_opt_show(void *obj, void *av_log_obj);
|
int av_opt_show(void *obj, void *av_log_obj);
|
||||||
|
void av_opt_set_defaults(void *s);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -765,6 +765,9 @@ void avcodec_get_context_defaults(AVCodecContext *s){
|
|||||||
memset(s, 0, sizeof(AVCodecContext));
|
memset(s, 0, sizeof(AVCodecContext));
|
||||||
|
|
||||||
s->av_class= &av_codec_context_class;
|
s->av_class= &av_codec_context_class;
|
||||||
|
|
||||||
|
av_opt_set_defaults(s);
|
||||||
|
|
||||||
s->bit_rate= 800*1000;
|
s->bit_rate= 800*1000;
|
||||||
s->bit_rate_tolerance= s->bit_rate*10;
|
s->bit_rate_tolerance= s->bit_rate*10;
|
||||||
s->qmin= 2;
|
s->qmin= 2;
|
||||||
|
@ -486,6 +486,10 @@ static
|
|||||||
void avformat_get_context_defaults(AVFormatContext *s){
|
void avformat_get_context_defaults(AVFormatContext *s){
|
||||||
memset(s, 0, sizeof(AVFormatContext));
|
memset(s, 0, sizeof(AVFormatContext));
|
||||||
|
|
||||||
|
s->av_class = &av_format_context_class;
|
||||||
|
|
||||||
|
av_opt_set_defaults(s);
|
||||||
|
|
||||||
/* from mpegts.c: 1.0 second at 24Mbit/s */
|
/* from mpegts.c: 1.0 second at 24Mbit/s */
|
||||||
s->probesize=32000;
|
s->probesize=32000;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user