summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ext/gtk/gstgtksink.c8
-rw-r--r--ext/gtk/gtkgstwidget.c5
2 files changed, 12 insertions, 1 deletions
diff --git a/ext/gtk/gstgtksink.c b/ext/gtk/gstgtksink.c
index be5bf15e7..baf495088 100644
--- a/ext/gtk/gstgtksink.c
+++ b/ext/gtk/gstgtksink.c
@@ -51,11 +51,17 @@ static gboolean gst_gtk_sink_set_caps (GstBaseSink * bsink, GstCaps * caps);
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
diff --git a/ext/gtk/gtkgstwidget.c b/ext/gtk/gtkgstwidget.c
index ac3e5a9e0..2f4b0bf10 100644
--- a/ext/gtk/gtkgstwidget.c
+++ b/ext/gtk/gtkgstwidget.c
@@ -431,8 +431,13 @@ gtk_gst_widget_set_caps (GtkGstWidget * widget, GstCaps * caps)
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);