CAIRO_FORMAT_ARGB32 is ARGB on big endian and BGRA on little endian.
static GstFlowReturn gst_gtk_sink_show_frame (GstVideoSink * bsink,
GstBuffer * buf);
+#if G_BYTE_ORDER == G_LITTLE_ENDIAN
+#define FORMATS "BGRA"
+#else
+#define FORMATS "ARGB"
+#endif
+
static GstStaticPadTemplate gst_gtk_sink_template =
GST_STATIC_PAD_TEMPLATE ("sink",
GST_PAD_SINK,
GST_PAD_ALWAYS,
- GST_STATIC_CAPS (GST_VIDEO_CAPS_MAKE ("BGRA"))
+ GST_STATIC_CAPS (GST_VIDEO_CAPS_MAKE (FORMATS))
);
#define DEFAULT_FORCE_ASPECT_RATIO TRUE
return FALSE;
/* FIXME: support other formats */
+#if G_BYTE_ORDER == G_LITTLE_ENDIAN
g_return_val_if_fail (GST_VIDEO_INFO_FORMAT (&v_info) ==
GST_VIDEO_FORMAT_BGRA, FALSE);
+#else
+ g_return_val_if_fail (GST_VIDEO_INFO_FORMAT (&v_info) ==
+ GST_VIDEO_FORMAT_ARGB, FALSE);
+#endif
g_mutex_lock (&widget->priv->lock);