33 #ifndef FFTOOLS_CMDUTILS_H 34 #define FFTOOLS_CMDUTILS_H 39 #include "libavcodec/avcodec.h" 40 #include "libavfilter/avfilter.h" 41 #include "libavformat/avformat.h" 42 #include "libswscale/swscale.h" 100 int opt_cpuflags(
void *optctx,
const char *opt,
const char *arg);
106 int opt_default(
void *optctx,
const char *opt,
const char *arg);
111 int opt_loglevel(
void *optctx,
const char *opt,
const char *arg);
115 int opt_max_alloc(
void *optctx,
const char *opt,
const char *arg);
122 int opt_timelimit(
void *optctx,
const char *opt,
const char *arg);
138 double min,
double max);
172 #define HAS_ARG 0x0001 173 #define OPT_BOOL 0x0002 174 #define OPT_EXPERT 0x0004 175 #define OPT_STRING 0x0008 176 #define OPT_VIDEO 0x0010 177 #define OPT_AUDIO 0x0020 178 #define OPT_INT 0x0080 179 #define OPT_FLOAT 0x0100 180 #define OPT_SUBTITLE 0x0200 181 #define OPT_INT64 0x0400 182 #define OPT_EXIT 0x0800 183 #define OPT_DATA 0x1000 184 #define OPT_PERFILE 0x2000 186 #define OPT_OFFSET 0x4000 187 #define OPT_SPEC 0x8000 190 #define OPT_TIME 0x10000 191 #define OPT_DOUBLE 0x20000 192 #define OPT_INPUT 0x40000 193 #define OPT_OUTPUT 0x80000 213 int rej_flags,
int alt_flags);
216 #define CMDUTILS_COMMON_OPTIONS_AVDEVICE \ 217 { "sources" , OPT_EXIT | HAS_ARG, { .func_arg = show_sources }, \ 218 "list sources of the input device", "device" }, \ 219 { "sinks" , OPT_EXIT | HAS_ARG, { .func_arg = show_sinks }, \ 220 "list sinks of the output device", "device" }, \ 223 #define CMDUTILS_COMMON_OPTIONS_AVDEVICE 226 #define CMDUTILS_COMMON_OPTIONS \ 227 { "L", OPT_EXIT, { .func_arg = show_license }, "show license" }, \ 228 { "h", OPT_EXIT, { .func_arg = show_help }, "show help", "topic" }, \ 229 { "?", OPT_EXIT, { .func_arg = show_help }, "show help", "topic" }, \ 230 { "help", OPT_EXIT, { .func_arg = show_help }, "show help", "topic" }, \ 231 { "-help", OPT_EXIT, { .func_arg = show_help }, "show help", "topic" }, \ 232 { "version", OPT_EXIT, { .func_arg = show_version }, "show version" }, \ 233 { "buildconf", OPT_EXIT, { .func_arg = show_buildconf }, "show build configuration" }, \ 234 { "formats", OPT_EXIT, { .func_arg = show_formats }, "show available formats" }, \ 235 { "muxers", OPT_EXIT, { .func_arg = show_muxers }, "show available muxers" }, \ 236 { "demuxers", OPT_EXIT, { .func_arg = show_demuxers }, "show available demuxers" }, \ 237 { "devices", OPT_EXIT, { .func_arg = show_devices }, "show available devices" }, \ 238 { "codecs", OPT_EXIT, { .func_arg = show_codecs }, "show available codecs" }, \ 239 { "decoders", OPT_EXIT, { .func_arg = show_decoders }, "show available decoders" }, \ 240 { "encoders", OPT_EXIT, { .func_arg = show_encoders }, "show available encoders" }, \ 241 { "bsfs", OPT_EXIT, { .func_arg = show_bsfs }, "show available bit stream filters" }, \ 242 { "protocols", OPT_EXIT, { .func_arg = show_protocols }, "show available protocols" }, \ 243 { "filters", OPT_EXIT, { .func_arg = show_filters }, "show available filters" }, \ 244 { "pix_fmts", OPT_EXIT, { .func_arg = show_pix_fmts }, "show available pixel formats" }, \ 245 { "layouts", OPT_EXIT, { .func_arg = show_layouts }, "show standard channel layouts" }, \ 246 { "sample_fmts", OPT_EXIT, { .func_arg = show_sample_fmts }, "show available audio sample formats" }, \ 247 { "colors", OPT_EXIT, { .func_arg = show_colors }, "show available color names" }, \ 248 { "loglevel", HAS_ARG, { .func_arg = opt_loglevel }, "set logging level", "loglevel" }, \ 249 { "v", HAS_ARG, { .func_arg = opt_loglevel }, "set logging level", "loglevel" }, \ 250 { "report", 0, { (void*)opt_report }, "generate a report" }, \ 251 { "max_alloc", HAS_ARG, { .func_arg = opt_max_alloc }, "set maximum size of a single allocated block", "bytes" }, \ 252 { "cpuflags", HAS_ARG | OPT_EXPERT, { .func_arg = opt_cpuflags }, "force specific cpu flags", "flags" }, \ 253 { "hide_banner", OPT_BOOL | OPT_EXPERT, {&hide_banner}, "do not show program banner", "hide_banner" }, \ 254 CMDUTILS_COMMON_OPTIONS_AVDEVICE \ 271 int show_help(
void *optctx,
const char *opt,
const char *arg);
286 void (* parse_arg_function)(
void *optctx,
const char*));
293 int parse_option(
void *optctx,
const char *opt,
const char *arg,
400 const char *optname);
428 AVFormatContext *s, AVStream *st, AVCodec *
codec);
468 int show_version(
void *optctx,
const char *opt,
const char *arg);
475 int show_buildconf(
void *optctx,
const char *opt,
const char *arg);
482 int show_license(
void *optctx,
const char *opt,
const char *arg);
489 int show_formats(
void *optctx,
const char *opt,
const char *arg);
496 int show_muxers(
void *optctx,
const char *opt,
const char *arg);
503 int show_demuxers(
void *optctx,
const char *opt,
const char *arg);
510 int show_devices(
void *optctx,
const char *opt,
const char *arg);
517 int show_sinks(
void *optctx,
const char *opt,
const char *arg);
523 int show_sources(
void *optctx,
const char *opt,
const char *arg);
531 int show_codecs(
void *optctx,
const char *opt,
const char *arg);
537 int show_decoders(
void *optctx,
const char *opt,
const char *arg);
543 int show_encoders(
void *optctx,
const char *opt,
const char *arg);
550 int show_filters(
void *optctx,
const char *opt,
const char *arg);
557 int show_bsfs(
void *optctx,
const char *opt,
const char *arg);
564 int show_protocols(
void *optctx,
const char *opt,
const char *arg);
571 int show_pix_fmts(
void *optctx,
const char *opt,
const char *arg);
578 int show_layouts(
void *optctx,
const char *opt,
const char *arg);
590 int show_colors(
void *optctx,
const char *opt,
const char *arg);
617 const char *preset_name,
int is_path,
const char *codec_name);
629 void *
grow_array(
void *array,
int elem_size,
int *
size,
int new_size);
631 #define media_type_string av_get_media_type_string 633 #define GROW_ARRAY(array, nb_elems)\ 634 array = grow_array(array, sizeof(*array), &nb_elems, nb_elems + 1) 636 #define GET_PIX_FMT_NAME(pix_fmt)\ 637 const char *name = av_get_pix_fmt_name(pix_fmt); 639 #define GET_CODEC_NAME(id)\ 640 const char *name = avcodec_descriptor_get(id)->name; 642 #define GET_SAMPLE_FMT_NAME(sample_fmt)\ 643 const char *name = av_get_sample_fmt_name(sample_fmt) 645 #define GET_SAMPLE_RATE_NAME(rate)\ 647 snprintf(name, sizeof(name), "%d", rate); 649 #define GET_CH_LAYOUT_NAME(ch_layout)\ 651 snprintf(name, sizeof(name), "0x%"PRIx64, ch_layout); 653 #define GET_CH_LAYOUT_DESC(ch_layout)\ 655 av_get_channel_layout_string(name, sizeof(name), 0, ch_layout);
const OptionGroupDef * group_def
AVDictionary * format_opts
AVDictionary * resample_opts
const OptionGroupDef * group_def
AVDictionary * codec_opts
int(* func_arg)(void *, const char *, const char *)