avcodec/nvenc: make use of new GetLastErrorString function

Signed-off-by: Timo Rothenpieler <timo@rothenpieler.org>
This commit is contained in:
Timo Rothenpieler 2019-09-27 19:09:11 +02:00
parent 51a23343d9
commit ab0ef1abdf
2 changed files with 15 additions and 4 deletions

View File

@ -110,13 +110,23 @@ static int nvenc_map_error(NVENCSTATUS err, const char **desc)
return AVERROR_UNKNOWN; return AVERROR_UNKNOWN;
} }
static int nvenc_print_error(void *log_ctx, NVENCSTATUS err, static int nvenc_print_error(AVCodecContext *avctx, NVENCSTATUS err,
const char *error_string) const char *error_string)
{ {
const char *desc; const char *desc;
int ret; const char *details = "(no details)";
ret = nvenc_map_error(err, &desc); int ret = nvenc_map_error(err, &desc);
av_log(log_ctx, AV_LOG_ERROR, "%s: %s (%d)\n", error_string, desc, err);
#ifdef NVENC_HAVE_GETLASTERRORSTRING
NvencContext *ctx = avctx->priv_data;
NV_ENCODE_API_FUNCTION_LIST *p_nvenc = &ctx->nvenc_dload_funcs.nvenc_funcs;
if (p_nvenc && ctx->nvencoder)
details = p_nvenc->nvEncGetLastErrorString(ctx->nvencoder);
#endif
av_log(avctx, AV_LOG_ERROR, "%s: %s (%d): %s\n", error_string, desc, err, details);
return ret; return ret;
} }

View File

@ -58,6 +58,7 @@ typedef void ID3D11Device;
#if NVENCAPI_CHECK_VERSION(9, 1) #if NVENCAPI_CHECK_VERSION(9, 1)
#define NVENC_HAVE_MULTIPLE_REF_FRAMES #define NVENC_HAVE_MULTIPLE_REF_FRAMES
#define NVENC_HAVE_CUSTREAM_PTR #define NVENC_HAVE_CUSTREAM_PTR
#define NVENC_HAVE_GETLASTERRORSTRING
#endif #endif
typedef struct NvencSurface typedef struct NvencSurface