#endif /* GST_DISABLE_GST_DEBUG */
static gboolean
+gst_video_meta_init (GstMeta * meta, gpointer params, GstBuffer * buffer)
+{
+ GstVideoMeta *emeta = (GstVideoMeta *) meta;
+
+ emeta->buffer = NULL;
+ emeta->flags = GST_VIDEO_FRAME_FLAG_NONE;
+ emeta->format = GST_VIDEO_FORMAT_UNKNOWN;
+ emeta->id = 0;
+ emeta->width = emeta->height = emeta->n_planes = 0;
+ memset (emeta->offset, 0, sizeof (emeta->offset));
+ memset (emeta->stride, 0, sizeof (emeta->stride));
+ emeta->map = NULL;
+ emeta->unmap = NULL;
+
+ return TRUE;
+}
+
+static gboolean
gst_video_meta_transform (GstBuffer * dest, GstMeta * meta,
GstBuffer * buffer, GQuark type, gpointer data)
{
if (g_once_init_enter (&video_meta_info)) {
const GstMetaInfo *meta =
gst_meta_register (GST_VIDEO_META_API_TYPE, "GstVideoMeta",
- sizeof (GstVideoMeta), (GstMetaInitFunction) NULL,
+ sizeof (GstVideoMeta), (GstMetaInitFunction) gst_video_meta_init,
(GstMetaFreeFunction) NULL, gst_video_meta_transform);
g_once_init_leave (&video_meta_info, meta);
}
return type;
}
+static gboolean
+gst_video_gl_texture_upload_meta_init (GstMeta * meta, gpointer params,
+ GstBuffer * buffer)
+{
+ GstVideoGLTextureUploadMeta *vmeta = (GstVideoGLTextureUploadMeta *) meta;
+
+ vmeta->texture_orientation =
+ GST_VIDEO_GL_TEXTURE_ORIENTATION_X_NORMAL_Y_NORMAL;
+ vmeta->n_textures = 0;
+ memset (vmeta->texture_type, 0, sizeof (vmeta->texture_type));
+ vmeta->buffer = NULL;
+ vmeta->upload = NULL;
+ vmeta->user_data = NULL;
+ vmeta->user_data_copy = NULL;
+ vmeta->user_data_free = NULL;
+
+ return TRUE;
+}
+
static void
gst_video_gl_texture_upload_meta_free (GstMeta * meta, GstBuffer * buffer)
{
gst_meta_register (GST_VIDEO_GL_TEXTURE_UPLOAD_META_API_TYPE,
"GstVideoGLTextureUploadMeta",
sizeof (GstVideoGLTextureUploadMeta),
- NULL,
+ gst_video_gl_texture_upload_meta_init,
gst_video_gl_texture_upload_meta_free,
gst_video_gl_texture_upload_meta_transform);
g_once_init_leave (&info, meta);
GstBuffer * buffer)
{
GstVideoRegionOfInterestMeta *emeta = (GstVideoRegionOfInterestMeta *) meta;
+ emeta->roi_type = 0;
emeta->id = 0;
emeta->parent_id = 0;
emeta->x = emeta->y = emeta->w = emeta->h = 0;
return type;
}
+static gboolean
+gst_video_multiview_meta_init (GstVideoMultiviewMeta * mview_meta,
+ gpointer params, GstBuffer * buffer)
+{
+ mview_meta->n_views = 0;
+ mview_meta->view_info = NULL;
+
+ return TRUE;
+}
+
static void
gst_video_multiview_meta_free (GstVideoMultiviewMeta * mview_meta,
GstBuffer * buffer)
gst_meta_register (GST_VIDEO_MULTIVIEW_META_API_TYPE,
"GstVideoMultiviewMeta",
sizeof (GstVideoMultiviewMeta),
- (GstMetaInitFunction) NULL,
+ (GstMetaInitFunction) gst_video_multiview_meta_init,
(GstMetaFreeFunction) gst_video_multiview_meta_free,
NULL);
g_once_init_leave (&video_meta_info, meta);
return (guint) g_atomic_int_add (&seqnum, 1);
}
+static gboolean
+gst_video_overlay_composition_meta_init (GstMeta * meta, gpointer params,
+ GstBuffer * buf)
+{
+ GstVideoOverlayCompositionMeta *ometa;
+
+ ometa = (GstVideoOverlayCompositionMeta *) meta;
+
+ ometa->overlay = NULL;
+
+ return TRUE;
+}
+
static void
gst_video_overlay_composition_meta_free (GstMeta * meta, GstBuffer * buf)
{
const GstMetaInfo *meta =
gst_meta_register (GST_VIDEO_OVERLAY_COMPOSITION_META_API_TYPE,
"GstVideoOverlayCompositionMeta",
- sizeof (GstVideoOverlayCompositionMeta), (GstMetaInitFunction) NULL,
+ sizeof (GstVideoOverlayCompositionMeta),
+ (GstMetaInitFunction) gst_video_overlay_composition_meta_init,
(GstMetaFreeFunction) gst_video_overlay_composition_meta_free,
(GstMetaTransformFunction)
gst_video_overlay_composition_meta_transform);