From caee3e41f91d4904822d4b05071c7634327c6aa8 Mon Sep 17 00:00:00 2001 From: Matthew Waters Date: Mon, 14 Dec 2015 12:26:01 +1100 Subject: [PATCH] gl: add convenience function for the start of a video frame Get's the start of the video frame based on a GstVideoInfo and GstVideoAlignment. --- gst-libs/gst/gl/gstglutils.c | 19 +++++++++++++++++++ gst-libs/gst/gl/gstglutils.h | 2 ++ 2 files changed, 21 insertions(+) diff --git a/gst-libs/gst/gl/gstglutils.c b/gst-libs/gst/gl/gstglutils.c index a57bbda0d6..080c17b400 100644 --- a/gst-libs/gst/gl/gstglutils.c +++ b/gst-libs/gst/gl/gstglutils.c @@ -904,6 +904,25 @@ gst_gl_get_plane_data_size (GstVideoInfo * info, GstVideoAlignment * align, return plane_size; } +/* find the difference between the start of the plane and where the video + * data starts in the plane */ +gsize +gst_gl_get_plane_start (GstVideoInfo * info, GstVideoAlignment * valign, + guint plane) +{ + gsize plane_start; + gint i; + + /* find the start of the plane data including padding */ + plane_start = 0; + for (i = 0; i < plane; i++) { + plane_start += gst_gl_get_plane_data_size (info, valign, i); + } + + /* offset between the plane data start and where the video frame starts */ + return (GST_VIDEO_INFO_PLANE_OFFSET (info, plane)) - plane_start; +} + GstCaps * gst_gl_caps_replace_all_caps_features (const GstCaps * caps, const gchar * feature_name) diff --git a/gst-libs/gst/gl/gstglutils.h b/gst-libs/gst/gl/gstglutils.h index ee606e0614..3c8460b795 100644 --- a/gst-libs/gst/gl/gstglutils.h +++ b/gst-libs/gst/gl/gstglutils.h @@ -106,6 +106,8 @@ gboolean gst_gl_run_query (GstElement * element, GstQuery * query, GstPadDirection direction); gsize gst_gl_get_plane_data_size (GstVideoInfo * info, GstVideoAlignment * align, guint plane); +gsize gst_gl_get_plane_start (GstVideoInfo * info, GstVideoAlignment * valign, + guint plane); GstCaps * gst_gl_caps_replace_all_caps_features (const GstCaps * caps, const gchar * feature_name);