[FFmpeg-devel] [PATCH] lavc/nvenc: enable nvenc encoder instance reuse (v2)

Pavel Koshevoy pkoshevoy at gmail.com
Wed Jun 13 16:45:30 EEST 2018


On Thu, Jun 7, 2018 at 9:08 AM Pavel Koshevoy <pkoshevoy at gmail.com> wrote:
>
> ---
>  libavcodec/nvenc.c | 12 ++++++++++--
>  1 file changed, 10 insertions(+), 2 deletions(-)
>
> diff --git a/libavcodec/nvenc.c b/libavcodec/nvenc.c
> index b4186c0bec..cfa7268a5e 100644
> --- a/libavcodec/nvenc.c
> +++ b/libavcodec/nvenc.c
> @@ -2051,8 +2051,16 @@ int ff_nvenc_send_frame(AVCodecContext *avctx, const AVFrame *frame)
>      if ((!ctx->cu_context && !ctx->d3d11_device) || !ctx->nvencoder)
>          return AVERROR(EINVAL);
>
> -    if (ctx->encoder_flushing)
> -        return AVERROR_EOF;
> +    if (ctx->encoder_flushing) {
> +        if (avctx->internal->draining)
> +            return AVERROR_EOF;
> +
> +        ctx->encoder_flushing = 0;
> +        ctx->first_packet_output = 0;
> +        ctx->initial_pts[0] = AV_NOPTS_VALUE;
> +        ctx->initial_pts[1] = AV_NOPTS_VALUE;
> +        av_fifo_reset(ctx->timestamp_list);
> +    }
>
>      if (frame) {
>          in_surf = get_free_frame(ctx);
> --
> 2.16.4
>


Can this be applied?

Thank you,
    Pavel


More information about the ffmpeg-devel mailing list