[FFmpeg-devel] [PATCH] lavc/encode: drop EncodeSimpleContext

James Almer jamrial at gmail.com
Mon Apr 11 19:32:30 EEST 2022


On 4/11/2022 5:39 AM, Anton Khirnov wrote:
> It has only a single member.
> ---
>   libavcodec/avcodec.c  |  4 ++--
>   libavcodec/encode.c   |  7 +++----
>   libavcodec/internal.h | 12 +++++++-----
>   3 files changed, 12 insertions(+), 11 deletions(-)
> 
> diff --git a/libavcodec/avcodec.c b/libavcodec/avcodec.c
> index c7daa385e7..e0f38ac42a 100644
> --- a/libavcodec/avcodec.c
> +++ b/libavcodec/avcodec.c
> @@ -432,7 +432,7 @@ void avcodec_flush_buffers(AVCodecContext *avctx)
>       while (av_fifo_read(avci->pkt_props, avci->last_pkt_props, 1) >= 0)
>           av_packet_unref(avci->last_pkt_props);
>   
> -    av_frame_unref(avci->es.in_frame);
> +    av_frame_unref(avci->in_frame);
>       av_packet_unref(avci->in_pkt);
>   
>       if (HAVE_THREADS && avctx->active_thread_type & FF_THREAD_FRAME)
> @@ -498,7 +498,7 @@ av_cold int avcodec_close(AVCodecContext *avctx)
>           av_packet_free(&avci->last_pkt_props);
>   
>           av_packet_free(&avci->in_pkt);
> -        av_frame_free(&avci->es.in_frame);
> +        av_frame_free(&avci->in_frame);
>   
>           av_buffer_unref(&avci->pool);
>   
> diff --git a/libavcodec/encode.c b/libavcodec/encode.c
> index 837ffaa40d..8b0d4443cd 100644
> --- a/libavcodec/encode.c
> +++ b/libavcodec/encode.c
> @@ -175,8 +175,7 @@ int ff_encode_get_frame(AVCodecContext *avctx, AVFrame *frame)
>   static int encode_simple_internal(AVCodecContext *avctx, AVPacket *avpkt)
>   {
>       AVCodecInternal   *avci = avctx->internal;
> -    EncodeSimpleContext *es = &avci->es;
> -    AVFrame          *frame = es->in_frame;
> +    AVFrame          *frame = avci->in_frame;
>       const FFCodec *const codec = ffcodec(avctx->codec);
>       int got_packet;
>       int ret;
> @@ -565,8 +564,8 @@ FF_ENABLE_DEPRECATION_WARNINGS
>           avctx->internal->intra_only_flag = AV_PKT_FLAG_KEY;
>   
>       if (ffcodec(avctx->codec)->encode2) {
> -        avci->es.in_frame = av_frame_alloc();
> -        if (!avci->es.in_frame)
> +        avci->in_frame = av_frame_alloc();
> +        if (!avci->in_frame)
>               return AVERROR(ENOMEM);
>       }
>   
> diff --git a/libavcodec/internal.h b/libavcodec/internal.h
> index f9d08fcb60..2fa56d3a59 100644
> --- a/libavcodec/internal.h
> +++ b/libavcodec/internal.h
> @@ -47,10 +47,6 @@
>   #   define STRIDE_ALIGN 8
>   #endif
>   
> -typedef struct EncodeSimpleContext {
> -    AVFrame *in_frame;
> -} EncodeSimpleContext;
> -
>   typedef struct AVCodecInternal {
>       /**
>        * When using frame-threaded decoding, this field is set for the first
> @@ -101,7 +97,13 @@ typedef struct AVCodecInternal {
>   
>       void *frame_thread_encoder;
>   
> -    EncodeSimpleContext es;
> +    /**
> +     * The input frame is stored here for encoders implementing the simple
> +     * encode API.
> +     *
> +     * Not allocated in other cases.
> +     */
> +    AVFrame *in_frame;
>   
>       /**
>        * If this is set, then FFCodec->close (if existing) needs to be called

LGTM.


More information about the ffmpeg-devel mailing list