On 4/5/2022 9:15 AM, Danil Chapovalov wrote:
---
  libavcodec/libvpxenc.c | 9 ++++++++-
  1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/libavcodec/libvpxenc.c b/libavcodec/libvpxenc.c
index dff1d06b0e..0705863450 100644
--- a/libavcodec/libvpxenc.c
+++ b/libavcodec/libvpxenc.c
@@ -1250,6 +1250,8 @@ static int storeframe(AVCodecContext *avctx, struct 
FrameListData *cx_frame,
      int ret = ff_get_encode_buffer(avctx, pkt, cx_frame->sz, 0);
      uint8_t *side_data;
      int pict_type;
+    int quality;
+    VPxContext *ctx = avctx->priv_data;
if (ret < 0)
          return ret;
@@ -1264,7 +1266,12 @@ static int storeframe(AVCodecContext *avctx, struct 
FrameListData *cx_frame,
          pict_type = AV_PICTURE_TYPE_P;
      }
- ff_side_data_set_encoder_stats(pkt, 0, cx_frame->sse + 1,
+    ret = vpx_codec_control(&ctx->encoder, VP8E_GET_LAST_QUANTIZER_64, 
&quality);
+    if (ret != VPX_CODEC_OK) {

Is the last argument guaranteed to be untouched when the return value of vpx_codec_control() is not VPX_CODEC_OK? If so, you can initialize quality to 0 above, and remove this part.

+        quality = 0;
+    }
+
+    ff_side_data_set_encoder_stats(pkt, quality * FF_QP2LAMBDA, cx_frame->sse 
+ 1,
                                     cx_frame->have_sse ? 3 : 0, pict_type);
if (cx_frame->have_sse) {
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".

Reply via email to