(void **) &priv->video_device);
if (!gst_d3d11_result (hr, priv->device) || !priv->video_device) {
- GST_ERROR_OBJECT (self, "Cannot create VideoDevice Object: 0x%x",
+ GST_WARNING_OBJECT (self, "Cannot create VideoDevice Object: 0x%x",
(guint) hr);
priv->video_device = NULL;
&IID_ID3D11VideoContext, (void **) &priv->video_context);
if (!gst_d3d11_result (hr, priv->device) || !priv->video_context) {
- GST_ERROR_OBJECT (self, "Cannot create VideoContext Object: 0x%x",
+ GST_WARNING_OBJECT (self, "Cannot create VideoContext Object: 0x%x",
(guint) hr);
priv->video_context = NULL;
if (priv->video_context) {
ID3D11VideoContext_Release (priv->video_context);
- priv->video_device = NULL;
+ priv->video_context = NULL;
}
return;
if (priv->video_context) {
ID3D11VideoContext_Release (priv->video_context);
- priv->video_device = NULL;
+ priv->video_context = NULL;
}
return TRUE;
gst_d3d11_decoder_new (GstD3D11Device * device)
{
GstD3D11Decoder *decoder;
+ GstD3D11DecoderPrivate *priv;
g_return_val_if_fail (GST_IS_D3D11_DEVICE (device), NULL);
decoder = g_object_new (GST_TYPE_D3D11_DECODER, "device", device, NULL);
+ priv = decoder->priv;
+
+ if (!priv->video_device || !priv->video_context) {
+ gst_object_unref (decoder);
+ return NULL;
+ }
- if (decoder)
- gst_object_ref_sink (decoder);
+ gst_object_ref_sink (decoder);
return decoder;
}