mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-24 01:00:37 +00:00
msdk: check whether mfx function call fails
And log the failures for debugging
This commit is contained in:
parent
d7606a7667
commit
6c887f982e
3 changed files with 22 additions and 5 deletions
|
@ -307,6 +307,14 @@ gst_msdk_context_new_with_parent (GstMsdkContext * parent)
|
|||
if (priv->hardware) {
|
||||
status = MFXVideoCORE_SetHandle (priv->session, MFX_HANDLE_VA_DISPLAY,
|
||||
(mfxHDL) parent_priv->dpy);
|
||||
|
||||
if (status != MFX_ERR_NONE) {
|
||||
GST_ERROR ("Setting VA handle failed (%s)",
|
||||
msdk_status_to_string (status));
|
||||
g_object_unref (obj);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
}
|
||||
#endif
|
||||
|
||||
|
|
|
@ -351,9 +351,14 @@ gst_msdkenc_init_encoder (GstMsdkEnc * thiz)
|
|||
|
||||
status = MFXVideoVPP_GetVideoParam (session, &thiz->vpp_param);
|
||||
if (status < MFX_ERR_NONE) {
|
||||
mfxStatus status1;
|
||||
GST_ERROR_OBJECT (thiz, "Get VPP Parameters failed (%s)",
|
||||
msdk_status_to_string (status));
|
||||
MFXVideoVPP_Close (session);
|
||||
status1 = MFXVideoVPP_Close (session);
|
||||
if (status1 != MFX_ERR_NONE && status1 != MFX_ERR_NOT_INITIALIZED)
|
||||
GST_WARNING_OBJECT (thiz, "VPP close failed (%s)",
|
||||
msdk_status_to_string (status1));
|
||||
|
||||
goto no_vpp;
|
||||
} else if (status > MFX_ERR_NONE) {
|
||||
GST_WARNING_OBJECT (thiz, "Get VPP Parameters returned: %s",
|
||||
|
@ -689,8 +694,10 @@ gst_msdkenc_finish_frame (GstMsdkEnc * thiz, MsdkEncTask * task,
|
|||
* is used in MSDK samples
|
||||
* #define MSDK_ENC_WAIT_INTERVAL 300000
|
||||
*/
|
||||
MFXVideoCORE_SyncOperation (gst_msdk_context_get_session (thiz->context),
|
||||
task->sync_point, 300000);
|
||||
if (MFXVideoCORE_SyncOperation (gst_msdk_context_get_session (thiz->context),
|
||||
task->sync_point, 300000) != MFX_ERR_NONE)
|
||||
GST_WARNING_OBJECT (thiz, "failed to do sync operation");
|
||||
|
||||
if (!discard && task->output_bitstream.DataLength) {
|
||||
GstBuffer *out_buf = NULL;
|
||||
guint8 *data =
|
||||
|
|
|
@ -701,8 +701,10 @@ gst_msdkvpp_transform (GstBaseTransform * trans, GstBuffer * inbuf,
|
|||
* is used in MSDK samples
|
||||
* #define MSDK_VPP_WAIT_INTERVAL 300000
|
||||
*/
|
||||
if (sync_point)
|
||||
MFXVideoCORE_SyncOperation (session, sync_point, 300000);
|
||||
if (sync_point &&
|
||||
MFXVideoCORE_SyncOperation (session, sync_point,
|
||||
300000) != MFX_ERR_NONE)
|
||||
GST_WARNING_OBJECT (thiz, "failed to do sync operation");
|
||||
|
||||
/* More than one output buffers are generated */
|
||||
if (status == MFX_ERR_MORE_SURFACE) {
|
||||
|
|
Loading…
Reference in a new issue