/** * gst_vaapi_decoder_replace: * @old_decoder_ptr: a pointer to a #GstVaapiDecoder * @new_decoder: a #GstVaapiDecoder * * Atomically replaces the decoder decoder held in @old_decoder_ptr * with @new_decoder. This means that @old_decoder_ptr shall reference * a valid decoder. However, @new_decoder can be NULL. */ void gst_vaapi_decoder_replace (GstVaapiDecoder ** old_decoder_ptr, GstVaapiDecoder * new_decoder) { gst_vaapi_mini_object_replace ((GstVaapiMiniObject **) old_decoder_ptr, GST_VAAPI_MINI_OBJECT (new_decoder)); }
/** * gst_vaapi_surface_proxy_unref: * @proxy: a #GstVaapiSurfaceProxy * * Atomically decreases the reference count of the @proxy by one. If * the reference count reaches zero, the object will be free'd. */ void gst_vaapi_surface_proxy_unref (GstVaapiSurfaceProxy * proxy) { g_return_if_fail (proxy != NULL); gst_vaapi_mini_object_unref (GST_VAAPI_MINI_OBJECT (proxy)); }
/** * gst_vaapi_coded_buffer_proxy_unref: * @proxy: a #GstVaapiCodedBufferProxy * * Atomically decreases the reference count of the @proxy by one. If * the reference count reaches zero, the object will be free'd. */ void gst_vaapi_coded_buffer_proxy_unref (GstVaapiCodedBufferProxy * proxy) { g_return_if_fail (proxy != NULL); gst_vaapi_mini_object_unref (GST_VAAPI_MINI_OBJECT (proxy)); }
/** * gst_vaapi_coded_buffer_proxy_ref: * @proxy: a #GstVaapiCodedBufferProxy * * Atomically increases the reference count of the given @proxy by one. * * Returns: The same @proxy argument */ GstVaapiCodedBufferProxy * gst_vaapi_coded_buffer_proxy_ref (GstVaapiCodedBufferProxy * proxy) { g_return_val_if_fail (proxy != NULL, NULL); return GST_VAAPI_CODED_BUFFER_PROXY (gst_vaapi_mini_object_ref (GST_VAAPI_MINI_OBJECT (proxy))); }
/** * gst_vaapi_surface_proxy_replace: * @old_proxy_ptr: a pointer to a #GstVaapiSurfaceProxy * @new_proxy: a #GstVaapiSurfaceProxy * * Atomically replaces the proxy object held in @old_proxy_ptr with * @new_proxy. This means that @old_proxy_ptr shall reference a valid * object. However, @new_proxy can be NULL. */ void gst_vaapi_surface_proxy_replace (GstVaapiSurfaceProxy ** old_proxy_ptr, GstVaapiSurfaceProxy * new_proxy) { g_return_if_fail (old_proxy_ptr != NULL); gst_vaapi_mini_object_replace ((GstVaapiMiniObject **) old_proxy_ptr, GST_VAAPI_MINI_OBJECT (new_proxy)); }
/** * gst_vaapi_surface_proxy_ref: * @proxy: a #GstVaapiSurfaceProxy * * Atomically increases the reference count of the given @proxy by one. * * Returns: The same @proxy argument */ GstVaapiSurfaceProxy * gst_vaapi_surface_proxy_ref (GstVaapiSurfaceProxy * proxy) { g_return_val_if_fail (proxy != NULL, NULL); return GST_VAAPI_SURFACE_PROXY (gst_vaapi_mini_object_ref (GST_VAAPI_MINI_OBJECT (proxy))); }
/** * gst_vaapi_coded_buffer_proxy_replace: * @old_proxy_ptr: a pointer to a #GstVaapiCodedBufferProxy * @new_proxy: a #GstVaapiCodedBufferProxy * * Atomically replaces the proxy object held in @old_proxy_ptr with * @new_proxy. This means that @old_proxy_ptr shall reference a valid * object. However, @new_proxy can be NULL. */ void gst_vaapi_coded_buffer_proxy_replace (GstVaapiCodedBufferProxy ** old_proxy_ptr, GstVaapiCodedBufferProxy * new_proxy) { g_return_if_fail (old_proxy_ptr != NULL); gst_vaapi_mini_object_replace ((GstVaapiMiniObject **) old_proxy_ptr, GST_VAAPI_MINI_OBJECT (new_proxy)); }
static GstVaapiDecoderStatus decode_slice (GstVaapiDecoderVp8 * decoder, GstVaapiPicture * picture, const guchar * buf, guint buf_size) { GstVaapiSlice *slice; slice = GST_VAAPI_SLICE_NEW (VP8, decoder, buf, buf_size); if (!slice) { GST_ERROR ("failed to allocate slice"); return GST_VAAPI_DECODER_STATUS_ERROR_ALLOCATION_FAILED; } if (!fill_slice (decoder, slice)) { gst_vaapi_mini_object_unref (GST_VAAPI_MINI_OBJECT (slice)); return GST_VAAPI_DECODER_STATUS_ERROR_UNKNOWN; } gst_vaapi_picture_add_slice (GST_VAAPI_PICTURE_CAST (picture), slice); return GST_VAAPI_DECODER_STATUS_SUCCESS; }