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
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",
* 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 =
* 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) {