[FFmpeg-devel] [PATCH] Add encoder stats to the NVENC codec.

Lucas Cooper bobobo at google.com
Mon Mar 7 18:44:22 CET 2016


Ping.

On 2 March 2016 at 15:21, Lucas Cooper <bobobo at google.com> wrote:

> ---
>  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;
> +
>      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);
> --
> 2.7.0.rc3.207.g0ac5344
>
>


More information about the ffmpeg-devel mailing list