diff --git a/gst-libs/gst/video/gstvideometa.c b/gst-libs/gst/video/gstvideometa.c index d7c9808813..ae3e43f61c 100644 --- a/gst-libs/gst/video/gstvideometa.c +++ b/gst-libs/gst/video/gstvideometa.c @@ -42,6 +42,24 @@ ensure_debug_category (void) #define ensure_debug_category() /* NOOP */ #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) @@ -113,7 +131,7 @@ gst_video_meta_get_info (void) 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); } @@ -484,6 +502,25 @@ gst_video_gl_texture_upload_meta_api_get_type (void) 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) { @@ -542,7 +579,7 @@ gst_video_gl_texture_upload_meta_get_info (void) 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); @@ -692,6 +729,7 @@ gst_video_region_of_interest_meta_init (GstMeta * meta, gpointer params, 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; diff --git a/gst-libs/gst/video/video-multiview.c b/gst-libs/gst/video/video-multiview.c index 2b2a5bc8f9..12774b034d 100644 --- a/gst-libs/gst/video/video-multiview.c +++ b/gst-libs/gst/video/video-multiview.c @@ -418,6 +418,16 @@ gst_video_multiview_meta_api_get_type (void) 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) @@ -436,7 +446,7 @@ gst_video_multiview_meta_get_info (void) 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); diff --git a/gst-libs/gst/video/video-overlay-composition.c b/gst-libs/gst/video/video-overlay-composition.c index b256b999c6..12e7e077a5 100644 --- a/gst-libs/gst/video/video-overlay-composition.c +++ b/gst-libs/gst/video/video-overlay-composition.c @@ -186,6 +186,19 @@ gst_video_overlay_get_seqnum (void) 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) { @@ -251,7 +264,8 @@ gst_video_overlay_composition_meta_get_info (void) 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);