$ git clone http://tcclient.ion.nu/tc_client.git
commit e910ac0ccc9be7e6e2bd9fef94f25e51c6a66510
Author: Alicia <...>
Date:   Sun Oct 16 12:22:20 2016 +0200

    tc_client-gtk: moved some non-GUI code back.

diff --git a/ChangeLog b/ChangeLog
index 182892f..629efdb 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -31,6 +31,7 @@ tc_client-gtk: bugfix: close the camera device when cancelling cam selection.
 tc_client-gtk: moved some GUI code into gui.c, including all of the GUI initialization.
 tc_client-gtk: fixed printf formatting.
 tc_client-gtk: fixed building without pulseaudio.
+tc_client-gtk: moved some non-GUI code back.
 tc_client-gtk and camviewer: updated to libavcodec's avcodec_{send,receive}_{frame,packet} API.
 camviewer: removed the old, buggy audio code.
 libcamera: added support for a virtual X11 camera.
diff --git a/utilities/gtk/camviewer.c b/utilities/gtk/camviewer.c
index ea78538..5ea990a 100644
--- a/utilities/gtk/camviewer.c
+++ b/utilities/gtk/camviewer.c
@@ -959,6 +959,8 @@ int main(int argc, char** argv)
 
   gtk_init(&argc, &argv);
   gui_init(frombuild);
+  campreview.frame=av_frame_alloc();
+  campreview.frame->data[0]=0;
   gtk_main();
  
 #ifdef _WIN32
diff --git a/utilities/gtk/gui.c b/utilities/gtk/gui.c
index 556cb4e..27cd624 100644
--- a/utilities/gtk/gui.c
+++ b/utilities/gtk/gui.c
@@ -876,8 +876,6 @@ void gui_init(char frombuild)
   g_signal_connect(item, "activate", G_CALLBACK(stopbroadcasting), 0);
   // Set up cam selection and preview
   campreview.cam=GTK_WIDGET(gtk_builder_get_object(gui, "camselect_preview"));
-  campreview.frame=av_frame_alloc();
-  campreview.frame->data[0]=0;
   GtkComboBox* combo=GTK_COMBO_BOX(gtk_builder_get_object(gui, "camselect_combo"));
   g_signal_connect(combo, "changed", G_CALLBACK(camselect_change), 0);
   // Signals for cancelling