obs-qsv11: Log errors on init
This commit is contained in:
parent
7246caae0f
commit
e9b4d50606
@ -85,6 +85,68 @@ qsv_t *qsv_encoder_open(qsv_param_t *pParams)
|
||||
QSV_Encoder_Internal *pEncoder = new QSV_Encoder_Internal(impl, ver);
|
||||
mfxStatus sts = pEncoder->Open(pParams);
|
||||
if (sts != MFX_ERR_NONE) {
|
||||
|
||||
#define WARN_ERR_IMPL(err, str, err_name) case err: \
|
||||
do_log(LOG_WARNING, str " (" err_name ")"); break;
|
||||
#define WARN_ERR(err, str) WARN_ERR_IMPL(err, str, #err)
|
||||
|
||||
switch (sts) {
|
||||
WARN_ERR(MFX_ERR_UNKNOWN, "Unknown QSV error");
|
||||
WARN_ERR(MFX_ERR_NOT_INITIALIZED,
|
||||
"Member functions called without initialization");
|
||||
WARN_ERR(MFX_ERR_INVALID_HANDLE,
|
||||
"Invalid session or MemId handle");
|
||||
WARN_ERR(MFX_ERR_NULL_PTR,
|
||||
"NULL pointer in the input or output arguments");
|
||||
WARN_ERR(MFX_ERR_UNDEFINED_BEHAVIOR, "Undefined behavior");
|
||||
WARN_ERR(MFX_ERR_NOT_ENOUGH_BUFFER,
|
||||
"Insufficient buffer for input or output.");
|
||||
WARN_ERR(MFX_ERR_NOT_FOUND,
|
||||
"Specified object/item/sync point not found.");
|
||||
WARN_ERR(MFX_ERR_MEMORY_ALLOC, "Gailed to allocate memory");
|
||||
WARN_ERR(MFX_ERR_LOCK_MEMORY,
|
||||
"failed to lock the memory block "
|
||||
"(external allocator).");
|
||||
WARN_ERR(MFX_ERR_UNSUPPORTED,
|
||||
"Unsupported configurations, parameters, or features");
|
||||
WARN_ERR(MFX_ERR_INVALID_VIDEO_PARAM,
|
||||
"Incompatible video parameters detected");
|
||||
WARN_ERR(MFX_WRN_VIDEO_PARAM_CHANGED,
|
||||
"The decoder detected a new sequence header in the "
|
||||
"bitstream. Video parameters may have changed.");
|
||||
WARN_ERR(MFX_WRN_VALUE_NOT_CHANGED,
|
||||
"The parameter has been clipped to its value range");
|
||||
WARN_ERR(MFX_WRN_OUT_OF_RANGE,
|
||||
"The parameter is out of valid value range");
|
||||
WARN_ERR(MFX_WRN_INCOMPATIBLE_VIDEO_PARAM,
|
||||
"Incompatible video parameters detected");
|
||||
WARN_ERR(MFX_WRN_FILTER_SKIPPED,
|
||||
"The SDK VPP has skipped one or more optional filters "
|
||||
"requested by the application");
|
||||
WARN_ERR(MFX_ERR_ABORTED, "The asynchronous operation aborted");
|
||||
WARN_ERR(MFX_ERR_MORE_DATA,
|
||||
"Need more bitstream at decoding input, encoding "
|
||||
"input, or video processing input frames");
|
||||
WARN_ERR(MFX_ERR_MORE_SURFACE, "Need more frame surfaces at "
|
||||
"decoding or video processing output");
|
||||
WARN_ERR(MFX_ERR_MORE_BITSTREAM,
|
||||
"Need more bitstream buffers at the encoding output");
|
||||
WARN_ERR(MFX_WRN_IN_EXECUTION,
|
||||
"Synchronous operation still running");
|
||||
WARN_ERR(MFX_ERR_DEVICE_FAILED,
|
||||
"Hardware device returned unexpected errors");
|
||||
WARN_ERR(MFX_ERR_DEVICE_LOST,"Hardware device was lost");
|
||||
WARN_ERR(MFX_WRN_DEVICE_BUSY,
|
||||
"Hardware device is currently busy");
|
||||
WARN_ERR(MFX_WRN_PARTIAL_ACCELERATION,
|
||||
"The hardware does not support the specified "
|
||||
"configuration. Encoding, decoding, or video "
|
||||
"processing may be partially accelerated");
|
||||
}
|
||||
|
||||
#undef WARN_ERR
|
||||
#undef WARN_ERR_IMPL
|
||||
|
||||
delete pEncoder;
|
||||
if (pEncoder)
|
||||
is_active.store(false);
|
||||
|
Loading…
x
Reference in New Issue
Block a user