summaryrefslogtreecommitdiff
path: root/libavcodec/libx264.c
diff options
context:
space:
mode:
Diffstat (limited to 'libavcodec/libx264.c')
-rw-r--r--libavcodec/libx264.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/libavcodec/libx264.c b/libavcodec/libx264.c
index ace750cc54..a3ffe228c1 100644
--- a/libavcodec/libx264.c
+++ b/libavcodec/libx264.c
@@ -268,8 +268,15 @@ static int X264_frame(AVCodecContext *ctx, AVPacket *pkt, const AVFrame *frame,
}
pkt->flags |= AV_PKT_FLAG_KEY*pic_out.b_keyframe;
- if (ret)
+ if (ret) {
+ uint8_t *sd = av_packet_new_side_data(pkt, AV_PKT_DATA_QUALITY_FACTOR,
+ sizeof(int));
+ if (!sd)
+ return AVERROR(ENOMEM);
+ *(int *)sd = (pic_out.i_qpplus1 - 1) * FF_QP2LAMBDA;
+
ctx->coded_frame->quality = (pic_out.i_qpplus1 - 1) * FF_QP2LAMBDA;
+ }
*got_packet = ret;
return 0;