[FFmpeg-devel] [PATCH] avcodec/amfenc: adapt to the new internal encode API

Fu, Linjie linjie.fu at intel.com
Sat Apr 4 19:59:26 EEST 2020


> From: ffmpeg-devel <ffmpeg-devel-bounces at ffmpeg.org> On Behalf Of
> James Almer
> Sent: Saturday, April 4, 2020 06:19
> To: ffmpeg-devel at ffmpeg.org
> Subject: [FFmpeg-devel] [PATCH] avcodec/amfenc: adapt to the new
> internal encode API
> 
> Signed-off-by: James Almer <jamrial at gmail.com>
> ---
>  libavcodec/amfenc.c      | 45 ++++++++++++++++++++--------------------
>  libavcodec/amfenc.h      |  2 ++
>  libavcodec/amfenc_h264.c |  1 -
>  libavcodec/amfenc_hevc.c |  1 -
>  4 files changed, 25 insertions(+), 24 deletions(-)
> 
> diff --git a/libavcodec/amfenc.c b/libavcodec/amfenc.c
> index 876fddd2b6..d318c21978 100644
> --- a/libavcodec/amfenc.c
> +++ b/libavcodec/amfenc.c
> @@ -33,6 +33,7 @@
>  #include "libavutil/time.h"
> 
>  #include "amfenc.h"
> +#include "encode.h"
>  #include "internal.h"
> 
>  #if CONFIG_D3D11VA
> @@ -112,6 +113,10 @@ static int amf_load_library(AVCodecContext *avctx)
>      AMFQueryVersion_Fn version_fun;
>      AMF_RESULT         res;
> 
> +    ctx->frame = av_frame_alloc();
> +    if (!ctx->frame) {
> +        return AVERROR(ENOMEM);
> +    }
>      ctx->delayed_frame = av_frame_alloc();
>      if (!ctx->delayed_frame) {
>          return AVERROR(ENOMEM);
> @@ -401,6 +406,7 @@ int av_cold ff_amf_encode_close(AVCodecContext
> *avctx)
>      ctx->factory = NULL;
>      ctx->version = 0;
>      ctx->delayed_drain = 0;
> +    av_frame_free(&ctx->frame);
>      av_frame_free(&ctx->delayed_frame);
>      av_fifo_freep(&ctx->timestamp_list);
> 
> @@ -588,17 +594,27 @@ static void
> amf_release_buffer_with_frame_ref(AMFBuffer
> *frame_ref_storage_buffe
>      frame_ref_storage_buffer->pVtbl->Release(frame_ref_storage_buffer);
>  }
> 
> -int ff_amf_send_frame(AVCodecContext *avctx, const AVFrame *frame)
> +int ff_amf_receive_packet(AVCodecContext *avctx, AVPacket *avpkt)
Would be better to remove the declaration in amfenc.h as well since the function
has been removed already?

- Linjie



More information about the ffmpeg-devel mailing list