FFmpeg
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Functions | Variables
nvenc.c File Reference
#include "config.h"
#include "nvenc.h"
#include "libavutil/hwcontext_cuda.h"
#include "libavutil/hwcontext.h"
#include "libavutil/imgutils.h"
#include "libavutil/avassert.h"
#include "libavutil/mem.h"
#include "libavutil/pixdesc.h"
#include "internal.h"

Go to the source code of this file.

Data Structures

struct  GUIDTuple
 

Macros

#define NVENC_CAP   0x30
 
#define IS_CBR(rc)
 
#define IS_10BIT(pix_fmt)
 
#define IS_YUV444(pix_fmt)
 
#define PRESET_ALIAS(alias, name,...)   [PRESET_ ## alias] = { NV_ENC_PRESET_ ## name ## _GUID, __VA_ARGS__ }
 
#define PRESET(name,...)   PRESET_ALIAS(name, name, __VA_ARGS__)
 

Functions

static int nvenc_map_error (NVENCSTATUS err, const char **desc)
 
static int nvenc_print_error (void *log_ctx, NVENCSTATUS err, const char *error_string)
 
static void nvenc_print_driver_requirement (AVCodecContext *avctx, int level)
 
static av_cold int nvenc_load_libraries (AVCodecContext *avctx)
 
static av_cold int nvenc_open_session (AVCodecContext *avctx)
 
static int nvenc_check_codec_support (AVCodecContext *avctx)
 
static int nvenc_check_cap (AVCodecContext *avctx, NV_ENC_CAPS cap)
 
static int nvenc_check_capabilities (AVCodecContext *avctx)
 
static av_cold int nvenc_check_device (AVCodecContext *avctx, int idx)
 
static av_cold int nvenc_setup_device (AVCodecContext *avctx)
 
static void nvenc_map_preset (NvencContext *ctx)
 
static av_cold void set_constqp (AVCodecContext *avctx)
 
static av_cold void set_vbr (AVCodecContext *avctx)
 
static av_cold void set_lossless (AVCodecContext *avctx)
 
static void nvenc_override_rate_control (AVCodecContext *avctx)
 
static av_cold int nvenc_recalc_surfaces (AVCodecContext *avctx)
 
static av_cold void nvenc_setup_rate_control (AVCodecContext *avctx)
 
static av_cold int nvenc_setup_h264_config (AVCodecContext *avctx)
 
static av_cold int nvenc_setup_hevc_config (AVCodecContext *avctx)
 
static av_cold int nvenc_setup_codec_config (AVCodecContext *avctx)
 
static av_cold int nvenc_setup_encoder (AVCodecContext *avctx)
 
static NV_ENC_BUFFER_FORMAT nvenc_map_buffer_format (enum AVPixelFormat pix_fmt)
 
static av_cold int nvenc_alloc_surface (AVCodecContext *avctx, int idx)
 
static av_cold int nvenc_setup_surfaces (AVCodecContext *avctx)
 
static av_cold int nvenc_setup_extradata (AVCodecContext *avctx)
 
av_cold int ff_nvenc_encode_close (AVCodecContext *avctx)
 
av_cold int ff_nvenc_encode_init (AVCodecContext *avctx)
 
static NvencSurfaceget_free_frame (NvencContext *ctx)
 
static int nvenc_copy_frame (AVCodecContext *avctx, NvencSurface *nv_surface, NV_ENC_LOCK_INPUT_BUFFER *lock_buffer_params, const AVFrame *frame)
 
static int nvenc_find_free_reg_resource (AVCodecContext *avctx)
 
static int nvenc_register_frame (AVCodecContext *avctx, const AVFrame *frame)
 
static int nvenc_upload_frame (AVCodecContext *avctx, const AVFrame *frame, NvencSurface *nvenc_frame)
 
static void nvenc_codec_specific_pic_params (AVCodecContext *avctx, NV_ENC_PIC_PARAMS *params)
 
static void timestamp_queue_enqueue (AVFifoBuffer *queue, int64_t timestamp)
 
static int64_t timestamp_queue_dequeue (AVFifoBuffer *queue)
 
static int nvenc_set_timestamp (AVCodecContext *avctx, NV_ENC_LOCK_BITSTREAM *params, AVPacket *pkt)
 
static int process_output_surface (AVCodecContext *avctx, AVPacket *pkt, NvencSurface *tmpoutsurf)
 
static int output_ready (AVCodecContext *avctx, int flush)
 
int ff_nvenc_send_frame (AVCodecContext *avctx, const AVFrame *frame)
 
int ff_nvenc_receive_packet (AVCodecContext *avctx, AVPacket *pkt)
 
int ff_nvenc_encode_frame (AVCodecContext *avctx, AVPacket *pkt, const AVFrame *frame, int *got_packet)
 

Variables

enum AVPixelFormat ff_nvenc_pix_fmts []
 
struct {
   NVENCSTATUS   nverr
 
   int   averr
 
   const char *   desc
 
nvenc_errors []
 

Macro Definition Documentation

#define NVENC_CAP   0x30

Definition at line 34 of file nvenc.c.

Referenced by nvenc_check_device().

#define IS_CBR (   rc)
Value:
Constant bitrate mode.
Definition: nvEncodeAPI.h:259
low-delay CBR, high quality
Definition: nvEncodeAPI.h:260
CBR, high quality (slower)
Definition: nvEncodeAPI.h:261

Definition at line 35 of file nvenc.c.

Referenced by nvenc_setup_h264_config(), and nvenc_setup_hevc_config().

#define IS_10BIT (   pix_fmt)
Value:
static enum AVPixelFormat pix_fmt
#define AV_PIX_FMT_P010
Definition: pixfmt.h:424
#define AV_PIX_FMT_YUV444P16
Definition: pixfmt.h:392

Definition at line 51 of file nvenc.c.

Referenced by nvenc_check_capabilities(), and nvenc_setup_hevc_config().

#define IS_YUV444 (   pix_fmt)
Value:
static enum AVPixelFormat pix_fmt
planar YUV 4:4:4, 24bpp, (1 Cr & Cb sample per 1x1 Y samples)
Definition: pixfmt.h:67
#define AV_PIX_FMT_YUV444P16
Definition: pixfmt.h:392

Definition at line 54 of file nvenc.c.

Referenced by nvenc_check_capabilities(), and nvenc_setup_hevc_config().

#define PRESET_ALIAS (   alias,
  name,
  ... 
)    [PRESET_ ## alias] = { NV_ENC_PRESET_ ## name ## _GUID, __VA_ARGS__ }

Definition at line 515 of file nvenc.c.

Referenced by nvenc_map_preset().

#define PRESET (   name,
  ... 
)    PRESET_ALIAS(name, name, __VA_ARGS__)

Definition at line 518 of file nvenc.c.

Referenced by nvenc_map_preset().

Function Documentation

static int nvenc_map_error ( NVENCSTATUS  err,
const char **  desc 
)
static

Definition at line 90 of file nvenc.c.

Referenced by nvenc_print_error().

static int nvenc_print_error ( void log_ctx,
NVENCSTATUS  err,
const char *  error_string 
)
static
static void nvenc_print_driver_requirement ( AVCodecContext avctx,
int  level 
)
static

Definition at line 115 of file nvenc.c.

Referenced by nvenc_load_libraries().

static av_cold int nvenc_load_libraries ( AVCodecContext avctx)
static

Definition at line 125 of file nvenc.c.

Referenced by ff_nvenc_encode_init().

static av_cold int nvenc_open_session ( AVCodecContext avctx)
static

Definition at line 169 of file nvenc.c.

Referenced by nvenc_check_device(), and nvenc_setup_device().

static int nvenc_check_codec_support ( AVCodecContext avctx)
static

Definition at line 190 of file nvenc.c.

Referenced by nvenc_check_capabilities().

static int nvenc_check_cap ( AVCodecContext avctx,
NV_ENC_CAPS  cap 
)
static

Definition at line 226 of file nvenc.c.

Referenced by nvenc_check_capabilities().

static int nvenc_check_capabilities ( AVCodecContext avctx)
static

Definition at line 243 of file nvenc.c.

Referenced by nvenc_check_device(), and nvenc_setup_device().

static av_cold int nvenc_check_device ( AVCodecContext avctx,
int  idx 
)
static

Definition at line 329 of file nvenc.c.

Referenced by nvenc_setup_device().

static av_cold int nvenc_setup_device ( AVCodecContext avctx)
static

Definition at line 424 of file nvenc.c.

Referenced by ff_nvenc_encode_init().

static void nvenc_map_preset ( NvencContext ctx)
static

Definition at line 520 of file nvenc.c.

Referenced by nvenc_setup_encoder().

static av_cold void set_constqp ( AVCodecContext avctx)
static

Definition at line 546 of file nvenc.c.

Referenced by nvenc_override_rate_control().

static av_cold void set_vbr ( AVCodecContext avctx)
static

Definition at line 579 of file nvenc.c.

Referenced by nvenc_override_rate_control(), and nvenc_setup_rate_control().

static av_cold void set_lossless ( AVCodecContext avctx)
static

Definition at line 641 of file nvenc.c.

Referenced by nvenc_setup_rate_control().

static void nvenc_override_rate_control ( AVCodecContext avctx)
static

Definition at line 655 of file nvenc.c.

Referenced by nvenc_setup_rate_control().

static av_cold int nvenc_recalc_surfaces ( AVCodecContext avctx)
static

Definition at line 686 of file nvenc.c.

Referenced by nvenc_setup_encoder().

static av_cold void nvenc_setup_rate_control ( AVCodecContext avctx)
static

Definition at line 725 of file nvenc.c.

Referenced by nvenc_setup_encoder().

static av_cold int nvenc_setup_h264_config ( AVCodecContext avctx)
static

Definition at line 844 of file nvenc.c.

Referenced by nvenc_setup_codec_config().

static av_cold int nvenc_setup_hevc_config ( AVCodecContext avctx)
static

Definition at line 932 of file nvenc.c.

Referenced by nvenc_setup_codec_config().

static av_cold int nvenc_setup_codec_config ( AVCodecContext avctx)
static

Definition at line 1012 of file nvenc.c.

Referenced by nvenc_setup_encoder().

static av_cold int nvenc_setup_encoder ( AVCodecContext avctx)
static

Definition at line 1025 of file nvenc.c.

Referenced by ff_nvenc_encode_init().

static NV_ENC_BUFFER_FORMAT nvenc_map_buffer_format ( enum AVPixelFormat  pix_fmt)
static

Definition at line 1160 of file nvenc.c.

Referenced by nvenc_alloc_surface(), and nvenc_register_frame().

static av_cold int nvenc_alloc_surface ( AVCodecContext avctx,
int  idx 
)
static

Definition at line 1182 of file nvenc.c.

Referenced by nvenc_setup_surfaces().

static av_cold int nvenc_setup_surfaces ( AVCodecContext avctx)
static

Definition at line 1239 of file nvenc.c.

Referenced by ff_nvenc_encode_init().

static av_cold int nvenc_setup_extradata ( AVCodecContext avctx)
static

Definition at line 1293 of file nvenc.c.

Referenced by ff_nvenc_encode_init().

av_cold int ff_nvenc_encode_close ( AVCodecContext avctx)

Definition at line 1326 of file nvenc.c.

av_cold int ff_nvenc_encode_init ( AVCodecContext avctx)

Definition at line 1403 of file nvenc.c.

Referenced by nvenc_old_init().

static NvencSurface* get_free_frame ( NvencContext ctx)
static

Definition at line 1441 of file nvenc.c.

Referenced by ff_nvenc_send_frame().

static int nvenc_copy_frame ( AVCodecContext avctx,
NvencSurface nv_surface,
NV_ENC_LOCK_INPUT_BUFFER lock_buffer_params,
const AVFrame frame 
)
static

Definition at line 1453 of file nvenc.c.

Referenced by nvenc_upload_frame().

static int nvenc_find_free_reg_resource ( AVCodecContext avctx)
static

Definition at line 1483 of file nvenc.c.

Referenced by nvenc_register_frame().

static int nvenc_register_frame ( AVCodecContext avctx,
const AVFrame frame 
)
static

Definition at line 1510 of file nvenc.c.

Referenced by nvenc_upload_frame().

static int nvenc_upload_frame ( AVCodecContext avctx,
const AVFrame frame,
NvencSurface nvenc_frame 
)
static

Definition at line 1554 of file nvenc.c.

Referenced by ff_nvenc_send_frame().

static void nvenc_codec_specific_pic_params ( AVCodecContext avctx,
NV_ENC_PIC_PARAMS params 
)
static

Definition at line 1612 of file nvenc.c.

Referenced by ff_nvenc_send_frame().

static void timestamp_queue_enqueue ( AVFifoBuffer queue,
int64_t  timestamp 
)
inlinestatic

Definition at line 1633 of file nvenc.c.

Referenced by ff_nvenc_send_frame().

static int64_t timestamp_queue_dequeue ( AVFifoBuffer queue)
inlinestatic

Definition at line 1638 of file nvenc.c.

Referenced by nvenc_set_timestamp(), and process_output_surface().

static int nvenc_set_timestamp ( AVCodecContext avctx,
NV_ENC_LOCK_BITSTREAM params,
AVPacket pkt 
)
static

Definition at line 1647 of file nvenc.c.

Referenced by process_output_surface().

static int process_output_surface ( AVCodecContext avctx,
AVPacket pkt,
NvencSurface tmpoutsurf 
)
static

Definition at line 1681 of file nvenc.c.

Referenced by ff_nvenc_receive_packet().

static int output_ready ( AVCodecContext avctx,
int  flush 
)
static

Definition at line 1792 of file nvenc.c.

Referenced by ff_nvenc_receive_packet().

int ff_nvenc_send_frame ( AVCodecContext avctx,
const AVFrame frame 
)

Definition at line 1810 of file nvenc.c.

Referenced by ff_nvenc_encode_frame().

int ff_nvenc_receive_packet ( AVCodecContext avctx,
AVPacket pkt 
)

Definition at line 1923 of file nvenc.c.

Referenced by ff_nvenc_encode_frame().

int ff_nvenc_encode_frame ( AVCodecContext avctx,
AVPacket pkt,
const AVFrame frame,
int got_packet 
)

Definition at line 1966 of file nvenc.c.

Variable Documentation

enum AVPixelFormat ff_nvenc_pix_fmts[]
Initial value:
= {
}
planar YUV 4:4:4, 24bpp, (1 Cr & Cb sample per 1x1 Y samples)
Definition: pixfmt.h:67
#define AV_PIX_FMT_P010
Definition: pixfmt.h:424
#define AV_PIX_FMT_YUV444P16
Definition: pixfmt.h:392
planar YUV 4:2:0, 12bpp, 1 plane for Y and 1 plane for the UV components, which are interleaved (firs...
Definition: pixfmt.h:90
#define AV_PIX_FMT_0BGR32
Definition: pixfmt.h:358
HW acceleration through CUDA.
Definition: pixfmt.h:249
planar YUV 4:2:0, 12bpp, (1 Cr & Cb sample per 2x2 Y samples)
Definition: pixfmt.h:62
#define AV_PIX_FMT_0RGB32
Definition: pixfmt.h:357

Definition at line 39 of file nvenc.c.

NVENCSTATUS nverr

Definition at line 58 of file nvenc.c.

Referenced by nvenc_map_error().

int averr

Definition at line 59 of file nvenc.c.

const char* desc

Definition at line 60 of file nvenc.c.

Referenced by asf_read_picture(), asf_write_header1(), av_bsf_init(), av_frame_apply_cropping(), av_image_alloc(), av_image_copy_to_buffer(), av_image_fill_black(), av_image_fill_linesizes(), av_image_fill_pointers(), av_image_get_buffer_size(), av_image_get_linesize(), av_picture_crop(), av_picture_pad(), av_pix_fmt_count_planes(), av_pix_fmt_get_chroma_sub_sample(), av_pix_fmt_swap_endianness(), avcodec_align_dimensions(), avcodec_align_dimensions2(), avcodec_descriptor_get_by_name(), avcodec_get_chroma_sub_sample(), avcodec_get_type(), avcodec_profile_name(), call_resize_kernel(), check_image_pointers(), choose_pixel_fmt(), config_input(), config_input0(), config_input1(), config_input_main(), config_input_ref(), config_inputx(), config_inputy(), config_out_props(), config_output(), config_props(), config_props_output(), copy_picture_field(), create_all_formats(), d3d11va_get_buffer(), d3d11va_transfer_data(), decode_frame(), drm_map_frame(), encode_frame(), encode_init(), ff_all_formats(), ff_color_frame(), ff_draw_color(), ff_draw_horiz_band(), ff_draw_init(), ff_flac_parse_picture(), ff_frame_pool_get(), ff_frame_pool_video_init(), ff_get_format(), ff_guess_coded_bitrate(), ff_h264_draw_horiz_band(), ff_id3v2_write_apic(), ff_mediacodec_dec_init(), ff_scale_eval_dimensions(), ff_sws_alphablendaway(), ff_sws_init_output_funcs(), ff_vmafmotion_init(), filter_frame(), find_codec_or_die(), flush_encoders(), frame_end(), geq_config_props(), get_aspect_ratio(), get_bit_depth(), get_codecs_sorted(), get_deinterleaved_format(), get_format(), get_pix_fmt_depth(), get_video_buffer(), hScale16To15_c(), hScale16To19_c(), hwdownload_query_formats(), hwmap_config_output(), image_copy(), init(), init_image(), init_muxer(), init_video_param(), is16BPS(), is_hwaccel_pix_fmt(), isALPHA(), isAnyRGB(), isBayer(), isBE(), isGray(), isNBPS(), isPacked(), isPackedRGB(), isPlanar(), isPlanarRGB(), isPlanarYUV(), isRGB(), isYUV(), kmsgrab_free_desc(), kmsgrab_read_packet(), libopenjpeg_copy_to_packed16(), libopenjpeg_copyto16(), libopenjpeg_decode_frame(), libopenjpeg_ispacked(), libopenjpeg_matches_pix_fmt(), list_formats(), main(), map_pixel_format(), mj2_create_image(), nvenc_print_error(), opengl_draw(), opengl_fill_color_map(), opengl_init_context(), pix_fmt_match(), print_codecs(), print_digraph(), qsv_decode_init(), qsv_init_surface(), qsv_map_from(), query_formats(), raw_decode(), raw_encode_init(), raw_init_decoder(), read_gab2_sub(), rgb48Toxyz12(), rkmpp_release_frame(), rkmpp_retrieve_frame(), rv10_write_header(), show_codecs(), show_help_codec(), show_help_muxer(), shuffleplanes_config_input(), smv_img_pnt(), smvjpeg_decode_frame(), swscale(), thumbnail_kernel(), tiff_unpack_strip(), transcode_init(), unsupported_codec(), usePal(), v4l2_read_header(), vaapi_decode_make_config(), validate_avframe_allocation(), verify_md5(), video_frame_cksum(), video_get_buffer(), wrap_texture_buf(), write_header(), write_packet(), X264_frame(), xwd_encode_frame(), xyz12Torgb48(), yuv2gbrp16_full_X_c(), and yuv2gbrp_full_X_c().

const { ... } nvenc_errors[]
Initial value:
= {
{ NV_ENC_SUCCESS, 0, "success" },
{ NV_ENC_ERR_NO_ENCODE_DEVICE, AVERROR(ENOENT), "no encode device" },
{ NV_ENC_ERR_UNSUPPORTED_DEVICE, AVERROR(ENOSYS), "unsupported device" },
{ NV_ENC_ERR_INVALID_ENCODERDEVICE, AVERROR(EINVAL), "invalid encoder device" },
{ NV_ENC_ERR_INVALID_DEVICE, AVERROR(EINVAL), "invalid device" },
{ NV_ENC_ERR_DEVICE_NOT_EXIST, AVERROR(EIO), "device does not exist" },
{ NV_ENC_ERR_INVALID_PTR, AVERROR(EFAULT), "invalid ptr" },
{ NV_ENC_ERR_INVALID_EVENT, AVERROR(EINVAL), "invalid event" },
{ NV_ENC_ERR_INVALID_PARAM, AVERROR(EINVAL), "invalid param" },
{ NV_ENC_ERR_INVALID_CALL, AVERROR(EINVAL), "invalid call" },
{ NV_ENC_ERR_OUT_OF_MEMORY, AVERROR(ENOMEM), "out of memory" },
{ NV_ENC_ERR_ENCODER_NOT_INITIALIZED, AVERROR(EINVAL), "encoder not initialized" },
{ NV_ENC_ERR_UNSUPPORTED_PARAM, AVERROR(ENOSYS), "unsupported param" },
{ NV_ENC_ERR_LOCK_BUSY, AVERROR(EAGAIN), "lock busy" },
{ NV_ENC_ERR_INVALID_VERSION, AVERROR(EINVAL), "invalid version" },
{ NV_ENC_ERR_MAP_FAILED, AVERROR(EIO), "map failed" },
{ NV_ENC_ERR_NEED_MORE_INPUT, AVERROR(EAGAIN), "need more input" },
{ NV_ENC_ERR_ENCODER_BUSY, AVERROR(EAGAIN), "encoder busy" },
{ NV_ENC_ERR_EVENT_NOT_REGISTERD, AVERROR(EBADF), "event not registered" },
{ NV_ENC_ERR_GENERIC, AVERROR_UNKNOWN, "generic error" },
{ NV_ENC_ERR_INCOMPATIBLE_CLIENT_KEY, AVERROR(EINVAL), "incompatible client key" },
{ NV_ENC_ERR_UNIMPLEMENTED, AVERROR(ENOSYS), "unimplemented" },
{ NV_ENC_ERR_RESOURCE_REGISTER_FAILED, AVERROR(EIO), "resource register failed" },
{ NV_ENC_ERR_RESOURCE_NOT_REGISTERED, AVERROR(EBADF), "resource not registered" },
{ NV_ENC_ERR_RESOURCE_NOT_MAPPED, AVERROR(EBADF), "resource not mapped" },
}
This indicates that the HW encoder is busy encoding and is unable to encode the input.
Definition: nvEncodeAPI.h:520
This indicates that the NvEncRegisterResource API failed to register the resource.
Definition: nvEncodeAPI.h:548
This indicates that one or more of the parameter passed to the API call is invalid.
Definition: nvEncodeAPI.h:447
This indicates that the encoder device supplied by the client is not valid.
Definition: nvEncodeAPI.h:416
This indicates that an unknown internal error has occurred.
Definition: nvEncodeAPI.h:531
This indicates that an invalid struct version was used by the client.
Definition: nvEncodeAPI.h:491
This indicates that API call returned with no errors.
Definition: nvEncodeAPI.h:400
This indicates encode driver requires more input buffers to produce an output bitstream.
Definition: nvEncodeAPI.h:513
This indicates that the client is attempting to use a feature that is not available for the license t...
Definition: nvEncodeAPI.h:537
This indicates that the completion event passed in NvEncEncodePicture() API has not been registered w...
Definition: nvEncodeAPI.h:526
This indicates that the NvEncLockBitstream() failed to lock the output buffer.
Definition: nvEncodeAPI.h:480
#define AVERROR(e)
Definition: error.h:43
This indicates that the size of the user buffer passed by the client is insufficient for the requeste...
Definition: nvEncodeAPI.h:486
This indicates that the client is attempting to unregister a resource that has not been successfully ...
Definition: nvEncodeAPI.h:554
This indicates that the client is attempting to use a feature that is not implemented for the current...
Definition: nvEncodeAPI.h:543
#define AVERROR_BUFFER_TOO_SMALL
Buffer too small.
Definition: error.h:51
This indicates that device passed to the API call is invalid.
Definition: nvEncodeAPI.h:421
This indicates that the client is attempting to unmap a resource that has not been successfully mappe...
Definition: nvEncodeAPI.h:560
This indicates that one or more of the pointers passed to the API call is invalid.
Definition: nvEncodeAPI.h:435
This indicates that an API call was made in wrong sequence/order.
Definition: nvEncodeAPI.h:452
This indicates that devices pass by the client is not supported.
Definition: nvEncodeAPI.h:410
This indicates that completion event passed in NvEncEncodePicture() call is invalid.
Definition: nvEncodeAPI.h:441
This indicates that an unsupported parameter was passed by the client.
Definition: nvEncodeAPI.h:471
#define AVERROR_UNKNOWN
Unknown error, typically from an external library.
Definition: error.h:71
This indicates that the encoder has not been initialized with NvEncInitializeEncoder() or that initia...
Definition: nvEncodeAPI.h:466
This indicates that device passed to the API call is no longer available and needs to be reinitialize...
Definition: nvEncodeAPI.h:429
This indicates that no encode capable devices were detected.
Definition: nvEncodeAPI.h:405
This indicates that NvEncMapInputResource() API failed to map the client provided input resource...
Definition: nvEncodeAPI.h:497
This indicates that the API call failed because it was unable to allocate enough memory to perform th...
Definition: nvEncodeAPI.h:458

Referenced by nvenc_map_error().