Add a quality factor packet side data
[ffmpeg.git] / libavcodec / dnxhdenc.c
index 5c45fe0b3a2b58fc676b00b778fd44a7eecd03a7..bccf5c8a4891e206db39df04d80dc4bd767d1eb4 100644 (file)
@@ -1036,7 +1036,7 @@ static int dnxhd_encode_picture(AVCodecContext *avctx, AVPacket *pkt,
     DNXHDEncContext *ctx = avctx->priv_data;
     int first_field = 1;
     int offset, i, ret;
-    uint8_t *buf;
+    uint8_t *buf, *sd;
 
     if ((ret = ff_alloc_packet(pkt, ctx->cid_table->frame_size)) < 0) {
         av_log(avctx, AV_LOG_ERROR,
@@ -1092,6 +1092,11 @@ encode_coding_unit:
 
     avctx->coded_frame->quality = ctx->qscale * FF_QP2LAMBDA;
 
+    sd = av_packet_new_side_data(pkt, AV_PKT_DATA_QUALITY_FACTOR, sizeof(int));
+    if (!sd)
+        return AVERROR(ENOMEM);
+    *(int *)sd = ctx->qscale * FF_QP2LAMBDA;
+
     pkt->flags |= AV_PKT_FLAG_KEY;
     *got_packet = 1;
     return 0;