$ git clone http://tcclient.ion.nu/tc_client.git
commit ad55fc00b17696612fc2de92c349cfc43799fd85
Author: Alicia <...>
Date: Mon Dec 5 14:15:36 2016 +0100
tc_client-gtk: bugfix: hiding your own camera caused a segfault.
diff --git a/ChangeLog b/ChangeLog
index b024e62..c3e9388 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -17,6 +17,7 @@ tc_client-gtk: added support for integrated youtube videos.
tc_client-gtk: compatibility with older versions of libavformat.
tc_client-gtk: build fixes for windows.
tc_client-gtk: tweaks for windows compatibility.
+tc_client-gtk: bugfix: hiding your own camera caused a segfault.
dist/appimage.sh: fix audio in appimages by building ffmpeg with support for nellymoser and speex, and depending on the system's libao and libpulse instead of including it in the appimage.
libcamera(escapi): handle failure to open camera more gracefully.
irchack: pass along "<user> cammed up" notifications.
diff --git a/utilities/gtk/gui.c b/utilities/gtk/gui.c
index 2417a9f..0f07fef 100644
--- a/utilities/gtk/gui.c
+++ b/utilities/gtk/gui.c
@@ -593,7 +593,12 @@ void gui_hide_cam(GtkMenuItem* menuitem, void* x)
struct camera* cam=camera_find(menu_context_cam);
if(!cam){return;}
dprintf(tc_client_in[1], "/closecam %s\n", cam->nick);
- camera_remove(menu_context_cam, 0);
+ if(!strcmp(cam->id, "out"))
+ {
+ stopbroadcasting(0, 0);
+ }else{
+ camera_remove(menu_context_cam, 0);
+ }
}
gboolean gui_greenscreen_preview(void* x)
diff --git a/utilities/gtk/media.c b/utilities/gtk/media.c
index 0378838..5f8bd12 100644
--- a/utilities/gtk/media.c
+++ b/utilities/gtk/media.c
@@ -271,6 +271,7 @@ gboolean cam_encode(void* camera_)
CAM* camera=camera_;
if(camera!=camout_cam){return G_SOURCE_REMOVE;}
struct camera* cam=camera_find("out");
+ if(!cam){return G_SOURCE_REMOVE;}
if(cam->placeholder) // Remove the placeholder animation if it has it
{
g_source_remove(cam->placeholder);