Merge pull request #1594 from DDRBoxman/qsvwtf

obs-qsv11: Log errors on init
This commit is contained in:
Colin Edwards 2019-01-04 22:55:50 -06:00 committed by GitHub
commit b09880bf2d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -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);