[FFmpeg-devel] [PATCH] Add encoder stats to the NVENC codec.
Timo Rothenpieler
timo at rothenpieler.org
Mon Mar 7 19:37:21 CET 2016
> ---
> libavcodec/nvenc.c | 18 +++++++++++-------
> 1 file changed, 11 insertions(+), 7 deletions(-)
>
> diff --git a/libavcodec/nvenc.c b/libavcodec/nvenc.c
> index a3b02fa..67232c7 100644
> --- a/libavcodec/nvenc.c
> +++ b/libavcodec/nvenc.c
> @@ -1208,31 +1208,35 @@ static int process_output_surface(AVCodecContext *avctx, AVPacket *pkt, NvencOut
> if (nv_status != NV_ENC_SUCCESS)
> av_log(avctx, AV_LOG_ERROR, "Failed unlocking bitstream buffer, expect the gates of mordor to open\n");
>
> + enum AVPictureType pict_type;
> +
Mixed code and declaration
> switch (lock_params.pictureType) {
> case NV_ENC_PIC_TYPE_IDR:
> pkt->flags |= AV_PKT_FLAG_KEY;
> -#if FF_API_CODED_FRAME
> -FF_DISABLE_DEPRECATION_WARNINGS
> case NV_ENC_PIC_TYPE_I:
> - avctx->coded_frame->pict_type = AV_PICTURE_TYPE_I;
> + pict_type = AV_PICTURE_TYPE_I;
> break;
> case NV_ENC_PIC_TYPE_P:
> - avctx->coded_frame->pict_type = AV_PICTURE_TYPE_P;
> + pict_type = AV_PICTURE_TYPE_P;
> break;
> case NV_ENC_PIC_TYPE_B:
> - avctx->coded_frame->pict_type = AV_PICTURE_TYPE_B;
> + pict_type = AV_PICTURE_TYPE_B;
> break;
> case NV_ENC_PIC_TYPE_BI:
> - avctx->coded_frame->pict_type = AV_PICTURE_TYPE_BI;
> + pict_type = AV_PICTURE_TYPE_BI;
> break;
> default:
> av_log(avctx, AV_LOG_ERROR, "Unknown picture type encountered, expect the output to be broken.\n");
> av_log(avctx, AV_LOG_ERROR, "Please report this error and include as much information on how to reproduce it as possible.\n");
> res = AVERROR_EXTERNAL;
> goto error;
> + }
> +#if FF_API_CODED_FRAME
> +FF_DISABLE_DEPRECATION_WARNINGS
> + avctx->coded_frame->pict_type = pict_type;
> FF_ENABLE_DEPRECATION_WARNINGS
> #endif
> - }
> + ff_side_data_set_encoder_stats(pkt, (lock_params.frameAvgQP - 1) * FF_QP2LAMBDA, NULL, 0, pict_type);
>
> pkt->pts = lock_params.outputTimeStamp;
> pkt->dts = timestamp_queue_dequeue(&ctx->timestamp_list);
>
Fine otherwise, or does anything still depend on the stuff in
coded_frame being set somewhat correctly, so that this would break it?
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: OpenPGP digital signature
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20160307/76a5ea4d/attachment.sig>
More information about the ffmpeg-devel
mailing list