cmdutils: add -layouts option.

Extract of the output:

| Individual channels:
| NAME        DESCRIPTION
| FL          front left
| FR          front right
| <snip>
| SDR         surround direct right
|
| Standard channel layouts:
| NAME        DECOMPOSITION
| mono        FC
| stereo      FL+FR
| <snip>
| octagonal   FL+FR+FC+BL+BR+BC+SL+SR
| downmix     DL+DR
pull/28/head
Nicolas George 13 years ago
parent 61e262f6d7
commit 786dadc014
  1. 29
      cmdutils.c
  2. 7
      cmdutils.h
  3. 1
      cmdutils_common_opts.h
  4. 3
      doc/avtools-common-opts.texi

@ -1087,6 +1087,35 @@ int show_pix_fmts(const char *opt, const char *arg)
return 0; return 0;
} }
int show_layouts(const char *opt, const char *arg)
{
int i = 0;
uint64_t layout, j;
const char *name, *descr;
printf("Individual channels:\n"
"NAME DESCRIPTION\n");
for (i = 0; i < 63; i++) {
name = av_get_channel_name((uint64_t)1 << i);
if (!name)
continue;
descr = av_get_channel_description((uint64_t)1 << i);
printf("%-12s%s\n", name, descr);
}
printf("\nStandard channel layouts:\n"
"NAME DECOMPOSITION\n");
for (i = 0; !av_get_standard_channel_layout(i, &layout, &name); i++) {
if (name) {
printf("%-12s", name);
for (j = 1; j; j <<= 1)
if ((layout & j))
printf("%s%s", (layout & (j - 1)) ? "+" : "", av_get_channel_name(j));
printf("\n");
}
}
return 0;
}
int show_sample_fmts(const char *opt, const char *arg) int show_sample_fmts(const char *opt, const char *arg)
{ {
int i; int i;

@ -359,6 +359,13 @@ int show_protocols(const char *opt, const char *arg);
*/ */
int show_pix_fmts(const char *opt, const char *arg); int show_pix_fmts(const char *opt, const char *arg);
/**
* Print a listing containing all the standard channel layouts supported by
* the program.
* This option processing function does not utilize the arguments.
*/
int show_layouts(const char *opt, const char *arg);
/** /**
* Print a listing containing all the sample formats supported by the * Print a listing containing all the sample formats supported by the
* program. * program.

@ -12,6 +12,7 @@
{ "protocols" , OPT_EXIT, {.func_arg = show_protocols}, "show available protocols" }, { "protocols" , OPT_EXIT, {.func_arg = show_protocols}, "show available protocols" },
{ "filters" , OPT_EXIT, {.func_arg = show_filters }, "show available filters" }, { "filters" , OPT_EXIT, {.func_arg = show_filters }, "show available filters" },
{ "pix_fmts" , OPT_EXIT, {.func_arg = show_pix_fmts }, "show available pixel formats" }, { "pix_fmts" , OPT_EXIT, {.func_arg = show_pix_fmts }, "show available pixel formats" },
{ "layouts" , OPT_EXIT, {.func_arg = show_layouts }, "show standard channel layouts" },
{ "sample_fmts", OPT_EXIT, {.func_arg = show_sample_fmts }, "show available audio sample formats" }, { "sample_fmts", OPT_EXIT, {.func_arg = show_sample_fmts }, "show available audio sample formats" },
{ "loglevel" , HAS_ARG, {.func_arg = opt_loglevel}, "set libav* logging level", "loglevel" }, { "loglevel" , HAS_ARG, {.func_arg = opt_loglevel}, "set libav* logging level", "loglevel" },
{ "v", HAS_ARG, {.func_arg = opt_loglevel}, "set libav* logging level", "loglevel" }, { "v", HAS_ARG, {.func_arg = opt_loglevel}, "set libav* logging level", "loglevel" },

@ -119,6 +119,9 @@ Show available pixel formats.
@item -sample_fmts @item -sample_fmts
Show available sample formats. Show available sample formats.
@item -layouts
Show channel names and standard channel layouts.
@item -loglevel @var{loglevel} | -v @var{loglevel} @item -loglevel @var{loglevel} | -v @var{loglevel}
Set the logging level used by the library. Set the logging level used by the library.
@var{loglevel} is a number or a string containing one of the following values: @var{loglevel} is a number or a string containing one of the following values:

Loading…
Cancel
Save