diff --cc libcheese/cheese-camera-device.c
index e994c5f5,8f1e13af..00000000
--- a/libcheese/cheese-camera-device.c
+++ b/libcheese/cheese-camera-device.c
@@@ -181,18 -219,8 +181,19 @@@ cheese_camera_device_filter_caps (Chees
{
GstCaps *filter;
GstCaps *allowed;
+ gsize i;
+
+ filter = gst_caps_new_empty ();
- filter = format_caps (formats);
+ for (i = 0; formats[i] != NULL; i++)
+ {
+ gst_caps_append (filter,
+ gst_caps_new_simple (formats[i],
+ "framerate", GST_TYPE_FRACTION_RANGE,
+ 0, 1, CHEESE_MAXIMUM_RATE, 1,
++ "format", G_TYPE_STRING, "YUY2",
+ NULL));
+ }
allowed = gst_caps_intersect (caps, filter);
diff --git a/libcheese/cheese-camera-device-monitor.c b/libcheese/cheese-camera-device-monitor.c
index 5b4b43b5..a15733bd 100644
--- a/libcheese/cheese-camera-device-monitor.c
+++ b/libcheese/cheese-camera-device-monitor.c
@@ -294,7 +294,7 @@ initable_init (GInitable *initable,
gst_bus_add_watch (bus, cheese_camera_device_monitor_bus_func, monitor);
gst_object_unref (bus);
- caps = gst_caps_new_empty_simple ("video/x-raw");
+ caps = gst_caps_new_simple ("video/x-raw", "format", G_TYPE_STRING, "YUY2", NULL);
gst_device_monitor_add_filter (priv->monitor, "Video/Source", caps);
gst_caps_unref (caps);