gst_object_replace ((GstObject **) (&base->decoder),
(GstObject *) va_decoder);
- gst_object_unref (va_decoder);
+ gst_clear_object (&va_decoder);
} else {
ret = TRUE;
}
gst_object_replace ((GstObject **) & va_decoder, (GstObject *) base->decoder);
- if (va_decoder)
+ if (va_decoder) {
caps = gst_va_decoder_get_sinkpad_caps (va_decoder);
-
- gst_object_unref (va_decoder);
+ gst_object_unref (va_decoder);
+ }
if (caps) {
if (filter) {
ret = gst_va_handle_context_query (GST_ELEMENT_CAST (decoder), query,
display);
- gst_object_unref (display);
+ gst_clear_object (&display);
break;
}
case GST_QUERY_CAPS:{
if (!fixed_caps && va_decoder)
caps = gst_va_decoder_get_srcpad_caps (va_decoder);
- gst_object_unref (va_decoder);
+ gst_clear_object (&va_decoder);
if (caps) {
if (filter) {
ret = gst_va_handle_context_query (GST_ELEMENT_CAST (decoder), query,
display);
- gst_object_unref (display);
+ gst_clear_object (&display);
+
return ret;
}
display = gst_va_display_drm_new_from_path (render_device_path);
gst_object_replace ((GstObject **) display_ptr, (GstObject *) display);
- gst_object_unref (display);
gst_va_element_propagate_display_context (element, display);
+ gst_clear_object (&display);
+
done:
- return *display_ptr != NULL;
+ return g_atomic_pointer_get (display_ptr) != NULL;
}
gboolean