"width = " GST_VIDEO_SIZE_RANGE ", "
"height = " GST_VIDEO_SIZE_RANGE ", "
"framerate = " GST_VIDEO_FPS_RANGE ","
+ "texture-target = (string) 2D ; "
+ "video/x-raw(ANY), "
+ "format = (string) RGBA, "
+ "width = " GST_VIDEO_SIZE_RANGE ", "
+ "height = " GST_VIDEO_SIZE_RANGE ", "
+ "framerate = " GST_VIDEO_FPS_RANGE ","
"texture-target = (string) 2D"
));
GST_STATIC_PAD_TEMPLATE ("sink",
GST_PAD_SINK,
GST_PAD_ALWAYS,
- GST_STATIC_CAPS ("video/x-raw(" GST_CAPS_FEATURE_MEMORY_GL_MEMORY "), "
+ GST_STATIC_CAPS ("video/x-raw(ANY), "
+ "format = (string) RGBA, "
+ "width = " GST_VIDEO_SIZE_RANGE ", "
+ "height = " GST_VIDEO_SIZE_RANGE ", "
+ "framerate = " GST_VIDEO_FPS_RANGE ","
+ "texture-target = (string) 2D ; "
+ "video/x-raw(" GST_CAPS_FEATURE_MEMORY_GL_MEMORY "), "
"format = (string) RGBA, "
"width = " GST_VIDEO_SIZE_RANGE ", "
"height = " GST_VIDEO_SIZE_RANGE ", "
#define gst_gl_filter_parent_class parent_class
G_DEFINE_TYPE_WITH_CODE (GstGLFilter, gst_gl_filter, GST_TYPE_GL_BASE_FILTER,
GST_DEBUG_CATEGORY_INIT (gst_gl_filter_debug, "glfilter", 0,
- "glfilter element");
- );
+ "glfilter element"););
static void gst_gl_filter_set_property (GObject * object, guint prop_id,
const GValue * value, GParamSpec * pspec);
GstCaps *tmp = NULL;
GstCaps *result = NULL;
- tmp = GST_GL_FILTER_GET_CLASS (filter)->transform_internal_caps (filter,
- direction, caps, NULL);
+ if (gst_base_transform_is_passthrough (bt)) {
+ tmp = gst_caps_ref (caps);
+ } else {
+ tmp = GST_GL_FILTER_GET_CLASS (filter)->transform_internal_caps (filter,
+ direction, caps, NULL);
- result =
- gst_gl_filter_set_caps_features (tmp, GST_CAPS_FEATURE_MEMORY_GL_MEMORY);
- gst_caps_unref (tmp);
- tmp = result;
+ result =
+ gst_gl_filter_set_caps_features (tmp,
+ GST_CAPS_FEATURE_MEMORY_GL_MEMORY);
+ gst_caps_unref (tmp);
+ tmp = result;
+ }
if (filter_caps) {
result =