[FFmpeg-devel] [PATCH 2/8] lavc/libvpxenc: drop frame_number

James Zern jzern at google.com
Tue Feb 28 22:50:08 EET 2023


On Tue, Feb 28, 2023 at 4:02 AM Anton Khirnov <anton at khirnov.net> wrote:
>
> It is not used, except to check whether the packet is valid before
> writing HDR metadata to the packet in storeframe(). However, that check
> serves no purpose, as the encoded packet is already treated as valid
> higher up in this function.

lgtm. I agree, since the HDR path is VP9 only, there's no possibility
of having a separate alt-ref packet. The libaom wrapper could probably
use a similar update.

> ---
>  libavcodec/libvpxenc.c | 9 +--------
>  1 file changed, 1 insertion(+), 8 deletions(-)
>
> diff --git a/libavcodec/libvpxenc.c b/libavcodec/libvpxenc.c
> index 339d4d8146..eaa4ad8f25 100644
> --- a/libavcodec/libvpxenc.c
> +++ b/libavcodec/libvpxenc.c
> @@ -63,7 +63,6 @@ struct FrameListData {
>      uint32_t flags;                  /**< flags for this frame */
>      uint64_t sse[4];
>      int have_sse;                    /**< true if we have pending sse[] */
> -    uint64_t frame_number;
>      struct FrameListData *next;
>  };
>
> @@ -84,7 +83,6 @@ typedef struct VPxEncoderContext {
>      int deadline; //i.e., RT/GOOD/BEST
>      uint64_t sse[4];
>      int have_sse; /**< true if we have pending sse[] */
> -    uint64_t frame_number;
>      struct FrameListData *coded_frame_list;
>      struct FrameListData *alpha_coded_frame_list;
>
> @@ -1220,9 +1218,8 @@ static inline void cx_pktcpy(struct FrameListData *dst,
>      dst->sz       = src->data.frame.sz;
>      dst->buf      = src->data.frame.buf;
>      dst->have_sse = 0;
> -    /* For alt-ref frame, don't store PSNR or increment frame_number */
> +    /* For alt-ref frame, don't store PSNR */
>      if (!(dst->flags & VPX_FRAME_IS_INVISIBLE)) {
> -        dst->frame_number = ++ctx->frame_number;
>          dst->have_sse = ctx->have_sse;
>          if (ctx->have_sse) {
>              /* associate last-seen SSE to the frame. */
> @@ -1232,8 +1229,6 @@ static inline void cx_pktcpy(struct FrameListData *dst,
>              memcpy(dst->sse, ctx->sse, sizeof(dst->sse));
>              ctx->have_sse = 0;
>          }
> -    } else {
> -        dst->frame_number = -1;   /* sanity marker */
>      }
>  }
>
> @@ -1289,13 +1284,11 @@ static int storeframe(AVCodecContext *avctx, struct FrameListData *cx_frame,
>          AV_WB64(side_data, 1);
>          memcpy(side_data + 8, alpha_cx_frame->buf, alpha_cx_frame->sz);
>      }
> -    if (cx_frame->frame_number != -1) {
>          if (ctx->hdr10_plus_fifo) {
>              int err = copy_hdr10_plus_to_pkt(ctx->hdr10_plus_fifo, pkt);
>              if (err < 0)
>                  return err;
>          }
> -    }
>
>      return pkt->size;
>  }
> --
> 2.39.1
>
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request at ffmpeg.org with subject "unsubscribe".


More information about the ffmpeg-devel mailing list