@ -422,10 +422,10 @@ void parse_loglevel(int argc, char **argv, const OptionDef *options)
}
}
}
}
# define FLAGS(o) (( o) ->type == AV_OPT_TYPE_FLAGS) ? AV_DICT_APPEND : 0
# define FLAGS (o->type == AV_OPT_TYPE_FLAGS) ? AV_DICT_APPEND : 0
int opt_default ( const char * opt , const char * arg )
int opt_default ( const char * opt , const char * arg )
{
{
const AVOption * oc , * of , * os , * oswr = NULL ;
const AVOption * o ;
char opt_stripped [ 128 ] ;
char opt_stripped [ 128 ] ;
const char * p ;
const char * p ;
const AVClass * cc = avcodec_get_class ( ) , * fc = avformat_get_class ( ) , * sc , * swr_class ;
const AVClass * cc = avcodec_get_class ( ) , * fc = avformat_get_class ( ) , * sc , * swr_class ;
@ -434,18 +434,18 @@ int opt_default(const char *opt, const char *arg)
p = opt + strlen ( opt ) ;
p = opt + strlen ( opt ) ;
av_strlcpy ( opt_stripped , opt , FFMIN ( sizeof ( opt_stripped ) , p - opt + 1 ) ) ;
av_strlcpy ( opt_stripped , opt , FFMIN ( sizeof ( opt_stripped ) , p - opt + 1 ) ) ;
if ( ( oc = av_opt_find ( & cc , opt_stripped , NULL , 0 ,
if ( ( o = av_opt_find ( & cc , opt_stripped , NULL , 0 ,
AV_OPT_SEARCH_CHILDREN | AV_OPT_SEARCH_FAKE_OBJ ) ) | |
AV_OPT_SEARCH_CHILDREN | AV_OPT_SEARCH_FAKE_OBJ ) ) | |
( ( opt [ 0 ] = = ' v ' | | opt [ 0 ] = = ' a ' | | opt [ 0 ] = = ' s ' ) & &
( ( opt [ 0 ] = = ' v ' | | opt [ 0 ] = = ' a ' | | opt [ 0 ] = = ' s ' ) & &
( oc = av_opt_find ( & cc , opt + 1 , NULL , 0 , AV_OPT_SEARCH_FAKE_OBJ ) ) ) )
( o = av_opt_find ( & cc , opt + 1 , NULL , 0 , AV_OPT_SEARCH_FAKE_OBJ ) ) ) )
av_dict_set ( & codec_opts , opt , arg , FLAGS ( oc ) ) ;
av_dict_set ( & codec_opts , opt , arg , FLAGS ) ;
if ( ( of = av_opt_find ( & fc , opt , NULL , 0 ,
else if ( ( o = av_opt_find ( & fc , opt , NULL , 0 ,
AV_OPT_SEARCH_CHILDREN | AV_OPT_SEARCH_FAKE_OBJ ) ) )
AV_OPT_SEARCH_CHILDREN | AV_OPT_SEARCH_FAKE_OBJ ) ) )
av_dict_set ( & format_opts , opt , arg , FLAGS ( of ) ) ;
av_dict_set ( & format_opts , opt , arg , FLAGS ) ;
# if CONFIG_SWSCALE
# if CONFIG_SWSCALE
sc = sws_get_class ( ) ;
sc = sws_get_class ( ) ;
if ( ( os = av_opt_find ( & sc , opt , NULL , 0 ,
if ( ! o & & ( o = av_opt_find ( & sc , opt , NULL , 0 ,
AV_OPT_SEARCH_CHILDREN | AV_OPT_SEARCH_FAKE_OBJ ) ) ) {
AV_OPT_SEARCH_CHILDREN | AV_OPT_SEARCH_FAKE_OBJ ) ) ) {
// XXX we only support sws_flags, not arbitrary sws options
// XXX we only support sws_flags, not arbitrary sws options
int ret = av_opt_set ( sws_opts , opt , arg , 0 ) ;
int ret = av_opt_set ( sws_opts , opt , arg , 0 ) ;
if ( ret < 0 ) {
if ( ret < 0 ) {
@ -456,8 +456,8 @@ int opt_default(const char *opt, const char *arg)
# endif
# endif
# if CONFIG_SWRESAMPLE
# if CONFIG_SWRESAMPLE
swr_class = swr_get_class ( ) ;
swr_class = swr_get_class ( ) ;
if ( ! oc & & ! of & & ! os & & ( oswr = av_opt_find ( & swr_class , opt , NULL , 0 ,
if ( ! o & & ( o = av_opt_find ( & swr_class , opt , NULL , 0 ,
AV_OPT_SEARCH_CHILDREN | AV_OPT_SEARCH_FAKE_OBJ ) ) ) {
AV_OPT_SEARCH_CHILDREN | AV_OPT_SEARCH_FAKE_OBJ ) ) ) {
int ret = av_opt_set ( swr_opts , opt , arg , 0 ) ;
int ret = av_opt_set ( swr_opts , opt , arg , 0 ) ;
if ( ret < 0 ) {
if ( ret < 0 ) {
av_log ( NULL , AV_LOG_ERROR , " Error setting option %s. \n " , opt ) ;
av_log ( NULL , AV_LOG_ERROR , " Error setting option %s. \n " , opt ) ;
@ -466,7 +466,7 @@ int opt_default(const char *opt, const char *arg)
}
}
# endif
# endif
if ( oc | | of | | os | | oswr )
if ( o )
return 0 ;
return 0 ;
av_log ( NULL , AV_LOG_ERROR , " Unrecognized option '%s' \n " , opt ) ;
av_log ( NULL , AV_LOG_ERROR , " Unrecognized option '%s' \n " , opt ) ;
return AVERROR_OPTION_NOT_FOUND ;
return AVERROR_OPTION_NOT_FOUND ;