glmemory: normalize the internal format we pass into glTex* functions
authorMatthew Waters <matthew@centricular.com>
Wed, 12 Dec 2018 12:25:58 +0000 (23:25 +1100)
committerMatthew Waters <matthew@centricular.com>
Wed, 12 Dec 2018 13:10:10 +0000 (00:10 +1100)
Passing unsized formats sometimes breaks on embedded platforms

Take 2 at 694e30f858ebddae8c39cf934ff1b21ba7aa08e7,
https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/merge_requests/49

gst-libs/gst/gl/gstglmemory.c

index 5ef783b..ac2878b 100644 (file)
@@ -244,6 +244,9 @@ _gl_tex_create (GstGLMemory * gl_mem, GError ** error)
   internal_format = gl_mem->tex_format;
   gst_gl_format_type_from_sized_gl_format (internal_format, &tex_format,
       &tex_type);
+  internal_format =
+      gst_gl_sized_gl_format_from_gl_format_type (context, tex_format,
+      tex_type);
 
   if (!gl_mem->texture_wrapped) {
     gl_mem->tex_id =
@@ -769,6 +772,9 @@ _gl_tex_copy_thread (GstGLContext * context, gpointer data)
     internal_format = copy_params->src->tex_format;
     gst_gl_format_type_from_sized_gl_format (internal_format, &out_gl_format,
         &out_gl_type);
+    internal_format =
+        gst_gl_sized_gl_format_from_gl_format_type (context, out_gl_format,
+        out_gl_type);
 
     copy_params->tex_id =
         _new_texture (context, out_tex_target,