Compare commits

..

No commits in common. "c8" and "c9-beta" have entirely different histories.
c8 ... c9-beta

7 changed files with 346 additions and 112 deletions

View File

@ -1 +1 @@
b135c33058271cef7be1422c939a924e7146187f SOURCES/cheese-3.28.0.tar.xz
fef15ebb2dbe80d255de80cdbdfcd0bcd31f4850 SOURCES/cheese-3.38.0.tar.xz

2
.gitignore vendored
View File

@ -1 +1 @@
SOURCES/cheese-3.28.0.tar.xz
SOURCES/cheese-3.38.0.tar.xz

View File

@ -0,0 +1,88 @@
From e7046d564a6f76c1af8f5640ac9c569e07284ec0 Mon Sep 17 00:00:00 2001
From: Bastien Nocera <hadess@hadess.net>
Date: Fri, 18 Sep 2020 12:06:45 +0200
Subject: [PATCH] Fix infinite loop if thumbnailer is not available
The code in cheese_thumb_view_idle_append_item() in
src/thumbview/cheese-thumb-view.c didn't pop the list of items to
thumbnail if thumbnailing failed.
#0 0x00007f4a60e55314 in open64 () at /lib64/libc.so.6
#1 0x00007f4a60de6386 in _IO_file_open () at /lib64/libc.so.6
#2 0x00007f4a60de655a in __GI__IO_file_fopen () at /lib64/libc.so.6
#3 0x00007f4a60dd9aad in __fopen_internal () at /lib64/libc.so.6
#4 0x00007f4a6157a43f in gdk_pixbuf_new_from_file () at /lib64/libgdk_pixbuf-2.0.so.0
#5 0x00007f4a61e84b3a in gnome_desktop_thumbnail_factory_lookup () at /lib64/libgnome-desktop-3.so.19
#6 0x000055cef476046f in cheese_thumb_view_idle_append_item ()
#7 0x00007f4a6124f47b in g_idle_dispatch () at /lib64/libglib-2.0.so.0
#8 0x00007f4a612537af in g_main_context_dispatch () at /lib64/libglib-2.0.so.0
#9 0x00007f4a61253b38 in g_main_context_iterate.constprop () at /lib64/libglib-2.0.so.0
#10 0x00007f4a61253c03 in g_main_context_iteration () at /lib64/libglib-2.0.so.0
#11 0x00007f4a6146a7ca in g_application_run () at /lib64/libgio-2.0.so.0
#12 0x000055cef4758547 in _vala_main ()
#13 0x00007f4a60d8a042 in __libc_start_main () at /lib64/libc.so.6
#14 0x000055cef47554be in _start ()
#0 0x00007f4a60ec562d in __strlen_avx2 () at /lib64/libc.so.6
#1 0x00007f4a61275de8 in g_str_has_suffix () at /lib64/libglib-2.0.so.0
#2 0x00007f4a618c0072 in icon_name_is_symbolic () at /lib64/libgtk-3.so.0
#3 0x00007f4a618c00b1 in theme_dir_get_icon_suffix () at /lib64/libgtk-3.so.0
#4 0x00007f4a618c32ed in theme_lookup_icon () at /lib64/libgtk-3.so.0
#5 0x00007f4a618c3adf in real_choose_icon () at /lib64/libgtk-3.so.0
#6 0x00007f4a618c4762 in gtk_icon_theme_lookup_icon_for_scale () at /lib64/libgtk-3.so.0
#7 0x00007f4a618c5105 in gtk_icon_theme_load_icon_for_scale () at /lib64/libgtk-3.so.0
#8 0x000055cef47605c9 in cheese_thumb_view_idle_append_item ()
#9 0x00007f4a6124f47b in g_idle_dispatch () at /lib64/libglib-2.0.so.0
#10 0x00007f4a612537af in g_main_context_dispatch () at /lib64/libglib-2.0.so.0
#11 0x00007f4a61253b38 in g_main_context_iterate.constprop () at /lib64/libglib-2.0.so.0
#12 0x00007f4a61253c03 in g_main_context_iteration () at /lib64/libglib-2.0.so.0
#13 0x00007f4a6146a7d8 in g_application_run () at /lib64/libgio-2.0.so.0
#14 0x000055cef4758547 in _vala_main ()
#15 0x00007f4a60d8a042 in __libc_start_main () at /lib64/libc.so.6
#16 0x000055cef47554be in _start ()
Closes: #81
---
src/thumbview/cheese-thumb-view.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/src/thumbview/cheese-thumb-view.c b/src/thumbview/cheese-thumb-view.c
index 1d2d88f5..232fd4b6 100644
--- a/src/thumbview/cheese-thumb-view.c
+++ b/src/thumbview/cheese-thumb-view.c
@@ -92,7 +92,7 @@ GtkWidget * cheese_thumb_view_new (void);
static gboolean
cheese_thumb_view_idle_append_item (gpointer data)
{
- CheeseThumbViewIdleData *item = g_queue_peek_head (data);
+ CheeseThumbViewIdleData *item = g_queue_pop_head (data);
CheeseThumbView *thumb_view;
CheeseThumbViewPrivate *priv;
@@ -119,6 +119,7 @@ cheese_thumb_view_idle_append_item (gpointer data)
if (!info)
{
g_warning ("Invalid filename\n");
+ g_slice_free (CheeseThumbViewIdleData, item);
return TRUE;
}
g_file_info_get_modification_time (info, &mtime);
@@ -167,6 +168,7 @@ cheese_thumb_view_idle_append_item (gpointer data)
if (error)
{
g_warning ("%s", error->message);
+ g_slice_free (CheeseThumbViewIdleData, item);
return TRUE;
}
}
@@ -183,7 +185,6 @@ cheese_thumb_view_idle_append_item (gpointer data)
g_object_unref (pixbuf);
g_object_unref (file);
g_slice_free (CheeseThumbViewIdleData, item);
- g_queue_pop_head (data);
return TRUE;
}
--
2.28.0

View File

@ -1,49 +0,0 @@
From 446da7884914d471ce50f8b327edddbaf0d75ccb Mon Sep 17 00:00:00 2001
From: esoleyman <emil@soleyman.com>
Date: Fri, 24 May 2019 15:25:02 -0500
Subject: [PATCH] Fix the accelerators
The thumbnail view did not allow users to execute commands such as open,
save as, trash, or delete for one or more photo / video thumbnails using
keyboard shortcuts such as ctrl+o, ctrl+s, etc...
https://gitlab.gnome.org/GNOME/cheese/issues/9
---
src/cheese-application.vala | 2 +-
src/cheese-window.vala | 7 +++++++
2 files changed, 8 insertions(+), 1 deletion(-)
diff --git a/src/cheese-application.vala b/src/cheese-application.vala
index c4542be0..f46f3165 100644
--- a/src/cheese-application.vala
+++ b/src/cheese-application.vala
@@ -116,7 +116,7 @@ public class Cheese.Application : Gtk.Application
Environment.set_application_name (_("Cheese"));
Window.set_default_icon_name ("org.gnome.Cheese");
- this.add_accelerator ("space", "app.shoot", null);
+ this.set_accels_for_action ("app.shoot", {"space"});
// FIXME: Push these into the main window initialization.
main_window.setup_ui ();
diff --git a/src/cheese-window.vala b/src/cheese-window.vala
index 09879fc5..25df09e7 100644
--- a/src/cheese-window.vala
+++ b/src/cheese-window.vala
@@ -1312,6 +1312,13 @@ public class Cheese.MainWindow : Gtk.ApplicationWindow
var menu = application.get_menu_by_id ("thumbview-menu");
thumbnail_popup = new Gtk.Menu.from_model (menu);
+
+ application.set_accels_for_action ("app.quit", {"<Primary>q"});
+ application.set_accels_for_action ("app.fullscreen", {"F11"});
+ application.set_accels_for_action ("win.file-open", {"<Primary>o"});
+ application.set_accels_for_action ("win.file-saveas", {"<Primary>s"});
+ application.set_accels_for_action ("win.file-trash", {"Delete"});
+ application.set_accels_for_action ("win.file-delete", {"<Shift>Delete"});
this.add_action_entries (actions, this);
--
GitLab

View File

@ -1,38 +0,0 @@
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);

View File

@ -0,0 +1,177 @@
From 7cf6268e54620bbbe5e6e61800c50fb0cb4bea57 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Corentin=20No=C3=ABl?= <corentin@elementary.io>
Date: Fri, 16 Oct 2020 19:56:26 +0200
Subject: [PATCH] Change GLib.PtrArray into GLib.GenericArray
This is the vala-friendly way of handling GPtrArray.
Fix several memory leaks on the go and unnecessary reference increase.
---
src/cheese-preferences.vala | 26 ++++++++++++--------------
src/cheese-window.vala | 22 +++++++++++-----------
src/vapi/cheese-common.vapi | 2 +-
3 files changed, 24 insertions(+), 26 deletions(-)
diff --git a/src/cheese-preferences.vala b/src/cheese-preferences.vala
index f56af7e0..80a92431 100644
--- a/src/cheese-preferences.vala
+++ b/src/cheese-preferences.vala
@@ -100,7 +100,7 @@ public PreferencesDialog (Cheese.Camera camera)
*/
private void initialize_camera_devices ()
{
- unowned GLib.PtrArray devices = camera.get_camera_devices ();
+ GLib.GenericArray<unowned Cheese.CameraDevice> devices = camera.get_camera_devices ();
camera_model = new Gtk.ListStore (2, typeof (string), typeof (Cheese.CameraDevice));
source_combo.model = camera_model;
@@ -357,13 +357,13 @@ public PreferencesDialog (Cheese.Camera camera)
*/
private void on_camera_update_num_camera_devices ()
{
- unowned GLib.PtrArray devices = camera.get_camera_devices ();
- Cheese.CameraDevice dev;
+ GLib.GenericArray<unowned Cheese.CameraDevice> devices = camera.get_camera_devices ();
+ unowned Cheese.CameraDevice dev;
// Add (if) / Remove (else) a camera device.
- if (devices.len > camera_model.iter_n_children (null))
+ if (devices.length > camera_model.iter_n_children (null))
{
- dev = (Cheese.CameraDevice) devices.index (devices.len - 1);
+ dev = devices.get (devices.length - 1);
add_camera_device(dev);
}
else
@@ -382,12 +382,11 @@ public PreferencesDialog (Cheese.Camera camera)
bool device_removed = false;
devices.foreach ((device) =>
{
- var old_device = (Cheese.CameraDevice) device;
Cheese.CameraDevice new_device;
camera_model.get (iter, 1, out new_device, -1);
// Found the device that was removed.
- if (old_device != new_device)
+ if (device != new_device)
{
remove_camera_device (iter, new_device, active_device);
device_removed = true;
@@ -418,17 +417,16 @@ public PreferencesDialog (Cheese.Camera camera)
*
* @param device a Cheese.CameraDevice to add to the device combo box model
*/
- private void add_camera_device (void *device)
+ private void add_camera_device (Cheese.CameraDevice device)
{
TreeIter iter;
- Cheese.CameraDevice dev = (Cheese.CameraDevice) device;
camera_model.append (out iter);
camera_model.set (iter,
- 0, dev.get_name (),
- 1, dev);
+ 0, device.get_name (),
+ 1, device);
- if (camera.get_selected_device () == dev)
+ if (camera.get_selected_device () == device)
source_combo.set_active_iter (iter);
if (camera_model.iter_n_children (null) > 1)
@@ -445,12 +443,12 @@ public PreferencesDialog (Cheese.Camera camera)
private void remove_camera_device (TreeIter iter, Cheese.CameraDevice device_node,
Cheese.CameraDevice active_device_node)
{
- unowned GLib.PtrArray devices = camera.get_camera_devices ();
+ GLib.GenericArray<unowned Cheese.CameraDevice> devices = camera.get_camera_devices ();
// Check if the camera that we want to remove, is the active one
if (device_node == active_device_node)
{
- if (devices.len > 0)
+ if (devices.length > 0)
set_new_available_camera_device (iter);
else
this.hide ();
diff --git a/src/cheese-window.vala b/src/cheese-window.vala
index ff069808..cc119b68 100644
--- a/src/cheese-window.vala
+++ b/src/cheese-window.vala
@@ -1216,9 +1216,9 @@ public class Cheese.MainWindow : Gtk.ApplicationWindow
*/
public void on_switch_camera_clicked ()
{
- Cheese.CameraDevice selected;
- Cheese.CameraDevice next = null;
- GLib.PtrArray cameras;
+ unowned Cheese.CameraDevice selected;
+ unowned Cheese.CameraDevice next = null;
+ GLib.GenericArray<unowned Cheese.CameraDevice> cameras;
uint i;
if (camera == null)
@@ -1235,9 +1235,9 @@ public class Cheese.MainWindow : Gtk.ApplicationWindow
cameras = camera.get_camera_devices ();
- for (i = 0; i < cameras.len; i++)
+ for (i = 0; i < cameras.length; i++)
{
- next = (Cheese.CameraDevice )cameras.index (i);
+ next = cameras.get (i);
if (next == selected)
{
@@ -1245,13 +1245,13 @@ public class Cheese.MainWindow : Gtk.ApplicationWindow
}
}
- if (i + 1 < cameras.len)
+ if (i + 1 < cameras.length)
{
- next = (Cheese.CameraDevice )cameras.index (i + 1);
+ next = cameras.get (i + 1);
}
else
{
- next = (Cheese.CameraDevice )cameras.index (0);
+ next = cameras.get (0);
}
if (next == selected)
@@ -1269,8 +1269,8 @@ public class Cheese.MainWindow : Gtk.ApplicationWindow
*/
public void set_switch_camera_button_state ()
{
- Cheese.CameraDevice selected;
- GLib.PtrArray cameras;
+ unowned Cheese.CameraDevice selected;
+ GLib.GenericArray<unowned Cheese.CameraDevice> cameras;
if (camera == null)
{
@@ -1288,7 +1288,7 @@ public class Cheese.MainWindow : Gtk.ApplicationWindow
cameras = camera.get_camera_devices ();
- if (cameras.len > 1)
+ if (cameras.length > 1)
{
switch_camera_button.set_visible (true);
return;
diff --git a/src/vapi/cheese-common.vapi b/src/vapi/cheese-common.vapi
index 6517cdfc..e4ae7ad3 100644
--- a/src/vapi/cheese-common.vapi
+++ b/src/vapi/cheese-common.vapi
@@ -35,7 +35,7 @@ namespace Cheese
[CCode (has_construct_function = false)]
public Camera (Clutter.Actor video_texture, string camera_device_node, int x_resolution, int y_resolution);
public bool get_balance_property_range (string property, double min, double max, double def);
- public unowned GLib.PtrArray get_camera_devices ();
+ public GLib.GenericArray<unowned Cheese.CameraDevice> get_camera_devices ();
public unowned Cheese.VideoFormat get_current_video_format ();
public int get_num_camera_devices ();
public unowned Cheese.CameraDevice get_selected_device ();
--
GitLab

View File

@ -1,23 +1,25 @@
Name: cheese
Epoch: 2
Version: 3.28.0
Release: 4%{?dist}
Version: 3.38.0
Release: 6%{?dist}
Summary: Application for taking pictures and movies from a webcam
License: GPLv2+
URL: https://wiki.gnome.org/Apps/Cheese
Source0: https://download.gnome.org/sources/%{name}/3.28/%{name}-%{version}.tar.xz
# https://bugzilla.redhat.com/show_bug.cgi?id=1625735
Patch0: cheese-3.28.0-fix-accelerators.patch
# https://bugzilla.redhat.com/show_bug.cgi?id=1923065
Patch1: cheese-3.28.0-ignore-non-YUY2-formats.patch
Source0: https://download.gnome.org/sources/%{name}/3.38/%{name}-%{version}.tar.xz
# https://gitlab.gnome.org/GNOME/cheese/-/merge_requests/39
Patch0: 0001-Fix-infinite-loop-if-thumbnailer-is-not-available.patch
Patch1: cheese-3.38.0-vala-genericarray.patch
BuildRequires: gcc
BuildRequires: meson
BuildRequires: gtk-doc
BuildRequires: chrpath
BuildRequires: desktop-file-utils
BuildRequires: docbook-dtds
BuildRequires: docbook-style-xsl
BuildRequires: gettext
BuildRequires: intltool
BuildRequires: itstool
BuildRequires: libXtst-devel
BuildRequires: vala
@ -38,8 +40,8 @@ BuildRequires: /usr/bin/appstream-util
BuildRequires: /usr/bin/xsltproc
Requires: %{name}-libs%{?_isa} = %{epoch}:%{version}-%{release}
Requires: gstreamer1-plugins-good
Requires: gstreamer1-plugins-bad-free
Requires: gstreamer1-plugins-good%{?_isa}
Requires: gstreamer1-plugins-bad-free%{?_isa}
Requires: gnome-video-effects
%description
@ -71,12 +73,12 @@ for writing applications that require a webcam display widget.
%build
%configure --disable-static
make V=1 %{?_smp_mflags}
%meson -Dtests=false
%meson_build
%install
%make_install
%meson_install
rm -f %{buildroot}%{_libdir}/libcheese.{a,la}
rm -f %{buildroot}%{_libdir}/libcheese-gtk.{a,la}
@ -89,7 +91,7 @@ chrpath --delete %{buildroot}%{_libdir}/libcheese-gtk.so.*
%check
desktop-file-validate %{buildroot}%{_datadir}/applications/org.gnome.Cheese.desktop
%meson_test
%ldconfig_scriptlets libs
@ -98,10 +100,10 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/org.gnome.Cheese.desk
%doc AUTHORS README
%{_bindir}/cheese
%{_datadir}/applications/org.gnome.Cheese.desktop
%{_datadir}/icons/hicolor/*/apps/org.gnome.Cheese.png
%{_datadir}/icons/hicolor/symbolic/apps/org.gnome.Cheese-symbolic.svg
%{_datadir}/appdata/org.gnome.Cheese.appdata.xml
%{_datadir}/metainfo/org.gnome.Cheese.appdata.xml
%{_datadir}/dbus-1/services/org.gnome.Cheese.service
%{_datadir}/icons/hicolor/scalable/apps/org.gnome.Cheese.svg
%{_datadir}/icons/hicolor/symbolic/apps/org.gnome.Cheese-symbolic.svg
%{_mandir}/man1/cheese.1*
%files -f %{name}.lang libs
@ -122,14 +124,68 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/org.gnome.Cheese.desk
%changelog
* Thu Mar 24 2022 David King <dking@redhat.com> - 2:3.28.0-4
- Ignore grayscale formats from IR cameras (#1923065)
* Mon Aug 09 2021 Mohan Boddu <mboddu@redhat.com> - 2:3.38.0-6
- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags
Related: rhbz#1991688
* Wed Nov 25 2020 David King <dking@redhat.com> - 2:3.28.0-3
- Fix keyboard accelerator patch (#1625735)
* Mon Aug 02 2021 David King <amigadave@amigadave.com> - 3.38.0-5
- Add isa to gstreamer plugin Requires (#1988932)
* Tue Oct 20 2020 David King <dking@redhat.com> - 2:3.28.0-2
- Fix keyboard accelerators (#1625735)
* Thu Apr 15 2021 Mohan Boddu <mboddu@redhat.com> - 2:3.38.0-4
- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 2:3.38.0-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Fri Sep 18 2020 Bastien Nocera <bnocera@redhat.com> - 3.38.0-2
+ cheese-3.38.0-2
- Fix infinite loop on exit
* Tue Sep 15 2020 Kalev Lember <klember@redhat.com> - 2:3.38.0-1
- Update to 3.38.0
* Mon Jul 27 2020 Fedora Release Engineering <releng@fedoraproject.org> - 2:3.34.0-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Tue Jan 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 2:3.34.0-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Thu Jan 16 2020 Kalev Lember <klember@redhat.com> - 2:3.34.0-2
- Rebuilt for libgnome-desktop soname bump
* Tue Sep 10 2019 David King <amigadave@amigadave.com> - 2:3.34.0-1
- Update to 3.34.0
* Tue Aug 06 2019 Phil Wyett <philwyett@kathenas.org> - 2:3.33.90.1-1
- Convert to using meson build system.
- Update to 3.33.90.1.
* Wed Jul 24 2019 Fedora Release Engineering <releng@fedoraproject.org> - 2:3.32.1-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Sun Jul 21 2019 Kalev Lember <klember@redhat.com> - 2:3.32.1-2
- Rebuilt for libgnome-desktop soname bump
* Mon Apr 08 2019 Kalev Lember <klember@redhat.com> - 2:3.32.1-1
- Update to 3.32.1
* Tue Mar 12 2019 David King <amigadave@amigadave.com> - 2:3.32.0-1
- Update to 3.32.0
* Mon Feb 04 2019 David King <amigadave@amigadave.com> - 2:3.31.90-1
- Update to 3.31.90
* Thu Jan 31 2019 Fedora Release Engineering <releng@fedoraproject.org> - 2:3.30.0-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Fri Sep 07 2018 Kalev Lember <klember@redhat.com> - 2:3.30.0-2
- Rebuilt against fixed atk (#1626575)
* Tue Sep 04 2018 David King <amigadave@amigadave.com> - 2:3.30.0-1
- Update to 3.30.0
* Thu Jul 12 2018 Fedora Release Engineering <releng@fedoraproject.org> - 2:3.28.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Mon Mar 12 2018 Kalev Lember <klember@redhat.com> - 2:3.28.0-1
- Update to 3.28.0