From 13a702e9e572a2dc9f6b52a1531a2237d4d98ff1 Mon Sep 17 00:00:00 2001 From: Dongxiao Xu Date: Fri, 15 Oct 2010 16:45:21 +0800 Subject: Use gdk_threads_enter/gdk_threads_leave to ensure gtk multithread safe If the video player tries to play an unknown type file, it will enter the error_cb() function, which is called in another thread. Use gdk_threads_enter/gdk_threads_leave to ensure the safe of gtk multi-thread operation. This fixes [BUGID #474] Signed-off-by: Dongxiao Xu --- .../owl-video/gtk_multithread_safe.patch | 38 +++++++++++++++++++++ .../owl-video/owl-video-widget.desktop | 10 ++++++ .../owl-video/owl-video-widget.png | Bin 0 -> 4923 bytes .../owl-video/stock_media-play.png | Bin 0 -> 329 bytes .../owl-video-widget/owl-video/stock_volume-0.png | Bin 0 -> 570 bytes .../owl-video/stock_volume-max.png | Bin 0 -> 689 bytes .../owl-video/stock_volume-med.png | Bin 0 -> 630 bytes .../owl-video/stock_volume-min.png | Bin 0 -> 570 bytes 8 files changed, 48 insertions(+) create mode 100644 meta/recipes-sato/owl-video-widget/owl-video/gtk_multithread_safe.patch create mode 100644 meta/recipes-sato/owl-video-widget/owl-video/owl-video-widget.desktop create mode 100644 meta/recipes-sato/owl-video-widget/owl-video/owl-video-widget.png create mode 100644 meta/recipes-sato/owl-video-widget/owl-video/stock_media-play.png create mode 100644 meta/recipes-sato/owl-video-widget/owl-video/stock_volume-0.png create mode 100644 meta/recipes-sato/owl-video-widget/owl-video/stock_volume-max.png create mode 100644 meta/recipes-sato/owl-video-widget/owl-video/stock_volume-med.png create mode 100644 meta/recipes-sato/owl-video-widget/owl-video/stock_volume-min.png (limited to 'meta/recipes-sato/owl-video-widget/owl-video') diff --git a/meta/recipes-sato/owl-video-widget/owl-video/gtk_multithread_safe.patch b/meta/recipes-sato/owl-video-widget/owl-video/gtk_multithread_safe.patch new file mode 100644 index 000000000..e153c5e3b --- /dev/null +++ b/meta/recipes-sato/owl-video-widget/owl-video/gtk_multithread_safe.patch @@ -0,0 +1,38 @@ +Use gdk_threads_enter/gdk_threads_leave to ensure gtk multithread safe + +If the video player tries to play an unknown type file, it will enter +the error_cb() function, which is called in another thread. +Use gdk_threads_enter/gdk_threads_leave to ensure the safe of gtk +multi-thread operation. + +Signed-off-by: Dongxiao Xu + +diff -ruN video-orig/src/video.c video/src/video.c +--- video-orig/src/video.c 2010-10-15 16:07:26.522346398 +0800 ++++ video/src/video.c 2010-10-15 16:25:51.780296717 +0800 +@@ -96,6 +96,7 @@ + { + GtkWidget *dialog; + ++ gdk_threads_enter(); + dialog = gtk_message_dialog_new (data->window, + GTK_DIALOG_NO_SEPARATOR, + GTK_MESSAGE_ERROR, +@@ -103,6 +104,7 @@ + error->message); + gtk_dialog_run (GTK_DIALOG (dialog)); + gtk_widget_destroy (dialog); ++ gdk_threads_leave(); + } + + /** +@@ -606,7 +608,9 @@ + + gtk_widget_show_all (GTK_WIDGET (data->window)); + ++ gdk_threads_enter(); + gtk_main (); ++ gdk_threads_leave(); + + /** + * Cleanup. diff --git a/meta/recipes-sato/owl-video-widget/owl-video/owl-video-widget.desktop b/meta/recipes-sato/owl-video-widget/owl-video/owl-video-widget.desktop new file mode 100644 index 000000000..e7af07ee6 --- /dev/null +++ b/meta/recipes-sato/owl-video-widget/owl-video/owl-video-widget.desktop @@ -0,0 +1,10 @@ +[Desktop Entry] +Name=Video +Exec=video +Icon=video-player +Terminal=false +Type=Application +Categories=AudioVideo;Video;Player; +X-MB-SingleInstance=true +StartupNotify=true +Comment=Video Player diff --git a/meta/recipes-sato/owl-video-widget/owl-video/owl-video-widget.png b/meta/recipes-sato/owl-video-widget/owl-video/owl-video-widget.png new file mode 100644 index 000000000..f463fe186 Binary files /dev/null and b/meta/recipes-sato/owl-video-widget/owl-video/owl-video-widget.png differ diff --git a/meta/recipes-sato/owl-video-widget/owl-video/stock_media-play.png b/meta/recipes-sato/owl-video-widget/owl-video/stock_media-play.png new file mode 100644 index 000000000..c2b9c582a Binary files /dev/null and b/meta/recipes-sato/owl-video-widget/owl-video/stock_media-play.png differ diff --git a/meta/recipes-sato/owl-video-widget/owl-video/stock_volume-0.png b/meta/recipes-sato/owl-video-widget/owl-video/stock_volume-0.png new file mode 100644 index 000000000..f3f57143d Binary files /dev/null and b/meta/recipes-sato/owl-video-widget/owl-video/stock_volume-0.png differ diff --git a/meta/recipes-sato/owl-video-widget/owl-video/stock_volume-max.png b/meta/recipes-sato/owl-video-widget/owl-video/stock_volume-max.png new file mode 100644 index 000000000..03f5a03b4 Binary files /dev/null and b/meta/recipes-sato/owl-video-widget/owl-video/stock_volume-max.png differ diff --git a/meta/recipes-sato/owl-video-widget/owl-video/stock_volume-med.png b/meta/recipes-sato/owl-video-widget/owl-video/stock_volume-med.png new file mode 100644 index 000000000..f774e42bb Binary files /dev/null and b/meta/recipes-sato/owl-video-widget/owl-video/stock_volume-med.png differ diff --git a/meta/recipes-sato/owl-video-widget/owl-video/stock_volume-min.png b/meta/recipes-sato/owl-video-widget/owl-video/stock_volume-min.png new file mode 100644 index 000000000..f3f57143d Binary files /dev/null and b/meta/recipes-sato/owl-video-widget/owl-video/stock_volume-min.png differ -- cgit v1.2.3