--- /dev/null
+From faec2f8b60cb8b01dacb7e3dd22367dda3ea5d94 Mon Sep 17 00:00:00 2001
+From: Carlos Rafael Giani <dv@pseudoterminal.org>
+Date: Wed, 7 Jun 2017 20:15:24 +0200
+Subject: [PATCH] v4l2videodec: Hack to make sure DMABUF is the default capture
+ io mode
+
+This is necessary to guarantee that zerocopy is used for video decoding.
+Zerocopy requires dmabuf usage. And without zerocopy, video playback is
+slow because pixels get copied by the CPU.
+
+Upstream is already working on a better solution that sets dmabuf as
+default: https://bugzilla.gnome.org/show_bug.cgi?id=779466
+
+Upstream-Status: Inapproproate [i.MX/CODA specific hack]
+---
+ sys/v4l2/gstv4l2videodec.c | 9 +++++++++
+ 1 file changed, 9 insertions(+)
+
+diff --git a/sys/v4l2/gstv4l2videodec.c b/sys/v4l2/gstv4l2videodec.c
+index 2c07c30..4c7b1e6 100644
+--- a/sys/v4l2/gstv4l2videodec.c
++++ b/sys/v4l2/gstv4l2videodec.c
+@@ -898,6 +898,15 @@ gst_v4l2_video_dec_subinstance_init (GTypeInstance * instance, gpointer g_class)
+ gst_v4l2_get_input, gst_v4l2_set_input, NULL);
+ self->v4l2capture->no_initial_format = TRUE;
+ self->v4l2output->keep_aspect = FALSE;
++
++ /* XXX Hack to make sure dmabuf is used as default for capture io mode */
++ {
++ GValue val = G_VALUE_INIT;
++ g_value_init (&val, GST_TYPE_V4L2_IO_MODE);
++ g_value_set_enum (&val, GST_V4L2_IO_DMABUF);
++ gst_v4l2_object_set_property_helper (self->v4l2capture,
++ PROP_CAPTURE_IO_MODE, &val, NULL);
++ }
+ }
+
+ static void
+--
+2.7.4
+