/* These metadata will get set by the upstream framepositionner element, added in the video sources' bin */ static GstPadProbeReturn parse_metadata (GstPad * mixer_pad, GstPadProbeInfo * info, GESSmartMixer * self) { GstFramePositionnerMeta *meta; meta = (GstFramePositionnerMeta *) gst_buffer_get_meta ((GstBuffer *) info->data, gst_frame_positionner_meta_api_get_type ()); if (!meta) { GST_WARNING ("The current source should use a framepositionner"); return GST_PAD_PROBE_OK; } if (!self->disable_zorder_alpha) { g_object_set (mixer_pad, "alpha", meta->alpha, "zorder", meta->zorder, NULL); } g_object_set (mixer_pad, "xpos", meta->posx, "ypos", meta->posy, "width", meta->width, "height", meta->height, NULL); return GST_PAD_PROBE_OK; }
CVPixelBufferRef gst_core_media_buffer_get_pixel_buffer (GstBuffer * buf) { GstCoreMediaMeta *meta = (GstCoreMediaMeta *) gst_buffer_get_meta (buf, GST_CORE_MEDIA_META_API_TYPE); g_return_val_if_fail (meta != NULL, NULL); return meta->ctx->cv->CVPixelBufferRetain (meta->pixel_buf); }
GstStructure * kms_serializable_meta_get_metadata (GstBuffer * buffer) { KmsSerializableMeta *meta; g_return_val_if_fail (GST_IS_BUFFER (buffer), NULL); meta = (KmsSerializableMeta *) gst_buffer_get_meta (buffer, KMS_SERIALIZABLE_META_API_TYPE); if (meta == NULL) { return NULL; } return meta->data; }
GstVaapiVideoMeta * gst_buffer_get_vaapi_video_meta (GstBuffer * buffer) { GstVaapiVideoMeta *meta; GstMeta *m; g_return_val_if_fail (GST_IS_BUFFER (buffer), NULL); m = gst_buffer_get_meta (buffer, GST_VAAPI_VIDEO_META_API_TYPE); if (!m) return NULL; meta = GST_VAAPI_VIDEO_META_HOLDER (m)->meta; if (meta) meta->buffer = buffer; return meta; }
/* These metadata will get set by the upstream framepositionner element, added in the video sources' bin */ static GstPadProbeReturn parse_metadata (GstPad * mixer_pad, GstPadProbeInfo * info, gpointer unused) { GstFramePositionnerMeta *meta; meta = (GstFramePositionnerMeta *) gst_buffer_get_meta ((GstBuffer *) info->data, gst_frame_positionner_meta_api_get_type ()); if (!meta) { GST_WARNING ("The current source should use a framepositionner"); return GST_PAD_PROBE_OK; } g_object_set (mixer_pad, "alpha", meta->alpha, "xpos", meta->posx, "ypos", meta->posy, "zorder", meta->zorder, NULL); return GST_PAD_PROBE_OK; }
KmsSerializableMeta * kms_buffer_add_serializable_meta (GstBuffer * buffer, GstStructure * data) { KmsSerializableMeta *meta; g_return_val_if_fail (GST_IS_BUFFER (buffer), NULL); meta = (KmsSerializableMeta *) gst_buffer_get_meta (buffer, KMS_SERIALIZABLE_META_API_TYPE); if (meta != NULL) { gst_structure_foreach (data, add_fields_to_structure, meta->data); gst_structure_free (data); } else { meta = (KmsSerializableMeta *) gst_buffer_add_meta (buffer, KMS_SERIALIZABLE_META_INFO, NULL); meta->data = data; } return meta; }
KmsSerializableMeta * kms_buffer_get_serializable_meta (GstBuffer * b) { return ((KmsSerializableMeta *) gst_buffer_get_meta ((b), KMS_SERIALIZABLE_META_API_TYPE)); }