[FFmpeg-devel] [PATCH] ffmpeg_opt: Add -hwaccels option that lists all supported hwaccels
Ganesh Ajjanagadde
gajjanag at mit.edu
Wed Aug 26 02:19:59 CEST 2015
On Tue, Aug 25, 2015 at 7:47 PM, Timothy Gu <timothygu99 at gmail.com> wrote:
> ---
> doc/ffmpeg.texi | 4 ++++
> ffmpeg_opt.c | 14 ++++++++++++++
> 2 files changed, 18 insertions(+)
>
> diff --git a/doc/ffmpeg.texi b/doc/ffmpeg.texi
> index 51a4ec5..e1d8562 100644
> --- a/doc/ffmpeg.texi
> +++ b/doc/ffmpeg.texi
> @@ -698,6 +698,10 @@ is not specified, the value of the @var{DISPLAY} environment variable is used
> For DXVA2, this option should contain the number of the display adapter to use.
> If this option is not specified, the default adapter is used.
> @end table
> +
> + at item -hwaccels
> +List all hardware acceleration methods supported in this build of avconv.
> +
> @end table
>
> @section Audio Options
> diff --git a/ffmpeg_opt.c b/ffmpeg_opt.c
> index a369224..b8b9022 100644
> --- a/ffmpeg_opt.c
> +++ b/ffmpeg_opt.c
> @@ -205,6 +205,18 @@ static int opt_video_standard(void *optctx, const char *opt, const char *arg)
> return opt_default(optctx, "standard", arg);
> }
>
> +static int show_hwaccels(void *optctx, const char *opt, const char *arg)
> +{
> + int i;
> +
> + printf("Hardware acceleration methods:\n");
> + for (i = 0; i < FF_ARRAY_ELEMS(hwaccels) - 1; i++) {
> + printf("%s\n", hwaccels[i].name);
> + }
> + printf("\n");
> + return 0;
> +}
For consistency, prefix with an opt_?
Also, you always return a 0, making return value useless.
I understand this is done to match the func_arg signature.
Maybe you could check the return value of printf?
I do note that almost none of ffmpeg is that meticulous about these things,
but check out:
https://www.irill.org/events/ghm-gnu-hackers-meeting/videos/jim-meyering-goodbye-world-the-perils-of-relying-on-output-streams-in-c
> +
> static int opt_audio_codec(void *optctx, const char *opt, const char *arg)
> {
> OptionsContext *o = optctx;
> @@ -3241,6 +3253,8 @@ const OptionDef options[] = {
> #if CONFIG_VDA || CONFIG_VIDEOTOOLBOX
> { "videotoolbox_pixfmt", HAS_ARG | OPT_STRING | OPT_EXPERT, { &videotoolbox_pixfmt}, "" },
> #endif
> + { "hwaccels", OPT_EXIT, { .func_arg = show_hwaccels },
> + "show available HW acceleration methods" },
> { "autorotate", HAS_ARG | OPT_BOOL | OPT_SPEC |
> OPT_EXPERT | OPT_INPUT, { .off = OFFSET(autorotate) },
> "automatically insert correct rotate filters" },
> --
> 1.9.1
>
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
More information about the ffmpeg-devel
mailing list