diff --git a/.gitignore b/.gitignore index 7e6333b..2cc1864 100644 --- a/.gitignore +++ b/.gitignore @@ -25,3 +25,4 @@ cheese-2.31.1.tar.bz2 /cheese-3.4.1.tar.xz /cheese-3.5.1.tar.xz /cheese-3.5.2.tar.xz +/cheese-3.5.5.tar.xz diff --git a/0007-cheese-thumb-view-Don-t-set-columns-to-5000-in-horiz.patch b/0001-cheese-thumb-view-Don-t-set-columns-to-5000-in-horiz.patch similarity index 84% rename from 0007-cheese-thumb-view-Don-t-set-columns-to-5000-in-horiz.patch rename to 0001-cheese-thumb-view-Don-t-set-columns-to-5000-in-horiz.patch index 5b81351..961eda6 100644 --- a/0007-cheese-thumb-view-Don-t-set-columns-to-5000-in-horiz.patch +++ b/0001-cheese-thumb-view-Don-t-set-columns-to-5000-in-horiz.patch @@ -1,25 +1,25 @@ -From 4f6953de531316e0385aaace9ae5f2400e4451c8 Mon Sep 17 00:00:00 2001 +From 486bfc9c76ec05d469ec124407cbaa026544c620 Mon Sep 17 00:00:00 2001 From: Hans de Goede Date: Sun, 10 Jun 2012 14:50:54 +0200 -Subject: [PATCH] cheese-thumb-view: Don't set columns to 5000 in horizontal - mode +Subject: [PATCH 1/4] cheese-thumb-view: Don't set columns to 5000 in + horizontal mode Rather then assuming 5000 will be enough, just set the number of columns to the number of thumbnails we have. Signed-off-by: Hans de Goede --- - src/cheese-window.vala | 4 ++-- - src/thumbview/cheese-thumb-view.c | 21 ++++++++++++++++++++- - src/thumbview/cheese-thumb-view.h | 1 + - src/vapi/cheese-thumbview.vapi | 1 + + src/cheese-window.vala | 4 ++-- + src/thumbview/cheese-thumb-view.c | 21 ++++++++++++++++++++- + src/thumbview/cheese-thumb-view.h | 1 + + src/vapi/cheese-thumbview.vapi | 1 + 4 files changed, 24 insertions(+), 3 deletions(-) diff --git a/src/cheese-window.vala b/src/cheese-window.vala -index 12ef2e0..0ab0d2d 100644 +index 26f5524..cb4eeb4 100644 --- a/src/cheese-window.vala +++ b/src/cheese-window.vala -@@ -837,7 +837,7 @@ public class Cheese.MainWindow : Gtk.Window +@@ -724,7 +724,7 @@ public class Cheese.MainWindow : Gtk.ApplicationWindow if (is_wide_mode) { @@ -28,7 +28,7 @@ index 12ef2e0..0ab0d2d 100644 thumb_nav.set_vertical (true); if (thumbnails_bottom.get_child () != null) { -@@ -850,7 +850,7 @@ public class Cheese.MainWindow : Gtk.Window +@@ -737,7 +737,7 @@ public class Cheese.MainWindow : Gtk.ApplicationWindow } else { @@ -38,7 +38,7 @@ index 12ef2e0..0ab0d2d 100644 if (thumbnails_right.get_child () != null) { diff --git a/src/thumbview/cheese-thumb-view.c b/src/thumbview/cheese-thumb-view.c -index 49bc31a..243d325 100644 +index f4694f5..4ce8f56 100644 --- a/src/thumbview/cheese-thumb-view.c +++ b/src/thumbview/cheese-thumb-view.c @@ -51,6 +51,7 @@ typedef struct @@ -49,7 +49,7 @@ index 49bc31a..243d325 100644 guint n_items; guint idle_id; GQueue *thumbnails; -@@ -601,7 +602,10 @@ cheese_thumb_view_row_inserted_cb (GtkTreeModel *tree_model, +@@ -602,7 +603,10 @@ cheese_thumb_view_row_inserted_cb (GtkTreeModel *tree_model, CheeseThumbViewPrivate *priv = CHEESE_THUMB_VIEW_GET_PRIVATE (thumb_view); priv->n_items++; @@ -61,7 +61,7 @@ index 49bc31a..243d325 100644 } static void -@@ -616,6 +620,8 @@ cheese_thumb_view_row_deleted_cb (GtkTreeModel *tree_model, +@@ -617,6 +621,8 @@ cheese_thumb_view_row_deleted_cb (GtkTreeModel *tree_model, gtk_widget_set_size_request (GTK_WIDGET (thumb_view), THUMB_VIEW_MINIMUM_WIDTH, THUMB_VIEW_MINIMUM_HEIGHT); @@ -70,7 +70,7 @@ index 49bc31a..243d325 100644 } static void -@@ -684,6 +690,7 @@ cheese_thumb_view_constructed (GObject *object) +@@ -685,6 +691,7 @@ cheese_thumb_view_constructed (GObject *object) THUMBNAIL_BASENAME_URL_COLUMN, GTK_SORT_ASCENDING); cheese_thumb_view_fill (thumb_view); @@ -78,7 +78,7 @@ index 49bc31a..243d325 100644 } GtkWidget * -@@ -696,6 +703,18 @@ cheese_thumb_view_new () +@@ -697,6 +704,18 @@ cheese_thumb_view_new () } void @@ -122,5 +122,5 @@ index 669b724..61b323e 100644 public void start_monitoring_video_path (string path_videos); } -- -1.7.10.2 +1.7.11.4 diff --git a/0002-Setup-vp8enc-in-a-way-suitable-for-realtime-encoding.patch b/0002-Setup-vp8enc-in-a-way-suitable-for-realtime-encoding.patch new file mode 100644 index 0000000..378f693 --- /dev/null +++ b/0002-Setup-vp8enc-in-a-way-suitable-for-realtime-encoding.patch @@ -0,0 +1,87 @@ +From 09c6b1c1f17ad20c87a3bee7c4665bb6ef34a211 Mon Sep 17 00:00:00 2001 +From: Hans de Goede +Date: Wed, 22 Aug 2012 10:32:08 +0200 +Subject: [PATCH 2/4] Setup vp8enc in a way suitable for realtime encoding + +Note that upstream has nacked this patch wanting to fix it instead by +using a realtime vp8enc preset, and teaching vp8enc to automatically pick +a number of threads when threads == 0, see: +https://bugzilla.gnome.org/show_bug.cgi?id=678447 + +Although that would indeed be better, unfortunately code for neither exists +atm, so for now we carry this patch in Fedora, since it makes the difference +between making recordings in cheese working or not working. + +Signed-off-by: Hans de Goede +--- + libcheese/cheese-camera.c | 26 +++++++++++++++++++++----- + 1 file changed, 21 insertions(+), 5 deletions(-) + +diff --git a/libcheese/cheese-camera.c b/libcheese/cheese-camera.c +index af073f3..d41a669 100644 +--- a/libcheese/cheese-camera.c ++++ b/libcheese/cheese-camera.c +@@ -32,6 +32,7 @@ + #include + #include + #include ++#include + + #include "cheese-camera.h" + #include "cheese-camera-device.h" +@@ -444,6 +445,7 @@ cheese_camera_set_video_recording (CheeseCamera *camera, GError **error) + CheeseCameraPrivate *priv = camera->priv; + GstElement *video_enc; + GstElement *mux; ++ int n_threads; + + g_return_if_fail (error == NULL || *error == NULL); + +@@ -453,11 +455,18 @@ cheese_camera_set_video_recording (CheeseCamera *camera, GError **error) + return; + } + g_object_set (priv->camerabin, "video-encoder", video_enc, NULL); +- /* Use a preset, or set some reasonable defaults. */ +- if (!gst_preset_load_preset (GST_PRESET (video_enc), "Profile Realtime")) +- { +- g_object_set (G_OBJECT (video_enc), "max-latency", 1, "speed", 2, NULL); +- } ++ ++ /* Since we do realtime encoding setup the encoder for speed without ++ sacrificing too much quality */ ++ g_object_set (G_OBJECT (video_enc), "max-latency", 1, NULL); ++ g_object_set (G_OBJECT (video_enc), "speed", 6, NULL); ++#ifdef _SC_NPROCESSORS_ONLN ++ n_threads = sysconf (_SC_NPROCESSORS_ONLN); /* includes hyper-threading */ ++ n_threads = MIN (n_threads, 64); ++#else ++ n_threads = 3; ++#endif ++ g_object_set (G_OBJECT (video_enc), "threads", n_threads, NULL); + + if ((mux = gst_element_factory_make ("webmmux", "webmmux")) == NULL) + { +@@ -692,6 +701,7 @@ cheese_camera_play (CheeseCamera *camera) + { + CheeseCameraPrivate *priv; + CheeseCameraDevice *device; ++ GObject *video_enc; + GstCaps *caps; + + g_return_if_fail (CHEESE_IS_CAMERA (camera)); +@@ -714,6 +724,12 @@ cheese_camera_play (CheeseCamera *camera) + g_signal_emit_by_name (priv->camerabin, "set-video-resolution-fps", + priv->current_format->width, + priv->current_format->height, 0, 1, 0); ++ if (priv->current_format->width >= 1280 && ++ priv->current_format->height >= 720) ++ { ++ g_object_get (priv->camerabin, "video-encoder", &video_enc, NULL); ++ g_object_set (video_enc, "token-parts", 2, NULL); ++ } + } + gst_caps_unref (caps); + +-- +1.7.11.4 + diff --git a/0003-Fix-cheese_camera_device_update_format_table-going-i.patch b/0003-Fix-cheese_camera_device_update_format_table-going-i.patch new file mode 100644 index 0000000..d043654 --- /dev/null +++ b/0003-Fix-cheese_camera_device_update_format_table-going-i.patch @@ -0,0 +1,45 @@ +From 9c2b429ec0b027657c0767103fbbfebbc8a992ed Mon Sep 17 00:00:00 2001 +From: Hans de Goede +Date: Wed, 22 Aug 2012 10:02:08 +0200 +Subject: [PATCH 3/4] Fix cheese_camera_device_update_format_table() going + into an infinite loop + +Some devices report a very small min_width / height down to reporting +0x0 as minimum resolution, which causes an infinte loop in +cheese_camera_device_update_format_table(). + +This patch limits the minimum resultion to 160x120, both to fix the +infinite loop issue, and to remove ridiculous resolutions such as +2x2, 5x3, 11x7, 22x15 etc. which are seen in the resolution drop down on +some devices. + +For more details on the infinite loop issue, see: +https://bugzilla.redhat.com/show_bug.cgi?id=850505 + +Signed-off-by: Hans de Goede +--- + libcheese/cheese-camera-device.c | 8 ++++++++ + 1 file changed, 8 insertions(+) + +diff --git a/libcheese/cheese-camera-device.c b/libcheese/cheese-camera-device.c +index 9b977a4..653cba9 100644 +--- a/libcheese/cheese-camera-device.c ++++ b/libcheese/cheese-camera-device.c +@@ -296,6 +296,14 @@ cheese_camera_device_update_format_table (CheeseCameraDevice *device) + min_height = gst_value_get_int_range_min (height); + max_height = gst_value_get_int_range_max (height); + ++ /* Some devices report a very small min_width / height down to reporting ++ * 0x0 as minimum resolution, which causes an infinte loop below, limit ++ * these to something reasonable. */ ++ if (min_width < 160) ++ min_width = 160; ++ if (min_height < 120) ++ min_height = 120; ++ + cur_width = min_width; + cur_height = min_height; + +-- +1.7.11.4 + diff --git a/0003-main-window-ui-Fix-images-missing-from-effect-button.patch b/0003-main-window-ui-Fix-images-missing-from-effect-button.patch deleted file mode 100644 index ddc0799..0000000 --- a/0003-main-window-ui-Fix-images-missing-from-effect-button.patch +++ /dev/null @@ -1,50 +0,0 @@ -From 8a707dacf8615f88615a53ffe6eeb1ad65d94967 Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Wed, 6 Jun 2012 11:23:47 +0200 -Subject: [PATCH 3/4] main-window-ui: Fix images missing from effect buttons - -Commit 4cb11731e62b51c684993e43000c933ea97785c2 fixed the images missing from -the photo / video / burst buttons, but the same problem also affects the -previous effects-page, effects, next effects-page buttons. This patch fixes -them too. - -Note that unlike the commit message of commit 4cb11731 suggest this -not only fixes the printing of warnings to the console, it also fixes -the pixmaps actually missing from the buttons. - -Signed-off-by: Hans de Goede ---- - data/cheese-main-window.ui | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/data/cheese-main-window.ui b/data/cheese-main-window.ui -index bdc84c5..b0760bd 100644 ---- a/data/cheese-main-window.ui -+++ b/data/cheese-main-window.ui -@@ -126,6 +126,7 @@ - 0 - - -+ False - effects_page_prev - 32 - GTK_RELIEF_NONE -@@ -141,6 +142,7 @@ - - False - False -+ False - effects_toggle - Effects - -@@ -165,6 +167,7 @@ - - - -+ False - effects_page_next - 32 - GTK_RELIEF_NONE --- -1.7.10.2 - diff --git a/0004-Ensure-width-is-a-multiple-of-8-and-height-a-multipl.patch b/0004-Ensure-width-is-a-multiple-of-8-and-height-a-multipl.patch new file mode 100644 index 0000000..4fd082a --- /dev/null +++ b/0004-Ensure-width-is-a-multiple-of-8-and-height-a-multipl.patch @@ -0,0 +1,73 @@ +From 121fd6f5355b5e56fa21004f030fe02eb1de7ae7 Mon Sep 17 00:00:00 2001 +From: Hans de Goede +Date: Wed, 22 Aug 2012 10:58:57 +0200 +Subject: [PATCH 4/4] Ensure width is a multiple of 8, and height a multiple + of 2 + +We ask Gstreamer to us an YUV format in the pipeline, by setting the +camera-bins "filter-caps" to "video/x-raw-yuv", and gstreamer demands +of yuv format frames that their width is a multiple of 8, and their height +a multiple of 2. + +Previous to this patch my bttv tvcard lists the following resolutions in +cheese: +924x576 (*) +920x576 +640x480 +462x288 (*) +460x288 (*) +320x240 +231x144 (*) +230x144 (*) +160x120 + +Where all the ones marked with an asterisk don't work. + +After this patch the list is: +920x576 +640x480 +456x288 +320x240 +224x144 +160x120 + +And all work. + +Signed-off-by: Hans de Goede +--- + libcheese/cheese-camera-device.c | 12 ++++++++---- + 1 file changed, 8 insertions(+), 4 deletions(-) + +diff --git a/libcheese/cheese-camera-device.c b/libcheese/cheese-camera-device.c +index 653cba9..370abff 100644 +--- a/libcheese/cheese-camera-device.c ++++ b/libcheese/cheese-camera-device.c +@@ -313,8 +313,10 @@ cheese_camera_device_update_format_table (CheeseCameraDevice *device) + { + CheeseVideoFormat *format = g_slice_new0 (CheeseVideoFormat); + +- format->width = cur_width; +- format->height = cur_height; ++ /* Gstreamer wants resolutions for YUV formats where the width is ++ * a multiple of 8, and the height is a multiple of 2 */ ++ format->width = cur_width & ~7; ++ format->height = cur_height & ~1; + + cheese_camera_device_add_format (device, format); + +@@ -328,8 +330,10 @@ cheese_camera_device_update_format_table (CheeseCameraDevice *device) + { + CheeseVideoFormat *format = g_slice_new0 (CheeseVideoFormat); + +- format->width = cur_width; +- format->height = cur_height; ++ /* Gstreamer wants resolutions for YUV formats where the width is ++ * a multiple of 8, and the height is a multiple of 2 */ ++ format->width = cur_width & ~7; ++ format->height = cur_height & ~1; + + cheese_camera_device_add_format (device, format); + +-- +1.7.11.4 + diff --git a/0004-camera-device-monitor-Don-t-add-NULL-devices-to-the-.patch b/0004-camera-device-monitor-Don-t-add-NULL-devices-to-the-.patch deleted file mode 100644 index c27f42c..0000000 --- a/0004-camera-device-monitor-Don-t-add-NULL-devices-to-the-.patch +++ /dev/null @@ -1,35 +0,0 @@ -From ab319f83cd02e1a75c4d546deaefb27da70b51e6 Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Tue, 5 Jun 2012 14:54:13 +0200 -Subject: [PATCH 4/4] camera-device-monitor: Don't add NULL devices to the - camera list - -cheese_camera_device_monitor_set_up_device() will return NULL for non -video devices (ie vbi & radio devices). Emitting the added signal with -such a NULL device, causes it to get added to the camera list, which later -on causes cheese to crash. - -This patch fixes this by not emitting the added signal for non camera devices. - -Signed-off-by: Hans de Goede ---- - libcheese/cheese-camera-device-monitor.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/libcheese/cheese-camera-device-monitor.c b/libcheese/cheese-camera-device-monitor.c -index d8b5a10..aa723c7 100644 ---- a/libcheese/cheese-camera-device-monitor.c -+++ b/libcheese/cheese-camera-device-monitor.c -@@ -214,7 +214,8 @@ cheese_camera_device_monitor_added (CheeseCameraDeviceMonitor *monitor, - GUdevDevice *udevice) - { - CheeseCameraDevice *device = cheese_camera_device_monitor_set_up_device (udevice); -- g_signal_emit (monitor, monitor_signals[ADDED], 0, device); -+ if (device) -+ g_signal_emit (monitor, monitor_signals[ADDED], 0, device); - } - - /* --- -1.7.10.2 - diff --git a/0005-cheese-camera-Don-t-overwrite-camerabin-s-default-fl.patch b/0005-cheese-camera-Don-t-overwrite-camerabin-s-default-fl.patch deleted file mode 100644 index 26a5ab1..0000000 --- a/0005-cheese-camera-Don-t-overwrite-camerabin-s-default-fl.patch +++ /dev/null @@ -1,61 +0,0 @@ -From 90d318aadb255be77c7e27764716df6cd5a1fe0e Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Fri, 8 Jun 2012 23:18:32 +0200 -Subject: [PATCH] cheese-camera: Don't overwrite camerabin's default flags - -The comment above this code said: "Set flags to enable conversions", but -camerabin has conversion enabled in the necessary places by default, all -the code does is add an extra, unneeded ffmpegcsp element at the beginning -of the pipeline. - -This results in a huge number of reported caps on pads further down the -pipeline, which when intersected with input caps of later ffmpegcsp elements -leads to an explosion of possible combinations and gst_caps_intersect_full -starts consuming the cpu for 100% for seconds (various Fedora users have -reported startup delays of upto a minute). - -On my test system, with a Logitech webcam 9000 pro, the time to create -the camerabin pipeline (not start, not configure, just create!) drops -from 7 seconds to 0.7 seconds by elimenating the unnecessary ffmpegcsp -element at the beginning of the pipe. - -The only reason the ffmpegcsp element this patch removes could be useful -would be for cameras producing only jpeg data, but since cheese always uses -v4l2src, and that should always be compiled with libv4l2 support (otherwise -a lot of camera specific video formats will not be understood), libv4l2 will -take care of jpeg decompression, so there really is no reason for having -this extra element, and thus no reason to override the default camerabin -flags. - -Signed-off-by: Hans de Goede ---- - libcheese/cheese-camera.c | 12 ------------ - 1 file changed, 12 deletions(-) - -diff --git a/libcheese/cheese-camera.c b/libcheese/cheese-camera.c -index 7b8eb70..73cda1a 100644 ---- a/libcheese/cheese-camera.c -+++ b/libcheese/cheese-camera.c -@@ -1494,19 +1494,7 @@ cheese_camera_setup (CheeseCamera *camera, const gchar *uuid, GError **error) - g_object_set (G_OBJECT (video_sink), "async", FALSE, NULL); - g_object_set (G_OBJECT (priv->camerabin), "viewfinder-sink", video_sink, NULL); - -- /* Set flags to enable conversions*/ -- -- g_object_set (G_OBJECT (priv->camerabin), "flags", -- GST_CAMERABIN_FLAG_SOURCE_RESIZE | -- GST_CAMERABIN_FLAG_SOURCE_COLOR_CONVERSION | -- GST_CAMERABIN_FLAG_VIEWFINDER_SCALE | -- GST_CAMERABIN_FLAG_AUDIO_CONVERSION | -- GST_CAMERABIN_FLAG_IMAGE_COLOR_CONVERSION | -- GST_CAMERABIN_FLAG_VIDEO_COLOR_CONVERSION, -- NULL); -- - /* Set caps to filter, so it doesn't defaults to I420 format*/ -- - caps = gst_caps_from_string ("video/x-raw-yuv; video/x-raw-rgb"); - g_object_set (G_OBJECT (priv->camerabin), "filter-caps", caps, NULL); - gst_caps_unref (caps); --- -1.7.10.2 - diff --git a/0006-cheese-thumb-view-Don-t-add-0-sized-files-to-the-thu.patch b/0006-cheese-thumb-view-Don-t-add-0-sized-files-to-the-thu.patch deleted file mode 100644 index 41d763f..0000000 --- a/0006-cheese-thumb-view-Don-t-add-0-sized-files-to-the-thu.patch +++ /dev/null @@ -1,48 +0,0 @@ -From 176a3f264f6a8eb08ca5ec9dc300198f591ac1b7 Mon Sep 17 00:00:00 2001 -From: Hans de Goede -Date: Sat, 9 Jun 2012 00:06:20 +0200 -Subject: [PATCH] cheese-thumb-view: Don't add 0 sized files to the thumb view - -Sometimes, ie when cheese crashes when starting to record, something which -we need to fix, 0 bytes large files are created under ~/Videos/Webcam. - -totem-video-thumbnailer does not like these, getting stuck for approx a minute -on them, I've filed a bug for this here: -https://bugzilla.gnome.org/show_bug.cgi?id=677734 - -But even with this bug fixed, trying to add 0 byte sized files to the -thumb view makes no sense, and in the mean time it also neatly works -around this totem-video-thumbnailer bug. - -Signed-off-by: Hans de Goede ---- - src/thumbview/cheese-thumb-view.c | 10 ++++++++++ - 1 file changed, 10 insertions(+) - -diff --git a/src/thumbview/cheese-thumb-view.c b/src/thumbview/cheese-thumb-view.c -index 5c06ff3..49bc31a 100644 ---- a/src/thumbview/cheese-thumb-view.c -+++ b/src/thumbview/cheese-thumb-view.c -@@ -197,9 +197,19 @@ cheese_thumb_view_append_item (CheeseThumbView *thumb_view, GFile *file) - char *filename, *basename, *col_filename; - GError *error = NULL; - gboolean skip = FALSE; -+ GFileInfo *info; -+ goffset size; - - CheeseThumbViewIdleData *data; - -+ info = g_file_query_info (file, G_FILE_ATTRIBUTE_STANDARD_SIZE, 0, NULL, -+ NULL); -+ size = g_file_info_get_size(info); -+ g_object_unref (info); -+ -+ if (size == 0) -+ return; -+ - filename = g_file_get_path (file); - - if (!(g_str_has_suffix (filename, CHEESE_PHOTO_NAME_SUFFIX)) --- -1.7.10.2 - diff --git a/0008-cheese-optimize-encoding.patch b/0008-cheese-optimize-encoding.patch deleted file mode 100644 index abeec14..0000000 --- a/0008-cheese-optimize-encoding.patch +++ /dev/null @@ -1,58 +0,0 @@ ---- cheese-3.4.2.orig/libcheese/cheese-camera.c 2012-06-19 23:03:38.976989128 +0200 -+++ cheese-3.4.2/libcheese/cheese-camera.c 2012-06-19 23:04:22.697442542 +0200 -@@ -32,6 +32,7 @@ - #include - #include - #include -+#include - - #include "cheese-camera.h" - #include "cheese-camera-device.h" -@@ -444,6 +445,7 @@ - CheeseCameraPrivate *priv = camera->priv; - GstElement *video_enc; - GstElement *mux; -+ int n_threads; - - g_return_if_fail (error == NULL || *error == NULL); - -@@ -453,7 +455,17 @@ - return; - } - g_object_set (priv->camerabin, "video-encoder", video_enc, NULL); -- g_object_set (G_OBJECT (video_enc), "speed", 2, NULL); -+ -+ /* Since we do realtime encoding setup the encoder for speed without -+ sacrificing too much quality */ -+ g_object_set (G_OBJECT (video_enc), "speed", 6, NULL); -+#ifdef _SC_NPROCESSORS_ONLN -+ n_threads = sysconf (_SC_NPROCESSORS_ONLN); /* includes hyper-threading */ -+ n_threads = MIN (n_threads, 64); -+#else -+ n_threads = 3; -+#endif -+ g_object_set (G_OBJECT (video_enc), "threads", n_threads, NULL); - - if ((mux = gst_element_factory_make ("webmmux", "webmmux")) == NULL) - { -@@ -688,6 +702,7 @@ - { - CheeseCameraPrivate *priv; - CheeseCameraDevice *device; -+ GObject *video_enc; - GstCaps *caps; - - g_return_if_fail (CHEESE_IS_CAMERA (camera)); -@@ -710,6 +725,12 @@ - g_signal_emit_by_name (priv->camerabin, "set-video-resolution-fps", - priv->current_format->width, - priv->current_format->height, 0, 1, 0); -+ if (priv->current_format->width >= 1280 && -+ priv->current_format->height >= 720) -+ { -+ g_object_get (priv->camerabin, "video-encoder", &video_enc, NULL); -+ g_object_set (video_enc, "token-parts", 2, NULL); -+ } - } - gst_caps_unref (caps); - diff --git a/cheese.spec b/cheese.spec index 31f1743..68ca942 100644 --- a/cheese.spec +++ b/cheese.spec @@ -1,7 +1,7 @@ Name: cheese Epoch: 2 -Version: 3.5.2 -Release: 6%{?dist} +Version: 3.5.5 +Release: 1%{?dist} Summary: Application for taking pictures and movies from a webcam Group: Amusements/Graphics @@ -9,18 +9,13 @@ License: GPLv2+ URL: http://projects.gnome.org/cheese/ #VCS: git:git://git.gnome.org/cheese Source0: http://download.gnome.org/sources/cheese/3.5/%{name}-%{version}.tar.xz -# https://bugzilla.gnome.org/show_bug.cgi?id=677543 -Patch3: 0003-main-window-ui-Fix-images-missing-from-effect-button.patch -# https://bugzilla.gnome.org/show_bug.cgi?id=677544 -Patch4: 0004-camera-device-monitor-Don-t-add-NULL-devices-to-the-.patch -# https://bugzilla.gnome.org/show_bug.cgi?id=677731 -Patch5: 0005-cheese-camera-Don-t-overwrite-camerabin-s-default-fl.patch -# https://bugzilla.gnome.org/show_bug.cgi?id=677735 -Patch6: 0006-cheese-thumb-view-Don-t-add-0-sized-files-to-the-thu.patch # https://bugzilla.gnome.org/show_bug.cgi?id=678446 -Patch7: 0007-cheese-thumb-view-Don-t-set-columns-to-5000-in-horiz.patch +Patch1: 0001-cheese-thumb-view-Don-t-set-columns-to-5000-in-horiz.patch # https://bugzilla.gnome.org/show_bug.cgi?id=678447 -Patch8: 0008-cheese-optimize-encoding.patch +Patch2: 0002-Setup-vp8enc-in-a-way-suitable-for-realtime-encoding.patch +# https://bugzilla.redhat.com/show_bug.cgi?id=850505 +Patch3: 0003-Fix-cheese_camera_device_update_format_table-going-i.patch +Patch4: 0004-Ensure-width-is-a-multiple-of-8-and-height-a-multipl.patch BuildRequires: gtk3-devel >= 3.0.0 BuildRequires: gstreamer-devel >= 0.10.23 @@ -79,12 +74,10 @@ for writing applications that require a webcam display widget. %prep %setup -q +%patch1 -p1 +%patch2 -p1 %patch3 -p1 %patch4 -p1 -%patch5 -p1 -%patch6 -p1 -%patch7 -p1 -%patch8 -p1 %build @@ -160,6 +153,11 @@ glib-compile-schemas %{_datadir}/glib-2.0/schemas &> /dev/null || : %{_datadir}/gir-1.0/Cheese-3.0.gir %changelog +* Wed Aug 22 2012 Hans de Goede - 2:3.5.5-1 +- New upstream release 3.5.5 +- Fix cheese crashing on tvcards which report they can capture 0x0 as + minimum resolution (rhbz#850505) + * Tue Aug 21 2012 Brian Pepple - 2:3.5.2-6 - Rebuild for new libcogl. diff --git a/sources b/sources index 3051006..edede5d 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -b8bdb32b0ed4f37ae1e1306136a49e3b cheese-3.5.2.tar.xz +1f329e47244e46111cba2ea0d2b6c7ac cheese-3.5.5.tar.xz