|
|
@@ -258,19 +258,28 @@ int64_t av_get_int(void *obj, const char *name, AVOption **o_out){ |
|
|
|
return num*intnum/den; |
|
|
|
} |
|
|
|
|
|
|
|
int av_opt_show(void *obj, void *av_log_obj){ |
|
|
|
static int opt_list(void *obj, void *av_log_obj, char *unit) |
|
|
|
{ |
|
|
|
AVOption *opt=NULL; |
|
|
|
|
|
|
|
if(!obj) |
|
|
|
return -1; |
|
|
|
|
|
|
|
av_log(av_log_obj, AV_LOG_INFO, "%s AVOptions:\n", (*(AVClass**)obj)->class_name); |
|
|
|
|
|
|
|
while((opt= av_next_option(obj, opt))){ |
|
|
|
if(!(opt->flags & (AV_OPT_FLAG_ENCODING_PARAM|AV_OPT_FLAG_DECODING_PARAM))) |
|
|
|
continue; |
|
|
|
|
|
|
|
av_log(av_log_obj, AV_LOG_INFO, "-%-17s ", opt->name); |
|
|
|
/* Don't print CONST's on level one. |
|
|
|
* Don't print anything but CONST's on level two. |
|
|
|
* Only print items from the requested unit. |
|
|
|
*/ |
|
|
|
if (!unit && opt->type==FF_OPT_TYPE_CONST) |
|
|
|
continue; |
|
|
|
else if (unit && opt->type!=FF_OPT_TYPE_CONST) |
|
|
|
continue; |
|
|
|
else if (unit && opt->type==FF_OPT_TYPE_CONST && strcmp(unit, opt->unit)) |
|
|
|
continue; |
|
|
|
else if (unit && opt->type == FF_OPT_TYPE_CONST) |
|
|
|
av_log(av_log_obj, AV_LOG_INFO, " %-15s ", opt->name); |
|
|
|
else |
|
|
|
av_log(av_log_obj, AV_LOG_INFO, "-%-17s ", opt->name); |
|
|
|
|
|
|
|
switch( opt->type ) |
|
|
|
{ |
|
|
@@ -309,7 +318,20 @@ int av_opt_show(void *obj, void *av_log_obj){ |
|
|
|
if(opt->help) |
|
|
|
av_log(av_log_obj, AV_LOG_INFO, " %s", opt->help); |
|
|
|
av_log(av_log_obj, AV_LOG_INFO, "\n"); |
|
|
|
if (opt->unit && opt->type != FF_OPT_TYPE_CONST) { |
|
|
|
opt_list(obj, av_log_obj, opt->unit); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
int av_opt_show(void *obj, void *av_log_obj){ |
|
|
|
if(!obj) |
|
|
|
return -1; |
|
|
|
|
|
|
|
av_log(av_log_obj, AV_LOG_INFO, "%s AVOptions:\n", (*(AVClass**)obj)->class_name); |
|
|
|
|
|
|
|
opt_list(obj, av_log_obj, NULL); |
|
|
|
|
|
|
|
return 0; |
|
|
|
} |
|
|
|
|
|
|
|