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+DRtags/n1.0
| @@ -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: | ||||