Fix compatibility with glfilterbin, glvideoflip

glfilterbin is the standard way of using OpenGL filters, let's stick
to the standard. This also solves an incompatibility with glvideoflip
where output box was incorrectly drawn when glvideoflip rotated the
buffer upstream.

Change-Id: I012efa7519b1d6949c7064b8039830221e1d9021
diff --git a/edgetpuvision/pipelines.py b/edgetpuvision/pipelines.py
index 421db0c..95eaa50 100644
--- a/edgetpuvision/pipelines.py
+++ b/edgetpuvision/pipelines.py
@@ -36,9 +36,7 @@
 def inference_pipeline(layout, stillimage=False):
     size = max_inner_size(layout.render_size, layout.inference_size)
     return [
-        Filter('glupload'),
-        Filter('glbox'),
-        Filter('gldownload'),
+        Filter('glfilterbin', filter='glbox'),
         Caps('video/x-raw', format='RGB', width=layout.inference_size.width, height=layout.inference_size.height),
         Sink('app', name='appsink', emit_signals=True, max_buffers=1, drop=True, sync=False),
     ]
diff --git a/plugins/glbox.py b/plugins/glbox.py
index 4ecb0d3..1f44039 100644
--- a/plugins/glbox.py
+++ b/plugins/glbox.py
@@ -37,8 +37,7 @@
 SINK_CAPS = 'video/x-raw(memory:GLMemory),format=RGBA,width=[1,{max_int}],height=[1,{max_int}],texture-target=2D'
 SINK_CAPS = Gst.Caps.from_string(SINK_CAPS.format(max_int=GLib.MAXINT))
 
-SRC_CAPS = 'video/x-raw(memory:GLMemory),format=RGB,width=[1,{max_int}],height=[1,{max_int}],texture-target=2D'
-SRC_CAPS += '; video/x-raw(memory:GLMemory),format=RGBA,width=[1,{max_int}],height=[1,{max_int}],texture-target=2D'
+SRC_CAPS = 'video/x-raw(memory:GLMemory),format=RGBA,width=[1,{max_int}],height=[1,{max_int}],texture-target=2D'
 SRC_CAPS = Gst.Caps.from_string(SRC_CAPS.format(max_int=GLib.MAXINT))
 
 VERTEX_SHADER = '''