diff --git a/sys/msdk/gstmsdkdec.c b/sys/msdk/gstmsdkdec.c index 016122dce8..5d80ca436e 100644 --- a/sys/msdk/gstmsdkdec.c +++ b/sys/msdk/gstmsdkdec.c @@ -1112,11 +1112,14 @@ error_no_pool: error_no_allocator: { GST_INFO_OBJECT (thiz, "failed to create allocator"); + gst_object_unref (pool); return NULL; } error_pool_config: { GST_INFO_OBJECT (thiz, "failed to set config"); + gst_object_unref (pool); + gst_object_unref (allocator); return NULL; } } diff --git a/sys/msdk/gstmsdkenc.c b/sys/msdk/gstmsdkenc.c index c3e16ce75f..6f90249213 100644 --- a/sys/msdk/gstmsdkenc.c +++ b/sys/msdk/gstmsdkenc.c @@ -952,11 +952,14 @@ error_no_pool: error_no_allocator: { GST_INFO_OBJECT (thiz, "failed to create allocator"); + gst_object_unref (pool); return FALSE; } error_pool_config: { GST_INFO_OBJECT (thiz, "failed to set config"); + gst_object_unref (pool); + gst_object_unref (allocator); return FALSE; } } diff --git a/sys/msdk/gstmsdkvpp.c b/sys/msdk/gstmsdkvpp.c index d769d4084e..027037bd18 100644 --- a/sys/msdk/gstmsdkvpp.c +++ b/sys/msdk/gstmsdkvpp.c @@ -304,22 +304,20 @@ error_no_pool: error_no_video_info: { GST_INFO_OBJECT (thiz, "Failed to get Video info from caps"); + gst_object_unref (pool); return NULL; } error_no_allocator: { GST_INFO_OBJECT (thiz, "Failed to create allocator"); - if (pool) - gst_object_unref (pool); + gst_object_unref (pool); return NULL; } error_pool_config: { GST_INFO_OBJECT (thiz, "Failed to set config"); - if (pool) - gst_object_unref (pool); - if (allocator) - gst_object_unref (allocator); + gst_object_unref (pool); + gst_object_unref (allocator); return NULL; } }