cheese/cheese-2.23.91-let-gstreamer-choose-yuv-or-rgb.patch

46 lines
2.1 KiB
Diff

diff -up cheese-2.23.91/src/cheese-webcam.c.foo cheese-2.23.91/src/cheese-webcam.c
--- cheese-2.23.91/src/cheese-webcam.c.foo 2008-09-03 22:43:48.000000000 +0200
+++ cheese-2.23.91/src/cheese-webcam.c 2008-09-03 22:44:46.000000000 +0200
@@ -742,10 +742,13 @@ cheese_webcam_create_webcam_source_bin (
&framerate_denominator);
webcam_input = g_strdup_printf (
- "%s name=video_source device=%s ! capsfilter name=capsfilter caps=%s,width=%d,height=%d,framerate=%d/%d ! identity",
+ "%s name=video_source device=%s ! capsfilter name=capsfilter caps=video/x-raw-rgb,width=%d,height=%d,framerate=%d/%d;video/x-raw-yuv,width=%d,height=%d,framerate=%d/%d ! identity",
selected_webcam->gstreamer_src,
selected_webcam->video_device,
- format->mimetype,
+ format->width,
+ format->height,
+ framerate_numerator,
+ framerate_denominator,
format->width,
format->height,
framerate_numerator,
@@ -1541,7 +1544,7 @@ cheese_webcam_set_video_format (CheeseWe
find_highest_framerate (format, &framerate_numerator, &framerate_denominator);
- new_caps = gst_caps_new_simple (format->mimetype,
+ new_caps = gst_caps_new_simple ("video/x-raw-rgb",
"width", G_TYPE_INT,
format->width,
"height", G_TYPE_INT,
@@ -1551,6 +1554,16 @@ cheese_webcam_set_video_format (CheeseWe
framerate_denominator,
NULL);
+ gst_caps_append(new_caps, gst_caps_new_simple ("video/x-raw-yuv",
+ "width", G_TYPE_INT,
+ format->width,
+ "height", G_TYPE_INT,
+ format->height,
+ "framerate", GST_TYPE_FRACTION,
+ framerate_numerator,
+ framerate_denominator,
+ NULL));
+
priv->current_format = format;
cheese_webcam_stop (webcam);