[FFmpeg-devel] [PATCH] examples/vaapi_enc: Add a VAAPI encoding example.

Moritz Barsnick barsnick at gmx.net
Sun Jul 30 13:45:51 EEST 2017


On Fri, Jul 28, 2017 at 14:01:37 +0800, Jun Zhao wrote:

It doesn't really matter much functionally, but I consider it good
style to report errors properly, especially in an example which will be
used by others:

> +    fin = fopen(input_file, "r");
> +    fout = fopen(output_file, "w+b");
> +    if (!fin || !fout) {
> +        fprintf(stderr, "Fail to open input or output file.\n");

Here, one would evaluate errno on each fopen(), e.g. with perror() or
whatever ffmpeg's equivalent is.

> +    ret = av_hwdevice_ctx_create(&hw_device_ctx, AV_HWDEVICE_TYPE_VAAPI,
> +                                 NULL, NULL, 0);
> +    if (ret < 0) {
> +        fprintf(stderr, "Failed to create a VAAPI device.\n");

The AVERROR return code should be reported to the user, e.g. by the use
of av_err2str(ret) (see other examples).

> +    if (!(codec = avcodec_find_encoder_by_name(enc_name))) {
> +        fprintf(stderr, "Could not find encoder.\n");

> +    if ((ret = init_filter(filter_ctx, args, hw_device_ctx)) < 0) {
> +        fprintf(stderr, "Failed to initialize the filtering context.\n");

> +    if ((ret = avcodec_open2(avctx, codec, NULL)) < 0)
> +        fprintf(stderr, "Cannot open video encoder codec.\n");

> +        ret = av_buffersrc_add_frame_flags(filter_ctx->buffersrc_ctx,
> +                                           sw_frame, 0);
> +        if (ret < 0) {
> +            fprintf(stderr, "Error while feeding the filtergraph.\n");

Probably the same for all the above.

Cheers,
Moritz


More information about the ffmpeg-devel mailing list