]> git.sesse.net Git - vlc/blobdiff - modules/gui/pda/pda_interface.c
configure: Set the proper werror variable when creating vlc-config.in
[vlc] / modules / gui / pda / pda_interface.c
index 7c9cbf1ce70d2dfc0969590eaa79daf3d7fda849..b847b87bcb7c20e8253dd3b054a3ad12a4bbe24b 100644 (file)
@@ -9,8 +9,6 @@
 #include <sys/types.h>
 #include <sys/stat.h>
 #include <unistd.h>
-#include <string.h>
-#include <stdio.h>
 
 #include <gdk/gdkkeysyms.h>
 #include <gtk/gtk.h>
@@ -69,61 +67,114 @@ create_pda (void)
   GList *comboNetworkType_items = NULL;
   GtkWidget *entryNetworkType;
   GtkWidget *labelNetworkType;
-  GtkWidget *comboProtocolType;
-  GList *comboProtocolType_items = NULL;
-  GtkWidget *entryProtocolType;
+  GtkWidget *comboNetworkProtocolType;
+  GList *comboNetworkProtocolType_items = NULL;
+  GtkWidget *entryNetworkProtocolType;
   GtkWidget *labelNetworkProtocol;
-  GtkWidget *labeNetworkMRLType;
-  GtkWidget *comboMRLType;
-  GList *comboMRLType_items = NULL;
-  GtkWidget *entryMRLType;
-  GtkWidget *labelNetworkStreamType;
-  GtkWidget *comboStreamType;
-  GList *comboStreamType_items = NULL;
-  GtkWidget *entryStreamType;
+  GtkWidget *labelNetworkTranscode;
+  GtkWidget *checkNetworkTranscode;
   GtkWidget *hbox13;
   GtkWidget *AddNetworkPlaylist;
   GtkWidget *Network;
   GtkWidget *vbox7;
-  GtkWidget *table;
-  GtkWidget *labelV4LAudio;
-  GtkWidget *labelV4LVideo;
-  GtkWidget *comboV4LAudio;
-  GtkWidget *entryV4LAudio;
-  GtkWidget *comboV4LVideo;
-  GtkWidget *entryV4LVideo;
+  GtkWidget *scrolledV4Lwindow;
+  GtkWidget *viewportV4L;
+  GtkWidget *tableV4L;
+  GtkWidget *labelV4lVideDevice;
+  GtkWidget *labelV4LAudioDevice;
+  GtkWidget *labelV4LChannel;
+  GtkWidget *labelV4LNorm;
+  GtkWidget *labelV4LSize;
+  GtkWidget *labelV4LFrequency;
+  GtkWidget *labelV4LSampleRate;
+  GtkWidget *labelV4LQuality;
+  GtkWidget *labelV4LTuner;
+  GtkWidget *labelV4LSoundDirection;
+  GtkWidget *labelV4LMJPEG;
+  GtkWidget *labelV4LDecimation;
+  GtkWidget *comboV4lVideoDevice;
+  GList *comboV4lVideoDevice_items = NULL;
+  GtkWidget *entryV4LVideoDevice;
+  GtkWidget *comboV4lAudioDevice;
+  GList *comboV4lAudioDevice_items = NULL;
+  GtkWidget *entryV4LAudioDevice;
+  GtkObject *entryV4LChannel_adj;
+  GtkWidget *entryV4LChannel;
+  GtkWidget *comboV4LNorm;
+  GList *comboV4LNorm_items = NULL;
+  GtkWidget *entryV4LNorm;
+  GtkWidget *comboV4LSize;
+  GList *comboV4LSize_items = NULL;
+  GtkWidget *entryV4LSize;
+  GtkObject *entryV4LFrequency_adj;
+  GtkWidget *entryV4LFrequency;
+  GtkObject *entryV4LSampleRate_adj;
+  GtkWidget *entryV4LSampleRate;
+  GtkObject *entryV4LQuality_adj;
+  GtkWidget *entryV4LQuality;
+  GtkWidget *comboV4LSoundDirection;
+  GList *comboV4LSoundDirection_items = NULL;
+  GtkWidget *entryV4LSoundDirection;
+  GtkObject *entryV4LTuner_adj;
+  GtkWidget *entryV4LTuner;
+  GtkWidget *checkV4LMJPEG;
+  GtkObject *entryV4LDecimation_adj;
+  GtkWidget *entryV4LDecimation;
+  GtkWidget *labelV4LTranscode;
+  GtkWidget *checkV4LTranscode;
   GtkWidget *hbox16;
   GtkWidget *AddCameraToPlaylist;
   GtkWidget *Camera;
   GtkWidget *vbox1;
-  GtkWidget *vbox6;
-  GtkWidget *frameVideo;
-  GtkWidget *table4;
-  GtkWidget *labelVideoDevice;
+  GtkWidget *scrolledwindowTranscode;
+  GtkWidget *viewport5;
+  GtkWidget *tableTranscode;
   GtkWidget *labelVideoCodec;
-  GtkWidget *labelVideoBitrate;
-  GtkWidget *comboVideoDevice;
-  GtkWidget *entryVideoDevice;
   GtkWidget *comboVideoCodec;
+  GList *comboVideoCodec_items = NULL;
   GtkWidget *entryVideoCodec;
-  GtkObject *spinVideoBitrate_adj;
-  GtkWidget *spinVideoBitrate;
-  GtkWidget *label42;
-  GtkWidget *frameAudio;
-  GtkWidget *table3;
-  GtkWidget *labelAudioDevice;
+  GtkWidget *labelVideoBitrate;
+  GtkWidget *labelVideoBitrateTolerance;
+  GtkWidget *labelVideoKeyInterval;
   GtkWidget *labelAudioCodec;
-  GtkWidget *labelAudioBitrate;
-  GtkWidget *comboAudioDevice;
-  GtkWidget *entryAudioDevice;
+  GtkWidget *labelVideoDeinterlace;
+  GtkWidget *labelStdAccess;
+  GtkWidget *labelStdMuxer;
+  GtkWidget *labelStdUrl;
+  GtkWidget *labelStdTimeToLive;
+  GtkObject *entryStdTTL_adj;
+  GtkWidget *entryStdTTL;
+  GtkWidget *comboStdURL;
+  GList *comboStdURL_items = NULL;
+  GtkWidget *entryStdURL;
+  GtkWidget *comboStdMuxer;
+  GList *comboStdMuxer_items = NULL;
+  GtkWidget *entryStdMuxer;
+  GtkObject *entryAudioBitrate_adj;
+  GtkWidget *entryAudioBitrate;
   GtkWidget *comboAudioCodec;
+  GList *comboAudioCodec_items = NULL;
   GtkWidget *entryAudioCodec;
-  GtkObject *spinAudioBitrate_adj;
-  GtkWidget *spinAudioBitrate;
-  GtkWidget *label41;
+  GtkWidget *checkVideoDeinterlace;
+  GtkObject *entryVideoKeyFrameInterval_adj;
+  GtkWidget *entryVideoKeyFrameInterval;
+  GtkObject *entryVideoBitrateTolerance_adj;
+  GtkWidget *entryVideoBitrateTolerance;
+  GtkObject *entryVideoBitrate_adj;
+  GtkWidget *entryVideoBitrate;
+  GtkWidget *labelAudioBitrate;
+  GtkWidget *comboStdAccess;
+  GtkWidget *entryStdAccess;
+  GtkWidget *labelSAP;
+  GtkWidget *checkSAP;
+  GtkWidget *checkSLP;
+  GtkWidget *labelSLP_;
+  GtkWidget *labelAnounceChannel;
+  GtkWidget *comboAnnounceChannel;
+  GtkWidget *entryAnnounceChannel;
   GtkWidget *hbox14;
-  GtkWidget *AddServerToPlaylist;
-  GtkWidget *Server;
+  GtkWidget *AddTranscodeToPlaylist;
+  GtkWidget *Transcode;
   GtkWidget *vbox4;
   GtkWidget *scrolledwindow5;
   GtkWidget *tvPlaylist;
@@ -133,6 +184,8 @@ create_pda (void)
   GtkWidget *ClearPlaylist;
   GtkWidget *playlist;
   GtkWidget *vbox2;
+  GtkWidget *scrolledwindowPreference;
+  GtkWidget *tvPreferences;
   GtkWidget *hbox2;
   GtkWidget *PreferenceSave;
   GtkWidget *PreferenceApply;
@@ -144,9 +197,12 @@ create_pda (void)
   GtkWidget *aboutImage;
   GtkWidget *labelDescription;
   GtkWidget *labelAuthors;
-  GtkWidget *labelProgramName;
   GtkWidget *labelCopyright;
+  GtkWidget *labelProgramName;
   GtkWidget *about;
+  GtkTooltips *tooltips;
+
+  tooltips = gtk_tooltips_new ();
 
   pda = gtk_window_new (GTK_WINDOW_TOPLEVEL);
   gtk_widget_set_name (pda, "pda");
@@ -254,13 +310,14 @@ create_pda (void)
 
   gtk_toolbar_append_widget (GTK_TOOLBAR (toolbar), timeLabel, NULL, NULL);
 
-  timeSlider = gtk_hscale_new (GTK_ADJUSTMENT (gtk_adjustment_new (3, 0, 100, 1, 6.25, 0)));
+  timeSlider = gtk_hscale_new (GTK_ADJUSTMENT (gtk_adjustment_new (0, 0, 100, 1, 6.25, 0)));
   gtk_widget_set_name (timeSlider, "timeSlider");
   gtk_widget_show (timeSlider);
-  gtk_box_pack_start (GTK_BOX (vbox), timeSlider, FALSE, FALSE, 4);
+  gtk_box_pack_start (GTK_BOX (vbox), timeSlider, FALSE, TRUE, 4);
   gtk_scale_set_draw_value (GTK_SCALE (timeSlider), FALSE);
   gtk_scale_set_value_pos (GTK_SCALE (timeSlider), GTK_POS_RIGHT);
   gtk_scale_set_digits (GTK_SCALE (timeSlider), 3);
+  gtk_range_set_update_policy (GTK_RANGE (timeSlider), GTK_UPDATE_DISCONTINUOUS);
 
   notebook = gtk_notebook_new ();
   gtk_widget_set_name (notebook, "notebook");
@@ -322,7 +379,7 @@ create_pda (void)
   gtk_box_pack_start (GTK_BOX (vbox5), hbox12, FALSE, FALSE, 0);
   gtk_widget_set_size_request (hbox12, 247, 26);
 
-  labelNetworkMRL = gtk_label_new (_("MRL :"));
+  labelNetworkMRL = gtk_label_new (_("MRL:"));
   gtk_widget_set_name (labelNetworkMRL, "labelNetworkMRL");
   gtk_widget_show (labelNetworkMRL);
   gtk_box_pack_start (GTK_BOX (hbox12), labelNetworkMRL, FALSE, FALSE, 0);
@@ -334,14 +391,13 @@ create_pda (void)
   gtk_widget_set_name (comboMRL, "comboMRL");
   gtk_widget_show (comboMRL);
   gtk_box_pack_start (GTK_BOX (hbox12), comboMRL, TRUE, TRUE, 0);
-  comboMRL_items = g_list_append (comboMRL_items, (gpointer) _("file://"));
-  comboMRL_items = g_list_append (comboMRL_items, (gpointer) _("ftp://"));
-  comboMRL_items = g_list_append (comboMRL_items, (gpointer) _("http://"));
-  comboMRL_items = g_list_append (comboMRL_items, (gpointer) _("udp://@:1234"));
-  comboMRL_items = g_list_append (comboMRL_items, (gpointer) _("udp6://@:1234"));
-  comboMRL_items = g_list_append (comboMRL_items, (gpointer) _("rtp://"));
-  comboMRL_items = g_list_append (comboMRL_items, (gpointer) _("rtp6://"));
-  comboMRL_items = g_list_append (comboMRL_items, (gpointer) "");
+  comboMRL_items = g_list_append (comboMRL_items, (gpointer) "udp://@:1234");
+  comboMRL_items = g_list_append (comboMRL_items, (gpointer) "udp6://@:1234");
+  comboMRL_items = g_list_append (comboMRL_items, (gpointer) "rtp://");
+  comboMRL_items = g_list_append (comboMRL_items, (gpointer) "rtp6://");
+  comboMRL_items = g_list_append (comboMRL_items, (gpointer) "ftp://");
+  comboMRL_items = g_list_append (comboMRL_items, (gpointer) "http://");
+  comboMRL_items = g_list_append (comboMRL_items, (gpointer) "mms://");
   gtk_combo_set_popdown_strings (GTK_COMBO (comboMRL), comboMRL_items);
   g_list_free (comboMRL_items);
 
@@ -349,6 +405,7 @@ create_pda (void)
   gtk_widget_set_name (entryMRL, "entryMRL");
   gtk_widget_show (entryMRL);
   gtk_widget_set_size_request (entryMRL, 158, 24);
+  gtk_entry_set_activates_default (GTK_ENTRY (entryMRL), TRUE);
 
   hseparator15 = gtk_hseparator_new ();
   gtk_widget_set_name (hseparator15, "hseparator15");
@@ -379,7 +436,7 @@ create_pda (void)
   gtk_label_set_justify (GTK_LABEL (labelNetworkAddress), GTK_JUSTIFY_LEFT);
   gtk_misc_set_alignment (GTK_MISC (labelNetworkAddress), 0, 0.5);
 
-  entryNetworkPort_adj = gtk_adjustment_new (1234, 0, 100, 1, 10, 10);
+  entryNetworkPort_adj = gtk_adjustment_new (1234, 0, 65535, 1, 10, 10);
   entryNetworkPort = gtk_spin_button_new (GTK_ADJUSTMENT (entryNetworkPort_adj), 1, 0);
   gtk_widget_set_name (entryNetworkPort, "entryNetworkPort");
   gtk_widget_show (entryNetworkPort);
@@ -417,6 +474,7 @@ create_pda (void)
   entryNetworkType = GTK_COMBO (comboNetworkType)->entry;
   gtk_widget_set_name (entryNetworkType, "entryNetworkType");
   gtk_widget_show (entryNetworkType);
+  gtk_entry_set_activates_default (GTK_ENTRY (entryNetworkType), TRUE);
 
   labelNetworkType = gtk_label_new (_("Network: "));
   gtk_widget_set_name (labelNetworkType, "labelNetworkType");
@@ -427,22 +485,28 @@ create_pda (void)
   gtk_label_set_justify (GTK_LABEL (labelNetworkType), GTK_JUSTIFY_LEFT);
   gtk_misc_set_alignment (GTK_MISC (labelNetworkType), 0, 0.5);
 
-  comboProtocolType = gtk_combo_new ();
-  g_object_set_data (G_OBJECT (GTK_COMBO (comboProtocolType)->popwin),
-                     "GladeParentKey", comboProtocolType);
-  gtk_widget_set_name (comboProtocolType, "comboProtocolType");
-  gtk_widget_show (comboProtocolType);
-  gtk_table_attach (GTK_TABLE (table2), comboProtocolType, 1, 2, 3, 4,
+  comboNetworkProtocolType = gtk_combo_new ();
+  g_object_set_data (G_OBJECT (GTK_COMBO (comboNetworkProtocolType)->popwin),
+                     "GladeParentKey", comboNetworkProtocolType);
+  gtk_widget_set_name (comboNetworkProtocolType, "comboNetworkProtocolType");
+  gtk_widget_show (comboNetworkProtocolType);
+  gtk_table_attach (GTK_TABLE (table2), comboNetworkProtocolType, 1, 2, 3, 4,
                     (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
                     (GtkAttachOptions) (0), 0, 0);
-  comboProtocolType_items = g_list_append (comboProtocolType_items, (gpointer) _("IPv4"));
-  comboProtocolType_items = g_list_append (comboProtocolType_items, (gpointer) _("IPv6"));
-  gtk_combo_set_popdown_strings (GTK_COMBO (comboProtocolType), comboProtocolType_items);
-  g_list_free (comboProtocolType_items);
-
-  entryProtocolType = GTK_COMBO (comboProtocolType)->entry;
-  gtk_widget_set_name (entryProtocolType, "entryProtocolType");
-  gtk_widget_show (entryProtocolType);
+  comboNetworkProtocolType_items = g_list_append (comboNetworkProtocolType_items, (gpointer) _("udp"));
+  comboNetworkProtocolType_items = g_list_append (comboNetworkProtocolType_items, (gpointer) _("udp6"));
+  comboNetworkProtocolType_items = g_list_append (comboNetworkProtocolType_items, (gpointer) _("rtp"));
+  comboNetworkProtocolType_items = g_list_append (comboNetworkProtocolType_items, (gpointer) _("rtp4"));
+  comboNetworkProtocolType_items = g_list_append (comboNetworkProtocolType_items, (gpointer) _("ftp"));
+  comboNetworkProtocolType_items = g_list_append (comboNetworkProtocolType_items, (gpointer) _("http"));
+  comboNetworkProtocolType_items = g_list_append (comboNetworkProtocolType_items, (gpointer) _("sout"));
+  comboNetworkProtocolType_items = g_list_append (comboNetworkProtocolType_items, (gpointer) _("mms"));
+  gtk_combo_set_popdown_strings (GTK_COMBO (comboNetworkProtocolType), comboNetworkProtocolType_items);
+  g_list_free (comboNetworkProtocolType_items);
+
+  entryNetworkProtocolType = GTK_COMBO (comboNetworkProtocolType)->entry;
+  gtk_widget_set_name (entryNetworkProtocolType, "entryNetworkProtocolType");
+  gtk_widget_show (entryNetworkProtocolType);
 
   labelNetworkProtocol = gtk_label_new (_("Protocol:"));
   gtk_widget_set_name (labelNetworkProtocol, "labelNetworkProtocol");
@@ -453,60 +517,21 @@ create_pda (void)
   gtk_label_set_justify (GTK_LABEL (labelNetworkProtocol), GTK_JUSTIFY_LEFT);
   gtk_misc_set_alignment (GTK_MISC (labelNetworkProtocol), 0, 0.5);
 
-  labeNetworkMRLType = gtk_label_new (_("MRL:"));
-  gtk_widget_set_name (labeNetworkMRLType, "labeNetworkMRLType");
-  gtk_widget_show (labeNetworkMRLType);
-  gtk_table_attach (GTK_TABLE (table2), labeNetworkMRLType, 0, 1, 4, 5,
+  labelNetworkTranscode = gtk_label_new (_("Transcode:"));
+  gtk_widget_set_name (labelNetworkTranscode, "labelNetworkTranscode");
+  gtk_widget_show (labelNetworkTranscode);
+  gtk_table_attach (GTK_TABLE (table2), labelNetworkTranscode, 0, 1, 4, 5,
                     (GtkAttachOptions) (GTK_FILL),
                     (GtkAttachOptions) (0), 0, 0);
-  gtk_label_set_justify (GTK_LABEL (labeNetworkMRLType), GTK_JUSTIFY_LEFT);
-  gtk_misc_set_alignment (GTK_MISC (labeNetworkMRLType), 0, 0.5);
+  gtk_label_set_justify (GTK_LABEL (labelNetworkTranscode), GTK_JUSTIFY_LEFT);
+  gtk_misc_set_alignment (GTK_MISC (labelNetworkTranscode), 0, 0.5);
 
-  comboMRLType = gtk_combo_new ();
-  g_object_set_data (G_OBJECT (GTK_COMBO (comboMRLType)->popwin),
-                     "GladeParentKey", comboMRLType);
-  gtk_widget_set_name (comboMRLType, "comboMRLType");
-  gtk_widget_show (comboMRLType);
-  gtk_table_attach (GTK_TABLE (table2), comboMRLType, 1, 2, 4, 5,
-                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
-                    (GtkAttachOptions) (0), 0, 0);
-  comboMRLType_items = g_list_append (comboMRLType_items, (gpointer) _("http"));
-  comboMRLType_items = g_list_append (comboMRLType_items, (gpointer) _("ftp"));
-  comboMRLType_items = g_list_append (comboMRLType_items, (gpointer) _("mms"));
-  comboMRLType_items = g_list_append (comboMRLType_items, (gpointer) _("rtp"));
-  comboMRLType_items = g_list_append (comboMRLType_items, (gpointer) _("udp"));
-  gtk_combo_set_popdown_strings (GTK_COMBO (comboMRLType), comboMRLType_items);
-  g_list_free (comboMRLType_items);
-
-  entryMRLType = GTK_COMBO (comboMRLType)->entry;
-  gtk_widget_set_name (entryMRLType, "entryMRLType");
-  gtk_widget_show (entryMRLType);
-
-  labelNetworkStreamType = gtk_label_new (_("Stream:"));
-  gtk_widget_set_name (labelNetworkStreamType, "labelNetworkStreamType");
-  gtk_widget_show (labelNetworkStreamType);
-  gtk_table_attach (GTK_TABLE (table2), labelNetworkStreamType, 0, 1, 5, 6,
+  checkNetworkTranscode = gtk_check_button_new_with_mnemonic (_("enable"));
+  gtk_widget_set_name (checkNetworkTranscode, "checkNetworkTranscode");
+  gtk_widget_show (checkNetworkTranscode);
+  gtk_table_attach (GTK_TABLE (table2), checkNetworkTranscode, 1, 2, 4, 5,
                     (GtkAttachOptions) (GTK_FILL),
                     (GtkAttachOptions) (0), 0, 0);
-  gtk_label_set_justify (GTK_LABEL (labelNetworkStreamType), GTK_JUSTIFY_LEFT);
-  gtk_misc_set_alignment (GTK_MISC (labelNetworkStreamType), 0, 0.5);
-
-  comboStreamType = gtk_combo_new ();
-  g_object_set_data (G_OBJECT (GTK_COMBO (comboStreamType)->popwin),
-                     "GladeParentKey", comboStreamType);
-  gtk_widget_set_name (comboStreamType, "comboStreamType");
-  gtk_widget_show (comboStreamType);
-  gtk_table_attach (GTK_TABLE (table2), comboStreamType, 1, 2, 5, 6,
-                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
-                    (GtkAttachOptions) (0), 0, 0);
-  comboStreamType_items = g_list_append (comboStreamType_items, (gpointer) _("server"));
-  comboStreamType_items = g_list_append (comboStreamType_items, (gpointer) _("client"));
-  gtk_combo_set_popdown_strings (GTK_COMBO (comboStreamType), comboStreamType_items);
-  g_list_free (comboStreamType_items);
-
-  entryStreamType = GTK_COMBO (comboStreamType)->entry;
-  gtk_widget_set_name (entryStreamType, "entryStreamType");
-  gtk_widget_show (entryStreamType);
 
   hbox13 = gtk_hbox_new (FALSE, 0);
   gtk_widget_set_name (hbox13, "hbox13");
@@ -528,58 +553,311 @@ create_pda (void)
   gtk_widget_show (vbox7);
   gtk_container_add (GTK_CONTAINER (notebook), vbox7);
 
-  table = gtk_table_new (3, 2, FALSE);
-  gtk_widget_set_name (table, "table");
-  gtk_widget_show (table);
-  gtk_box_pack_start (GTK_BOX (vbox7), table, TRUE, TRUE, 0);
+  scrolledV4Lwindow = gtk_scrolled_window_new (NULL, NULL);
+  gtk_widget_set_name (scrolledV4Lwindow, "scrolledV4Lwindow");
+  gtk_widget_show (scrolledV4Lwindow);
+  gtk_box_pack_start (GTK_BOX (vbox7), scrolledV4Lwindow, TRUE, TRUE, 0);
+  gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolledV4Lwindow), GTK_SHADOW_ETCHED_OUT);
+
+  viewportV4L = gtk_viewport_new (NULL, NULL);
+  gtk_widget_set_name (viewportV4L, "viewportV4L");
+  gtk_widget_show (viewportV4L);
+  gtk_container_add (GTK_CONTAINER (scrolledV4Lwindow), viewportV4L);
+  gtk_viewport_set_shadow_type (GTK_VIEWPORT (viewportV4L), GTK_SHADOW_OUT);
+
+  tableV4L = gtk_table_new (13, 2, FALSE);
+  gtk_widget_set_name (tableV4L, "tableV4L");
+  gtk_widget_show (tableV4L);
+  gtk_container_add (GTK_CONTAINER (viewportV4L), tableV4L);
+
+  labelV4lVideDevice = gtk_label_new (_("Video:"));
+  gtk_widget_set_name (labelV4lVideDevice, "labelV4lVideDevice");
+  gtk_widget_show (labelV4lVideDevice);
+  gtk_table_attach (GTK_TABLE (tableV4L), labelV4lVideDevice, 0, 1, 0, 1,
+                    (GtkAttachOptions) (GTK_FILL),
+                    (GtkAttachOptions) (0), 0, 0);
+  gtk_label_set_justify (GTK_LABEL (labelV4lVideDevice), GTK_JUSTIFY_LEFT);
+  gtk_misc_set_alignment (GTK_MISC (labelV4lVideDevice), 0, 0.5);
 
-  labelV4LAudio = gtk_label_new (_("Audio:"));
-  gtk_widget_set_name (labelV4LAudio, "labelV4LAudio");
-  gtk_widget_show (labelV4LAudio);
-  gtk_table_attach (GTK_TABLE (table), labelV4LAudio, 0, 1, 0, 1,
+  labelV4LAudioDevice = gtk_label_new (_("Audio:"));
+  gtk_widget_set_name (labelV4LAudioDevice, "labelV4LAudioDevice");
+  gtk_widget_show (labelV4LAudioDevice);
+  gtk_table_attach (GTK_TABLE (tableV4L), labelV4LAudioDevice, 0, 1, 1, 2,
                     (GtkAttachOptions) (GTK_FILL),
                     (GtkAttachOptions) (0), 0, 0);
-  gtk_label_set_justify (GTK_LABEL (labelV4LAudio), GTK_JUSTIFY_LEFT);
-  gtk_misc_set_alignment (GTK_MISC (labelV4LAudio), 0, 0.5);
+  gtk_label_set_justify (GTK_LABEL (labelV4LAudioDevice), GTK_JUSTIFY_LEFT);
+  gtk_misc_set_alignment (GTK_MISC (labelV4LAudioDevice), 0, 0.5);
 
-  labelV4LVideo = gtk_label_new (_("Video:"));
-  gtk_widget_set_name (labelV4LVideo, "labelV4LVideo");
-  gtk_widget_show (labelV4LVideo);
-  gtk_table_attach (GTK_TABLE (table), labelV4LVideo, 0, 1, 1, 2,
+  labelV4LChannel = gtk_label_new (_("Channel:"));
+  gtk_widget_set_name (labelV4LChannel, "labelV4LChannel");
+  gtk_widget_show (labelV4LChannel);
+  gtk_table_attach (GTK_TABLE (tableV4L), labelV4LChannel, 0, 1, 2, 3,
                     (GtkAttachOptions) (GTK_FILL),
                     (GtkAttachOptions) (0), 0, 0);
-  gtk_label_set_justify (GTK_LABEL (labelV4LVideo), GTK_JUSTIFY_LEFT);
-  gtk_misc_set_alignment (GTK_MISC (labelV4LVideo), 0, 0.5);
+  gtk_label_set_justify (GTK_LABEL (labelV4LChannel), GTK_JUSTIFY_LEFT);
+  gtk_misc_set_alignment (GTK_MISC (labelV4LChannel), 0, 0.5);
 
-  comboV4LAudio = gtk_combo_new ();
-  g_object_set_data (G_OBJECT (GTK_COMBO (comboV4LAudio)->popwin),
-                     "GladeParentKey", comboV4LAudio);
-  gtk_widget_set_name (comboV4LAudio, "comboV4LAudio");
-  gtk_widget_show (comboV4LAudio);
-  gtk_table_attach (GTK_TABLE (table), comboV4LAudio, 1, 2, 0, 1,
-                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
+  labelV4LNorm = gtk_label_new (_("Norm:"));
+  gtk_widget_set_name (labelV4LNorm, "labelV4LNorm");
+  gtk_widget_show (labelV4LNorm);
+  gtk_table_attach (GTK_TABLE (tableV4L), labelV4LNorm, 0, 1, 3, 4,
+                    (GtkAttachOptions) (GTK_FILL),
                     (GtkAttachOptions) (0), 0, 0);
+  gtk_label_set_justify (GTK_LABEL (labelV4LNorm), GTK_JUSTIFY_LEFT);
+  gtk_misc_set_alignment (GTK_MISC (labelV4LNorm), 0, 0.5);
 
-  entryV4LAudio = GTK_COMBO (comboV4LAudio)->entry;
-  gtk_widget_set_name (entryV4LAudio, "entryV4LAudio");
-  gtk_widget_show (entryV4LAudio);
-  gtk_entry_set_text (GTK_ENTRY (entryV4LAudio), _("/dev/dsp"));
-  gtk_entry_set_activates_default (GTK_ENTRY (entryV4LAudio), TRUE);
+  labelV4LSize = gtk_label_new (_("Size:"));
+  gtk_widget_set_name (labelV4LSize, "labelV4LSize");
+  gtk_widget_show (labelV4LSize);
+  gtk_table_attach (GTK_TABLE (tableV4L), labelV4LSize, 0, 1, 4, 5,
+                    (GtkAttachOptions) (GTK_FILL),
+                    (GtkAttachOptions) (0), 0, 0);
+  gtk_label_set_justify (GTK_LABEL (labelV4LSize), GTK_JUSTIFY_LEFT);
+  gtk_misc_set_alignment (GTK_MISC (labelV4LSize), 0, 0.5);
 
-  comboV4LVideo = gtk_combo_new ();
-  g_object_set_data (G_OBJECT (GTK_COMBO (comboV4LVideo)->popwin),
-                     "GladeParentKey", comboV4LVideo);
-  gtk_widget_set_name (comboV4LVideo, "comboV4LVideo");
-  gtk_widget_show (comboV4LVideo);
-  gtk_table_attach (GTK_TABLE (table), comboV4LVideo, 1, 2, 1, 2,
-                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
+  labelV4LFrequency = gtk_label_new (_("Frequency:"));
+  gtk_widget_set_name (labelV4LFrequency, "labelV4LFrequency");
+  gtk_widget_show (labelV4LFrequency);
+  gtk_table_attach (GTK_TABLE (tableV4L), labelV4LFrequency, 0, 1, 5, 6,
+                    (GtkAttachOptions) (GTK_FILL),
+                    (GtkAttachOptions) (0), 0, 0);
+  gtk_label_set_justify (GTK_LABEL (labelV4LFrequency), GTK_JUSTIFY_LEFT);
+  gtk_misc_set_alignment (GTK_MISC (labelV4LFrequency), 0, 0.5);
+
+  labelV4LSampleRate = gtk_label_new (_("Samplerate:"));
+  gtk_widget_set_name (labelV4LSampleRate, "labelV4LSampleRate");
+  gtk_widget_show (labelV4LSampleRate);
+  gtk_table_attach (GTK_TABLE (tableV4L), labelV4LSampleRate, 0, 1, 6, 7,
+                    (GtkAttachOptions) (GTK_FILL),
+                    (GtkAttachOptions) (0), 0, 0);
+  gtk_label_set_justify (GTK_LABEL (labelV4LSampleRate), GTK_JUSTIFY_LEFT);
+  gtk_misc_set_alignment (GTK_MISC (labelV4LSampleRate), 0, 0.5);
+
+  labelV4LQuality = gtk_label_new (_("Quality:"));
+  gtk_widget_set_name (labelV4LQuality, "labelV4LQuality");
+  gtk_widget_show (labelV4LQuality);
+  gtk_table_attach (GTK_TABLE (tableV4L), labelV4LQuality, 0, 1, 7, 8,
+                    (GtkAttachOptions) (GTK_FILL),
+                    (GtkAttachOptions) (0), 0, 0);
+  gtk_label_set_justify (GTK_LABEL (labelV4LQuality), GTK_JUSTIFY_LEFT);
+  gtk_misc_set_alignment (GTK_MISC (labelV4LQuality), 0, 0.5);
+
+  labelV4LTuner = gtk_label_new (_("Tuner:"));
+  gtk_widget_set_name (labelV4LTuner, "labelV4LTuner");
+  gtk_widget_show (labelV4LTuner);
+  gtk_table_attach (GTK_TABLE (tableV4L), labelV4LTuner, 0, 1, 9, 10,
+                    (GtkAttachOptions) (GTK_FILL),
+                    (GtkAttachOptions) (0), 0, 0);
+  gtk_label_set_justify (GTK_LABEL (labelV4LTuner), GTK_JUSTIFY_LEFT);
+  gtk_misc_set_alignment (GTK_MISC (labelV4LTuner), 0, 0.5);
+
+  labelV4LSoundDirection = gtk_label_new (_("Sound:"));
+  gtk_widget_set_name (labelV4LSoundDirection, "labelV4LSoundDirection");
+  gtk_widget_show (labelV4LSoundDirection);
+  gtk_table_attach (GTK_TABLE (tableV4L), labelV4LSoundDirection, 0, 1, 8, 9,
+                    (GtkAttachOptions) (GTK_FILL),
+                    (GtkAttachOptions) (0), 0, 0);
+  gtk_label_set_justify (GTK_LABEL (labelV4LSoundDirection), GTK_JUSTIFY_LEFT);
+  gtk_misc_set_alignment (GTK_MISC (labelV4LSoundDirection), 0, 0.5);
+
+  labelV4LMJPEG = gtk_label_new (_("MJPEG:"));
+  gtk_widget_set_name (labelV4LMJPEG, "labelV4LMJPEG");
+  gtk_widget_show (labelV4LMJPEG);
+  gtk_table_attach (GTK_TABLE (tableV4L), labelV4LMJPEG, 0, 1, 10, 11,
+                    (GtkAttachOptions) (GTK_FILL),
+                    (GtkAttachOptions) (0), 0, 0);
+  gtk_label_set_justify (GTK_LABEL (labelV4LMJPEG), GTK_JUSTIFY_LEFT);
+  gtk_misc_set_alignment (GTK_MISC (labelV4LMJPEG), 0, 0.5);
+
+  labelV4LDecimation = gtk_label_new (_("Decimation:"));
+  gtk_widget_set_name (labelV4LDecimation, "labelV4LDecimation");
+  gtk_widget_show (labelV4LDecimation);
+  gtk_table_attach (GTK_TABLE (tableV4L), labelV4LDecimation, 0, 1, 11, 12,
+                    (GtkAttachOptions) (GTK_FILL),
+                    (GtkAttachOptions) (0), 0, 0);
+  gtk_label_set_justify (GTK_LABEL (labelV4LDecimation), GTK_JUSTIFY_LEFT);
+  gtk_misc_set_alignment (GTK_MISC (labelV4LDecimation), 0, 0.5);
+
+  comboV4lVideoDevice = gtk_combo_new ();
+  g_object_set_data (G_OBJECT (GTK_COMBO (comboV4lVideoDevice)->popwin),
+                     "GladeParentKey", comboV4lVideoDevice);
+  gtk_widget_set_name (comboV4lVideoDevice, "comboV4lVideoDevice");
+  gtk_widget_show (comboV4lVideoDevice);
+  gtk_table_attach (GTK_TABLE (tableV4L), comboV4lVideoDevice, 1, 2, 0, 1,
+                    (GtkAttachOptions) (GTK_EXPAND | GTK_SHRINK | GTK_FILL),
+                    (GtkAttachOptions) (0), 0, 0);
+  gtk_combo_set_value_in_list (GTK_COMBO (comboV4lVideoDevice), TRUE, TRUE);
+  comboV4lVideoDevice_items = g_list_append (comboV4lVideoDevice_items, (gpointer) "/dev/video");
+  comboV4lVideoDevice_items = g_list_append (comboV4lVideoDevice_items, (gpointer) "/dev/video0");
+  comboV4lVideoDevice_items = g_list_append (comboV4lVideoDevice_items, (gpointer) "/dev/video1");
+  gtk_combo_set_popdown_strings (GTK_COMBO (comboV4lVideoDevice), comboV4lVideoDevice_items);
+  g_list_free (comboV4lVideoDevice_items);
+
+  entryV4LVideoDevice = GTK_COMBO (comboV4lVideoDevice)->entry;
+  gtk_widget_set_name (entryV4LVideoDevice, "entryV4LVideoDevice");
+  gtk_widget_show (entryV4LVideoDevice);
+  gtk_entry_set_activates_default (GTK_ENTRY (entryV4LVideoDevice), TRUE);
+
+  comboV4lAudioDevice = gtk_combo_new ();
+  g_object_set_data (G_OBJECT (GTK_COMBO (comboV4lAudioDevice)->popwin),
+                     "GladeParentKey", comboV4lAudioDevice);
+  gtk_widget_set_name (comboV4lAudioDevice, "comboV4lAudioDevice");
+  gtk_widget_show (comboV4lAudioDevice);
+  gtk_table_attach (GTK_TABLE (tableV4L), comboV4lAudioDevice, 1, 2, 1, 2,
+                    (GtkAttachOptions) (GTK_EXPAND | GTK_SHRINK | GTK_FILL),
+                    (GtkAttachOptions) (0), 0, 0);
+  comboV4lAudioDevice_items = g_list_append (comboV4lAudioDevice_items, (gpointer) "/dev/dsp");
+  comboV4lAudioDevice_items = g_list_append (comboV4lAudioDevice_items, (gpointer) "/dev/audio");
+  comboV4lAudioDevice_items = g_list_append (comboV4lAudioDevice_items, (gpointer) "/dev/audio0");
+  comboV4lAudioDevice_items = g_list_append (comboV4lAudioDevice_items, (gpointer) "/dev/audio1");
+  gtk_combo_set_popdown_strings (GTK_COMBO (comboV4lAudioDevice), comboV4lAudioDevice_items);
+  g_list_free (comboV4lAudioDevice_items);
+
+  entryV4LAudioDevice = GTK_COMBO (comboV4lAudioDevice)->entry;
+  gtk_widget_set_name (entryV4LAudioDevice, "entryV4LAudioDevice");
+  gtk_widget_show (entryV4LAudioDevice);
+  gtk_entry_set_activates_default (GTK_ENTRY (entryV4LAudioDevice), TRUE);
+
+  entryV4LChannel_adj = gtk_adjustment_new (0, 0, 100, 1, 10, 10);
+  entryV4LChannel = gtk_spin_button_new (GTK_ADJUSTMENT (entryV4LChannel_adj), 1, 0);
+  gtk_widget_set_name (entryV4LChannel, "entryV4LChannel");
+  gtk_widget_show (entryV4LChannel);
+  gtk_table_attach (GTK_TABLE (tableV4L), entryV4LChannel, 1, 2, 2, 3,
+                    (GtkAttachOptions) (GTK_EXPAND | GTK_SHRINK | GTK_FILL),
+                    (GtkAttachOptions) (0), 0, 0);
+  gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (entryV4LChannel), TRUE);
+
+  comboV4LNorm = gtk_combo_new ();
+  g_object_set_data (G_OBJECT (GTK_COMBO (comboV4LNorm)->popwin),
+                     "GladeParentKey", comboV4LNorm);
+  gtk_widget_set_name (comboV4LNorm, "comboV4LNorm");
+  gtk_widget_show (comboV4LNorm);
+  gtk_table_attach (GTK_TABLE (tableV4L), comboV4LNorm, 1, 2, 3, 4,
+                    (GtkAttachOptions) (GTK_EXPAND | GTK_SHRINK | GTK_FILL),
+                    (GtkAttachOptions) (0), 0, 0);
+  comboV4LNorm_items = g_list_append (comboV4LNorm_items, (gpointer) _("pal"));
+  comboV4LNorm_items = g_list_append (comboV4LNorm_items, (gpointer) _("ntsc"));
+  comboV4LNorm_items = g_list_append (comboV4LNorm_items, (gpointer) _("secam"));
+  comboV4LNorm_items = g_list_append (comboV4LNorm_items, (gpointer) _("auto"));
+  gtk_combo_set_popdown_strings (GTK_COMBO (comboV4LNorm), comboV4LNorm_items);
+  g_list_free (comboV4LNorm_items);
+
+  entryV4LNorm = GTK_COMBO (comboV4LNorm)->entry;
+  gtk_widget_set_name (entryV4LNorm, "entryV4LNorm");
+  gtk_widget_show (entryV4LNorm);
+  gtk_entry_set_activates_default (GTK_ENTRY (entryV4LNorm), TRUE);
+
+  comboV4LSize = gtk_combo_new ();
+  g_object_set_data (G_OBJECT (GTK_COMBO (comboV4LSize)->popwin),
+                     "GladeParentKey", comboV4LSize);
+  gtk_widget_set_name (comboV4LSize, "comboV4LSize");
+  gtk_widget_show (comboV4LSize);
+  gtk_table_attach (GTK_TABLE (tableV4L), comboV4LSize, 1, 2, 4, 5,
+                    (GtkAttachOptions) (GTK_EXPAND | GTK_SHRINK | GTK_FILL),
+                    (GtkAttachOptions) (0), 0, 0);
+  comboV4LSize_items = g_list_append (comboV4LSize_items, (gpointer) _("240x192"));
+  comboV4LSize_items = g_list_append (comboV4LSize_items, (gpointer) _("320x240"));
+  comboV4LSize_items = g_list_append (comboV4LSize_items, (gpointer) _("qsif"));
+  comboV4LSize_items = g_list_append (comboV4LSize_items, (gpointer) _("qcif"));
+  comboV4LSize_items = g_list_append (comboV4LSize_items, (gpointer) _("sif"));
+  comboV4LSize_items = g_list_append (comboV4LSize_items, (gpointer) _("cif"));
+  comboV4LSize_items = g_list_append (comboV4LSize_items, (gpointer) _("vga"));
+  gtk_combo_set_popdown_strings (GTK_COMBO (comboV4LSize), comboV4LSize_items);
+  g_list_free (comboV4LSize_items);
+
+  entryV4LSize = GTK_COMBO (comboV4LSize)->entry;
+  gtk_widget_set_name (entryV4LSize, "entryV4LSize");
+  gtk_widget_show (entryV4LSize);
+  gtk_entry_set_activates_default (GTK_ENTRY (entryV4LSize), TRUE);
+
+  entryV4LFrequency_adj = gtk_adjustment_new (8692, 0, 65535, 1, 10, 10);
+  entryV4LFrequency = gtk_spin_button_new (GTK_ADJUSTMENT (entryV4LFrequency_adj), 1, 0);
+  gtk_widget_set_name (entryV4LFrequency, "entryV4LFrequency");
+  gtk_widget_show (entryV4LFrequency);
+  gtk_table_attach (GTK_TABLE (tableV4L), entryV4LFrequency, 1, 2, 5, 6,
+                    (GtkAttachOptions) (GTK_EXPAND | GTK_SHRINK | GTK_FILL),
+                    (GtkAttachOptions) (0), 0, 0);
+  gtk_tooltips_set_tip (tooltips, entryV4LFrequency, _("kHz"), NULL);
+  gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (entryV4LFrequency), TRUE);
+
+  entryV4LSampleRate_adj = gtk_adjustment_new (44100, 0, 65535, 1, 10, 10);
+  entryV4LSampleRate = gtk_spin_button_new (GTK_ADJUSTMENT (entryV4LSampleRate_adj), 1, 0);
+  gtk_widget_set_name (entryV4LSampleRate, "entryV4LSampleRate");
+  gtk_widget_show (entryV4LSampleRate);
+  gtk_table_attach (GTK_TABLE (tableV4L), entryV4LSampleRate, 1, 2, 6, 7,
+                    (GtkAttachOptions) (GTK_EXPAND | GTK_SHRINK | GTK_FILL),
                     (GtkAttachOptions) (0), 0, 0);
+  gtk_tooltips_set_tip (tooltips, entryV4LSampleRate, _("Hz/s"), NULL);
+  gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (entryV4LSampleRate), TRUE);
+
+  entryV4LQuality_adj = gtk_adjustment_new (100, 0, 65535, 1, 10, 10);
+  entryV4LQuality = gtk_spin_button_new (GTK_ADJUSTMENT (entryV4LQuality_adj), 1, 0);
+  gtk_widget_set_name (entryV4LQuality, "entryV4LQuality");
+  gtk_widget_show (entryV4LQuality);
+  gtk_table_attach (GTK_TABLE (tableV4L), entryV4LQuality, 1, 2, 7, 8,
+                    (GtkAttachOptions) (GTK_EXPAND | GTK_SHRINK | GTK_FILL),
+                    (GtkAttachOptions) (0), 0, 0);
+  gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (entryV4LQuality), TRUE);
+
+  comboV4LSoundDirection = gtk_combo_new ();
+  g_object_set_data (G_OBJECT (GTK_COMBO (comboV4LSoundDirection)->popwin),
+                     "GladeParentKey", comboV4LSoundDirection);
+  gtk_widget_set_name (comboV4LSoundDirection, "comboV4LSoundDirection");
+  gtk_widget_show (comboV4LSoundDirection);
+  gtk_table_attach (GTK_TABLE (tableV4L), comboV4LSoundDirection, 1, 2, 8, 9,
+                    (GtkAttachOptions) (GTK_EXPAND | GTK_SHRINK | GTK_FILL),
+                    (GtkAttachOptions) (0), 0, 0);
+  gtk_combo_set_value_in_list (GTK_COMBO (comboV4LSoundDirection), TRUE, TRUE);
+  gtk_combo_set_use_arrows_always (GTK_COMBO (comboV4LSoundDirection), TRUE);
+  comboV4LSoundDirection_items = g_list_append (comboV4LSoundDirection_items, (gpointer) _("mono"));
+  comboV4LSoundDirection_items = g_list_append (comboV4LSoundDirection_items, (gpointer) _("stereo"));
+  gtk_combo_set_popdown_strings (GTK_COMBO (comboV4LSoundDirection), comboV4LSoundDirection_items);
+  g_list_free (comboV4LSoundDirection_items);
+
+  entryV4LSoundDirection = GTK_COMBO (comboV4LSoundDirection)->entry;
+  gtk_widget_set_name (entryV4LSoundDirection, "entryV4LSoundDirection");
+  gtk_widget_show (entryV4LSoundDirection);
+  gtk_entry_set_activates_default (GTK_ENTRY (entryV4LSoundDirection), TRUE);
+
+  entryV4LTuner_adj = gtk_adjustment_new (0, -1, 100, 1, 10, 10);
+  entryV4LTuner = gtk_spin_button_new (GTK_ADJUSTMENT (entryV4LTuner_adj), 1, 0);
+  gtk_widget_set_name (entryV4LTuner, "entryV4LTuner");
+  gtk_widget_show (entryV4LTuner);
+  gtk_table_attach (GTK_TABLE (tableV4L), entryV4LTuner, 1, 2, 9, 10,
+                    (GtkAttachOptions) (GTK_EXPAND | GTK_SHRINK | GTK_FILL),
+                    (GtkAttachOptions) (0), 0, 0);
+  gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (entryV4LTuner), TRUE);
+
+  checkV4LMJPEG = gtk_check_button_new_with_mnemonic (_("enable"));
+  gtk_widget_set_name (checkV4LMJPEG, "checkV4LMJPEG");
+  gtk_widget_show (checkV4LMJPEG);
+  gtk_table_attach (GTK_TABLE (tableV4L), checkV4LMJPEG, 1, 2, 10, 11,
+                    (GtkAttachOptions) (GTK_EXPAND | GTK_SHRINK | GTK_FILL),
+                    (GtkAttachOptions) (0), 0, 0);
+
+  entryV4LDecimation_adj = gtk_adjustment_new (1, 0, 100, 1, 10, 10);
+  entryV4LDecimation = gtk_spin_button_new (GTK_ADJUSTMENT (entryV4LDecimation_adj), 1, 0);
+  gtk_widget_set_name (entryV4LDecimation, "entryV4LDecimation");
+  gtk_widget_show (entryV4LDecimation);
+  gtk_table_attach (GTK_TABLE (tableV4L), entryV4LDecimation, 1, 2, 11, 12,
+                    (GtkAttachOptions) (GTK_EXPAND | GTK_SHRINK | GTK_FILL),
+                    (GtkAttachOptions) (0), 0, 0);
+
+  labelV4LTranscode = gtk_label_new (_("Transcode:"));
+  gtk_widget_set_name (labelV4LTranscode, "labelV4LTranscode");
+  gtk_widget_show (labelV4LTranscode);
+  gtk_table_attach (GTK_TABLE (tableV4L), labelV4LTranscode, 0, 1, 12, 13,
+                    (GtkAttachOptions) (GTK_FILL),
+                    (GtkAttachOptions) (0), 0, 0);
+  gtk_label_set_justify (GTK_LABEL (labelV4LTranscode), GTK_JUSTIFY_LEFT);
+  gtk_misc_set_alignment (GTK_MISC (labelV4LTranscode), 0, 0.5);
 
-  entryV4LVideo = GTK_COMBO (comboV4LVideo)->entry;
-  gtk_widget_set_name (entryV4LVideo, "entryV4LVideo");
-  gtk_widget_show (entryV4LVideo);
-  gtk_entry_set_text (GTK_ENTRY (entryV4LVideo), _("/dev/video"));
-  gtk_entry_set_activates_default (GTK_ENTRY (entryV4LVideo), TRUE);
+  checkV4LTranscode = gtk_check_button_new_with_mnemonic (_("enable"));
+  gtk_widget_set_name (checkV4LTranscode, "checkV4LTranscode");
+  gtk_widget_show (checkV4LTranscode);
+  gtk_table_attach (GTK_TABLE (tableV4L), checkV4LTranscode, 1, 2, 12, 13,
+                    (GtkAttachOptions) (GTK_FILL),
+                    (GtkAttachOptions) (0), 0, 0);
 
   hbox16 = gtk_hbox_new (FALSE, 0);
   gtk_widget_set_name (hbox16, "hbox16");
@@ -602,184 +880,346 @@ create_pda (void)
   gtk_widget_show (vbox1);
   gtk_container_add (GTK_CONTAINER (notebook), vbox1);
 
-  vbox6 = gtk_vbox_new (FALSE, 0);
-  gtk_widget_set_name (vbox6, "vbox6");
-  gtk_widget_show (vbox6);
-  gtk_box_pack_start (GTK_BOX (vbox1), vbox6, TRUE, TRUE, 0);
-
-  frameVideo = gtk_frame_new (NULL);
-  gtk_widget_set_name (frameVideo, "frameVideo");
-  gtk_widget_show (frameVideo);
-  gtk_box_pack_start (GTK_BOX (vbox6), frameVideo, TRUE, TRUE, 0);
-
-  table4 = gtk_table_new (3, 2, FALSE);
-  gtk_widget_set_name (table4, "table4");
-  gtk_widget_show (table4);
-  gtk_container_add (GTK_CONTAINER (frameVideo), table4);
-
-  labelVideoDevice = gtk_label_new (_("Device :"));
-  gtk_widget_set_name (labelVideoDevice, "labelVideoDevice");
-  gtk_widget_show (labelVideoDevice);
-  gtk_table_attach (GTK_TABLE (table4), labelVideoDevice, 0, 1, 0, 1,
-                    (GtkAttachOptions) (GTK_FILL),
-                    (GtkAttachOptions) (0), 0, 0);
-  gtk_label_set_justify (GTK_LABEL (labelVideoDevice), GTK_JUSTIFY_LEFT);
-  gtk_misc_set_alignment (GTK_MISC (labelVideoDevice), 0, 0.5);
+  scrolledwindowTranscode = gtk_scrolled_window_new (NULL, NULL);
+  gtk_widget_set_name (scrolledwindowTranscode, "scrolledwindowTranscode");
+  gtk_widget_show (scrolledwindowTranscode);
+  gtk_box_pack_start (GTK_BOX (vbox1), scrolledwindowTranscode, TRUE, TRUE, 0);
+  gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindowTranscode), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
+
+  viewport5 = gtk_viewport_new (NULL, NULL);
+  gtk_widget_set_name (viewport5, "viewport5");
+  gtk_widget_show (viewport5);
+  gtk_container_add (GTK_CONTAINER (scrolledwindowTranscode), viewport5);
 
-  labelVideoCodec = gtk_label_new (_("Codec :"));
+  tableTranscode = gtk_table_new (14, 2, FALSE);
+  gtk_widget_set_name (tableTranscode, "tableTranscode");
+  gtk_widget_show (tableTranscode);
+  gtk_container_add (GTK_CONTAINER (viewport5), tableTranscode);
+
+  labelVideoCodec = gtk_label_new (_("Video Codec:"));
   gtk_widget_set_name (labelVideoCodec, "labelVideoCodec");
   gtk_widget_show (labelVideoCodec);
-  gtk_table_attach (GTK_TABLE (table4), labelVideoCodec, 0, 1, 1, 2,
+  gtk_table_attach (GTK_TABLE (tableTranscode), labelVideoCodec, 0, 1, 0, 1,
                     (GtkAttachOptions) (GTK_FILL),
                     (GtkAttachOptions) (0), 0, 0);
   gtk_label_set_justify (GTK_LABEL (labelVideoCodec), GTK_JUSTIFY_LEFT);
   gtk_misc_set_alignment (GTK_MISC (labelVideoCodec), 0, 0.5);
 
-  labelVideoBitrate = gtk_label_new (_("Bitrate :"));
-  gtk_widget_set_name (labelVideoBitrate, "labelVideoBitrate");
-  gtk_widget_show (labelVideoBitrate);
-  gtk_table_attach (GTK_TABLE (table4), labelVideoBitrate, 0, 1, 2, 3,
-                    (GtkAttachOptions) (GTK_FILL),
-                    (GtkAttachOptions) (0), 0, 0);
-  gtk_label_set_justify (GTK_LABEL (labelVideoBitrate), GTK_JUSTIFY_LEFT);
-  gtk_misc_set_alignment (GTK_MISC (labelVideoBitrate), 0, 0.5);
-
-  comboVideoDevice = gtk_combo_new ();
-  g_object_set_data (G_OBJECT (GTK_COMBO (comboVideoDevice)->popwin),
-                     "GladeParentKey", comboVideoDevice);
-  gtk_widget_set_name (comboVideoDevice, "comboVideoDevice");
-  gtk_widget_show (comboVideoDevice);
-  gtk_table_attach (GTK_TABLE (table4), comboVideoDevice, 1, 2, 0, 1,
-                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
-                    (GtkAttachOptions) (0), 0, 0);
-
-  entryVideoDevice = GTK_COMBO (comboVideoDevice)->entry;
-  gtk_widget_set_name (entryVideoDevice, "entryVideoDevice");
-  gtk_widget_show (entryVideoDevice);
-  gtk_entry_set_text (GTK_ENTRY (entryVideoDevice), _("/dev/video"));
-
   comboVideoCodec = gtk_combo_new ();
   g_object_set_data (G_OBJECT (GTK_COMBO (comboVideoCodec)->popwin),
                      "GladeParentKey", comboVideoCodec);
   gtk_widget_set_name (comboVideoCodec, "comboVideoCodec");
   gtk_widget_show (comboVideoCodec);
-  gtk_table_attach (GTK_TABLE (table4), comboVideoCodec, 1, 2, 1, 2,
-                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
+  gtk_table_attach (GTK_TABLE (tableTranscode), comboVideoCodec, 1, 2, 0, 1,
+                    (GtkAttachOptions) (GTK_EXPAND | GTK_SHRINK | GTK_FILL),
                     (GtkAttachOptions) (0), 0, 0);
+  comboVideoCodec_items = g_list_append (comboVideoCodec_items, (gpointer) _("huffyuv"));
+  comboVideoCodec_items = g_list_append (comboVideoCodec_items, (gpointer) _("mp1v"));
+  comboVideoCodec_items = g_list_append (comboVideoCodec_items, (gpointer) _("mp2v"));
+  comboVideoCodec_items = g_list_append (comboVideoCodec_items, (gpointer) _("mp4v"));
+  comboVideoCodec_items = g_list_append (comboVideoCodec_items, (gpointer) _("H263"));
+  comboVideoCodec_items = g_list_append (comboVideoCodec_items, (gpointer) _("WMV1"));
+  comboVideoCodec_items = g_list_append (comboVideoCodec_items, (gpointer) _("WMV2"));
+  gtk_combo_set_popdown_strings (GTK_COMBO (comboVideoCodec), comboVideoCodec_items);
+  g_list_free (comboVideoCodec_items);
 
   entryVideoCodec = GTK_COMBO (comboVideoCodec)->entry;
   gtk_widget_set_name (entryVideoCodec, "entryVideoCodec");
   gtk_widget_show (entryVideoCodec);
-  gtk_entry_set_text (GTK_ENTRY (entryVideoCodec), _("huff"));
+  gtk_entry_set_activates_default (GTK_ENTRY (entryVideoCodec), TRUE);
 
-  spinVideoBitrate_adj = gtk_adjustment_new (64, 0, 100, 1, 10, 10);
-  spinVideoBitrate = gtk_spin_button_new (GTK_ADJUSTMENT (spinVideoBitrate_adj), 1, 0);
-  gtk_widget_set_name (spinVideoBitrate, "spinVideoBitrate");
-  gtk_widget_show (spinVideoBitrate);
-  gtk_table_attach (GTK_TABLE (table4), spinVideoBitrate, 1, 2, 2, 3,
-                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
+  labelVideoBitrate = gtk_label_new (_("Video Bitrate:"));
+  gtk_widget_set_name (labelVideoBitrate, "labelVideoBitrate");
+  gtk_widget_show (labelVideoBitrate);
+  gtk_table_attach (GTK_TABLE (tableTranscode), labelVideoBitrate, 0, 1, 1, 2,
+                    (GtkAttachOptions) (GTK_FILL),
                     (GtkAttachOptions) (0), 0, 0);
+  gtk_label_set_justify (GTK_LABEL (labelVideoBitrate), GTK_JUSTIFY_LEFT);
+  gtk_misc_set_alignment (GTK_MISC (labelVideoBitrate), 0, 0.5);
 
-  label42 = gtk_label_new (_("Video"));
-  gtk_widget_set_name (label42, "label42");
-  gtk_widget_show (label42);
-  gtk_frame_set_label_widget (GTK_FRAME (frameVideo), label42);
-  gtk_label_set_justify (GTK_LABEL (label42), GTK_JUSTIFY_LEFT);
-
-  frameAudio = gtk_frame_new (NULL);
-  gtk_widget_set_name (frameAudio, "frameAudio");
-  gtk_widget_show (frameAudio);
-  gtk_box_pack_start (GTK_BOX (vbox6), frameAudio, TRUE, TRUE, 0);
-
-  table3 = gtk_table_new (3, 2, FALSE);
-  gtk_widget_set_name (table3, "table3");
-  gtk_widget_show (table3);
-  gtk_container_add (GTK_CONTAINER (frameAudio), table3);
+  labelVideoBitrateTolerance = gtk_label_new (_("Bitrate Tolerance:"));
+  gtk_widget_set_name (labelVideoBitrateTolerance, "labelVideoBitrateTolerance");
+  gtk_widget_show (labelVideoBitrateTolerance);
+  gtk_table_attach (GTK_TABLE (tableTranscode), labelVideoBitrateTolerance, 0, 1, 2, 3,
+                    (GtkAttachOptions) (GTK_FILL),
+                    (GtkAttachOptions) (0), 0, 0);
+  gtk_label_set_justify (GTK_LABEL (labelVideoBitrateTolerance), GTK_JUSTIFY_LEFT);
+  gtk_misc_set_alignment (GTK_MISC (labelVideoBitrateTolerance), 0, 0.5);
 
-  labelAudioDevice = gtk_label_new (_("Device :"));
-  gtk_widget_set_name (labelAudioDevice, "labelAudioDevice");
-  gtk_widget_show (labelAudioDevice);
-  gtk_table_attach (GTK_TABLE (table3), labelAudioDevice, 0, 1, 0, 1,
+  labelVideoKeyInterval = gtk_label_new (_("Keyframe Interval:"));
+  gtk_widget_set_name (labelVideoKeyInterval, "labelVideoKeyInterval");
+  gtk_widget_show (labelVideoKeyInterval);
+  gtk_table_attach (GTK_TABLE (tableTranscode), labelVideoKeyInterval, 0, 1, 3, 4,
                     (GtkAttachOptions) (GTK_FILL),
                     (GtkAttachOptions) (0), 0, 0);
-  gtk_label_set_justify (GTK_LABEL (labelAudioDevice), GTK_JUSTIFY_LEFT);
-  gtk_misc_set_alignment (GTK_MISC (labelAudioDevice), 0, 0.5);
+  gtk_label_set_justify (GTK_LABEL (labelVideoKeyInterval), GTK_JUSTIFY_LEFT);
+  gtk_misc_set_alignment (GTK_MISC (labelVideoKeyInterval), 0, 0.5);
 
-  labelAudioCodec = gtk_label_new (_("Codec :"));
+  labelAudioCodec = gtk_label_new (_("Audio Codec:"));
   gtk_widget_set_name (labelAudioCodec, "labelAudioCodec");
   gtk_widget_show (labelAudioCodec);
-  gtk_table_attach (GTK_TABLE (table3), labelAudioCodec, 0, 1, 1, 2,
+  gtk_table_attach (GTK_TABLE (tableTranscode), labelAudioCodec, 0, 1, 5, 6,
                     (GtkAttachOptions) (GTK_FILL),
                     (GtkAttachOptions) (0), 0, 0);
   gtk_label_set_justify (GTK_LABEL (labelAudioCodec), GTK_JUSTIFY_LEFT);
   gtk_misc_set_alignment (GTK_MISC (labelAudioCodec), 0, 0.5);
 
-  labelAudioBitrate = gtk_label_new (_("Bitrate :"));
-  gtk_widget_set_name (labelAudioBitrate, "labelAudioBitrate");
-  gtk_widget_show (labelAudioBitrate);
-  gtk_table_attach (GTK_TABLE (table3), labelAudioBitrate, 0, 1, 2, 3,
+  labelVideoDeinterlace = gtk_label_new (_("Deinterlace:"));
+  gtk_widget_set_name (labelVideoDeinterlace, "labelVideoDeinterlace");
+  gtk_widget_show (labelVideoDeinterlace);
+  gtk_table_attach (GTK_TABLE (tableTranscode), labelVideoDeinterlace, 0, 1, 4, 5,
                     (GtkAttachOptions) (GTK_FILL),
                     (GtkAttachOptions) (0), 0, 0);
-  gtk_label_set_justify (GTK_LABEL (labelAudioBitrate), GTK_JUSTIFY_LEFT);
-  gtk_misc_set_alignment (GTK_MISC (labelAudioBitrate), 0, 0.5);
+  gtk_label_set_justify (GTK_LABEL (labelVideoDeinterlace), GTK_JUSTIFY_LEFT);
+  gtk_misc_set_alignment (GTK_MISC (labelVideoDeinterlace), 0, 0.5);
 
-  comboAudioDevice = gtk_combo_new ();
-  g_object_set_data (G_OBJECT (GTK_COMBO (comboAudioDevice)->popwin),
-                     "GladeParentKey", comboAudioDevice);
-  gtk_widget_set_name (comboAudioDevice, "comboAudioDevice");
-  gtk_widget_show (comboAudioDevice);
-  gtk_table_attach (GTK_TABLE (table3), comboAudioDevice, 1, 2, 0, 1,
+  labelStdAccess = gtk_label_new (_("Access:"));
+  gtk_widget_set_name (labelStdAccess, "labelStdAccess");
+  gtk_widget_show (labelStdAccess);
+  gtk_table_attach (GTK_TABLE (tableTranscode), labelStdAccess, 0, 1, 7, 8,
+                    (GtkAttachOptions) (GTK_FILL),
+                    (GtkAttachOptions) (0), 0, 0);
+  gtk_label_set_justify (GTK_LABEL (labelStdAccess), GTK_JUSTIFY_LEFT);
+  gtk_misc_set_alignment (GTK_MISC (labelStdAccess), 0, 0.5);
+
+  labelStdMuxer = gtk_label_new (_("Muxer:"));
+  gtk_widget_set_name (labelStdMuxer, "labelStdMuxer");
+  gtk_widget_show (labelStdMuxer);
+  gtk_table_attach (GTK_TABLE (tableTranscode), labelStdMuxer, 0, 1, 8, 9,
+                    (GtkAttachOptions) (GTK_FILL),
+                    (GtkAttachOptions) (0), 0, 0);
+  gtk_label_set_justify (GTK_LABEL (labelStdMuxer), GTK_JUSTIFY_LEFT);
+  gtk_misc_set_alignment (GTK_MISC (labelStdMuxer), 0, 0.5);
+
+  labelStdUrl = gtk_label_new (_("URL:"));
+  gtk_widget_set_name (labelStdUrl, "labelStdUrl");
+  gtk_widget_show (labelStdUrl);
+  gtk_table_attach (GTK_TABLE (tableTranscode), labelStdUrl, 0, 1, 9, 10,
+                    (GtkAttachOptions) (GTK_FILL),
+                    (GtkAttachOptions) (0), 0, 0);
+  gtk_label_set_justify (GTK_LABEL (labelStdUrl), GTK_JUSTIFY_LEFT);
+  gtk_misc_set_alignment (GTK_MISC (labelStdUrl), 0, 0.5);
+
+  labelStdTimeToLive = gtk_label_new (_("Time To Live (TTL):"));
+  gtk_widget_set_name (labelStdTimeToLive, "labelStdTimeToLive");
+  gtk_widget_show (labelStdTimeToLive);
+  gtk_table_attach (GTK_TABLE (tableTranscode), labelStdTimeToLive, 0, 1, 10, 11,
+                    (GtkAttachOptions) (GTK_FILL),
+                    (GtkAttachOptions) (0), 0, 0);
+  gtk_label_set_justify (GTK_LABEL (labelStdTimeToLive), GTK_JUSTIFY_LEFT);
+  gtk_misc_set_alignment (GTK_MISC (labelStdTimeToLive), 0, 0.5);
+
+  entryStdTTL_adj = gtk_adjustment_new (1, 0, 100, 1, 10, 10);
+  entryStdTTL = gtk_spin_button_new (GTK_ADJUSTMENT (entryStdTTL_adj), 1, 0);
+  gtk_widget_set_name (entryStdTTL, "entryStdTTL");
+  gtk_widget_show (entryStdTTL);
+  gtk_table_attach (GTK_TABLE (tableTranscode), entryStdTTL, 1, 2, 10, 11,
                     (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
                     (GtkAttachOptions) (0), 0, 0);
 
-  entryAudioDevice = GTK_COMBO (comboAudioDevice)->entry;
-  gtk_widget_set_name (entryAudioDevice, "entryAudioDevice");
-  gtk_widget_show (entryAudioDevice);
-  gtk_entry_set_text (GTK_ENTRY (entryAudioDevice), _("/dev/dsp"));
+  comboStdURL = gtk_combo_new ();
+  g_object_set_data (G_OBJECT (GTK_COMBO (comboStdURL)->popwin),
+                     "GladeParentKey", comboStdURL);
+  gtk_widget_set_name (comboStdURL, "comboStdURL");
+  gtk_widget_show (comboStdURL);
+  gtk_table_attach (GTK_TABLE (tableTranscode), comboStdURL, 1, 2, 9, 10,
+                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
+                    (GtkAttachOptions) (0), 0, 0);
+  comboStdURL_items = g_list_append (comboStdURL_items, (gpointer) _("127.0.0.1"));
+  comboStdURL_items = g_list_append (comboStdURL_items, (gpointer) _("localhost"));
+  comboStdURL_items = g_list_append (comboStdURL_items, (gpointer) _("localhost.localdomain"));
+  comboStdURL_items = g_list_append (comboStdURL_items, (gpointer) _("239.0.0.42"));
+  gtk_combo_set_popdown_strings (GTK_COMBO (comboStdURL), comboStdURL_items);
+  g_list_free (comboStdURL_items);
+
+  entryStdURL = GTK_COMBO (comboStdURL)->entry;
+  gtk_widget_set_name (entryStdURL, "entryStdURL");
+  gtk_widget_show (entryStdURL);
+  gtk_entry_set_activates_default (GTK_ENTRY (entryStdURL), TRUE);
+
+  comboStdMuxer = gtk_combo_new ();
+  g_object_set_data (G_OBJECT (GTK_COMBO (comboStdMuxer)->popwin),
+                     "GladeParentKey", comboStdMuxer);
+  gtk_widget_set_name (comboStdMuxer, "comboStdMuxer");
+  gtk_widget_show (comboStdMuxer);
+  gtk_table_attach (GTK_TABLE (tableTranscode), comboStdMuxer, 1, 2, 8, 9,
+                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
+                    (GtkAttachOptions) (0), 0, 0);
+  comboStdMuxer_items = g_list_append (comboStdMuxer_items, (gpointer) _("PS"));
+  comboStdMuxer_items = g_list_append (comboStdMuxer_items, (gpointer) _("TS"));
+  comboStdMuxer_items = g_list_append (comboStdMuxer_items, (gpointer) _("MPEG1"));
+  comboStdMuxer_items = g_list_append (comboStdMuxer_items, (gpointer) _("AVI"));
+  comboStdMuxer_items = g_list_append (comboStdMuxer_items, (gpointer) _("OGG"));
+  comboStdMuxer_items = g_list_append (comboStdMuxer_items, (gpointer) _("MP4"));
+  comboStdMuxer_items = g_list_append (comboStdMuxer_items, (gpointer) _("MOV"));
+  comboStdMuxer_items = g_list_append (comboStdMuxer_items, (gpointer) _("ASF"));
+  gtk_combo_set_popdown_strings (GTK_COMBO (comboStdMuxer), comboStdMuxer_items);
+  g_list_free (comboStdMuxer_items);
+
+  entryStdMuxer = GTK_COMBO (comboStdMuxer)->entry;
+  gtk_widget_set_name (entryStdMuxer, "entryStdMuxer");
+  gtk_widget_show (entryStdMuxer);
+  gtk_entry_set_activates_default (GTK_ENTRY (entryStdMuxer), TRUE);
+
+  entryAudioBitrate_adj = gtk_adjustment_new (256, 0, 65535, 1, 10, 10);
+  entryAudioBitrate = gtk_spin_button_new (GTK_ADJUSTMENT (entryAudioBitrate_adj), 1, 0);
+  gtk_widget_set_name (entryAudioBitrate, "entryAudioBitrate");
+  gtk_widget_show (entryAudioBitrate);
+  gtk_table_attach (GTK_TABLE (tableTranscode), entryAudioBitrate, 1, 2, 6, 7,
+                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
+                    (GtkAttachOptions) (0), 0, 0);
+  gtk_tooltips_set_tip (tooltips, entryAudioBitrate, _("kbits/s"), NULL);
+  gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (entryAudioBitrate), TRUE);
 
   comboAudioCodec = gtk_combo_new ();
   g_object_set_data (G_OBJECT (GTK_COMBO (comboAudioCodec)->popwin),
                      "GladeParentKey", comboAudioCodec);
   gtk_widget_set_name (comboAudioCodec, "comboAudioCodec");
   gtk_widget_show (comboAudioCodec);
-  gtk_table_attach (GTK_TABLE (table3), comboAudioCodec, 1, 2, 1, 2,
+  gtk_table_attach (GTK_TABLE (tableTranscode), comboAudioCodec, 1, 2, 5, 6,
                     (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
                     (GtkAttachOptions) (0), 0, 0);
+  comboAudioCodec_items = g_list_append (comboAudioCodec_items, (gpointer) _("alaw"));
+  comboAudioCodec_items = g_list_append (comboAudioCodec_items, (gpointer) _("ulaw"));
+  comboAudioCodec_items = g_list_append (comboAudioCodec_items, (gpointer) _("mpga"));
+  comboAudioCodec_items = g_list_append (comboAudioCodec_items, (gpointer) _("mp3"));
+  comboAudioCodec_items = g_list_append (comboAudioCodec_items, (gpointer) _("a52"));
+  comboAudioCodec_items = g_list_append (comboAudioCodec_items, (gpointer) _("vorb"));
+  gtk_combo_set_popdown_strings (GTK_COMBO (comboAudioCodec), comboAudioCodec_items);
+  g_list_free (comboAudioCodec_items);
 
   entryAudioCodec = GTK_COMBO (comboAudioCodec)->entry;
   gtk_widget_set_name (entryAudioCodec, "entryAudioCodec");
   gtk_widget_show (entryAudioCodec);
-  gtk_entry_set_text (GTK_ENTRY (entryAudioCodec), _("alaw"));
+  gtk_entry_set_activates_default (GTK_ENTRY (entryAudioCodec), TRUE);
 
-  spinAudioBitrate_adj = gtk_adjustment_new (64, 0, 100, 1, 10, 10);
-  spinAudioBitrate = gtk_spin_button_new (GTK_ADJUSTMENT (spinAudioBitrate_adj), 1, 0);
-  gtk_widget_set_name (spinAudioBitrate, "spinAudioBitrate");
-  gtk_widget_show (spinAudioBitrate);
-  gtk_table_attach (GTK_TABLE (table3), spinAudioBitrate, 1, 2, 2, 3,
+  checkVideoDeinterlace = gtk_check_button_new_with_mnemonic (_("enable"));
+  gtk_widget_set_name (checkVideoDeinterlace, "checkVideoDeinterlace");
+  gtk_widget_show (checkVideoDeinterlace);
+  gtk_table_attach (GTK_TABLE (tableTranscode), checkVideoDeinterlace, 1, 2, 4, 5,
+                    (GtkAttachOptions) (GTK_FILL),
+                    (GtkAttachOptions) (0), 0, 0);
+
+  entryVideoKeyFrameInterval_adj = gtk_adjustment_new (80, 0, 65535, 1, 10, 10);
+  entryVideoKeyFrameInterval = gtk_spin_button_new (GTK_ADJUSTMENT (entryVideoKeyFrameInterval_adj), 1, 0);
+  gtk_widget_set_name (entryVideoKeyFrameInterval, "entryVideoKeyFrameInterval");
+  gtk_widget_show (entryVideoKeyFrameInterval);
+  gtk_table_attach (GTK_TABLE (tableTranscode), entryVideoKeyFrameInterval, 1, 2, 3, 4,
+                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
+                    (GtkAttachOptions) (0), 0, 0);
+  gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (entryVideoKeyFrameInterval), TRUE);
+
+  entryVideoBitrateTolerance_adj = gtk_adjustment_new (800000, 0, 1e+06, 1, 10, 10);
+  entryVideoBitrateTolerance = gtk_spin_button_new (GTK_ADJUSTMENT (entryVideoBitrateTolerance_adj), 1, 0);
+  gtk_widget_set_name (entryVideoBitrateTolerance, "entryVideoBitrateTolerance");
+  gtk_widget_show (entryVideoBitrateTolerance);
+  gtk_table_attach (GTK_TABLE (tableTranscode), entryVideoBitrateTolerance, 1, 2, 2, 3,
                     (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
                     (GtkAttachOptions) (0), 0, 0);
-  gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (spinAudioBitrate), TRUE);
+  gtk_tooltips_set_tip (tooltips, entryVideoBitrateTolerance, _("bits/s"), NULL);
+  gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (entryVideoBitrateTolerance), TRUE);
+
+  entryVideoBitrate_adj = gtk_adjustment_new (3000, 0, 65535, 1, 10, 10);
+  entryVideoBitrate = gtk_spin_button_new (GTK_ADJUSTMENT (entryVideoBitrate_adj), 1, 0);
+  gtk_widget_set_name (entryVideoBitrate, "entryVideoBitrate");
+  gtk_widget_show (entryVideoBitrate);
+  gtk_table_attach (GTK_TABLE (tableTranscode), entryVideoBitrate, 1, 2, 1, 2,
+                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
+                    (GtkAttachOptions) (0), 0, 0);
+  gtk_tooltips_set_tip (tooltips, entryVideoBitrate, _("kbits/s"), NULL);
+  gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (entryVideoBitrate), TRUE);
 
-  label41 = gtk_label_new (_("Audio"));
-  gtk_widget_set_name (label41, "label41");
-  gtk_widget_show (label41);
-  gtk_frame_set_label_widget (GTK_FRAME (frameAudio), label41);
-  gtk_label_set_justify (GTK_LABEL (label41), GTK_JUSTIFY_LEFT);
+  labelAudioBitrate = gtk_label_new (_("Audio Bitrate :"));
+  gtk_widget_set_name (labelAudioBitrate, "labelAudioBitrate");
+  gtk_widget_show (labelAudioBitrate);
+  gtk_table_attach (GTK_TABLE (tableTranscode), labelAudioBitrate, 0, 1, 6, 7,
+                    (GtkAttachOptions) (GTK_FILL),
+                    (GtkAttachOptions) (0), 0, 0);
+  gtk_label_set_justify (GTK_LABEL (labelAudioBitrate), GTK_JUSTIFY_LEFT);
+  gtk_misc_set_alignment (GTK_MISC (labelAudioBitrate), 0, 0.5);
+
+  comboStdAccess = gtk_combo_new ();
+  g_object_set_data (G_OBJECT (GTK_COMBO (comboStdAccess)->popwin),
+                     "GladeParentKey", comboStdAccess);
+  gtk_widget_set_name (comboStdAccess, "comboStdAccess");
+  gtk_widget_show (comboStdAccess);
+  gtk_table_attach (GTK_TABLE (tableTranscode), comboStdAccess, 1, 2, 7, 8,
+                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
+                    (GtkAttachOptions) (0), 0, 0);
+
+  entryStdAccess = GTK_COMBO (comboStdAccess)->entry;
+  gtk_widget_set_name (entryStdAccess, "entryStdAccess");
+  gtk_widget_show (entryStdAccess);
+  gtk_entry_set_activates_default (GTK_ENTRY (entryStdAccess), TRUE);
+
+  labelSAP = gtk_label_new (_("SAP Announce:"));
+  gtk_widget_set_name (labelSAP, "labelSAP");
+  gtk_widget_show (labelSAP);
+  gtk_table_attach (GTK_TABLE (tableTranscode), labelSAP, 0, 1, 11, 12,
+                    (GtkAttachOptions) (GTK_FILL),
+                    (GtkAttachOptions) (0), 0, 0);
+  gtk_label_set_justify (GTK_LABEL (labelSAP), GTK_JUSTIFY_LEFT);
+  gtk_misc_set_alignment (GTK_MISC (labelSAP), 0, 0.5);
+
+  checkSAP = gtk_check_button_new_with_mnemonic (_("enable"));
+  gtk_widget_set_name (checkSAP, "checkSAP");
+  gtk_widget_show (checkSAP);
+  gtk_table_attach (GTK_TABLE (tableTranscode), checkSAP, 1, 2, 11, 12,
+                    (GtkAttachOptions) (GTK_FILL),
+                    (GtkAttachOptions) (0), 0, 0);
+
+  checkSLP = gtk_check_button_new_with_mnemonic (_("enable"));
+  gtk_widget_set_name (checkSLP, "checkSLP");
+  gtk_widget_show (checkSLP);
+  gtk_table_attach (GTK_TABLE (tableTranscode), checkSLP, 1, 2, 12, 13,
+                    (GtkAttachOptions) (GTK_FILL),
+                    (GtkAttachOptions) (0), 0, 0);
+
+  labelSLP_ = gtk_label_new (_("SLP Announce:"));
+  gtk_widget_set_name (labelSLP_, "labelSLP_");
+  gtk_widget_show (labelSLP_);
+  gtk_table_attach (GTK_TABLE (tableTranscode), labelSLP_, 0, 1, 12, 13,
+                    (GtkAttachOptions) (GTK_FILL),
+                    (GtkAttachOptions) (0), 0, 0);
+  gtk_label_set_justify (GTK_LABEL (labelSLP_), GTK_JUSTIFY_LEFT);
+  gtk_misc_set_alignment (GTK_MISC (labelSLP_), 0, 0.5);
+
+  labelAnounceChannel = gtk_label_new (_("Announce Channel:"));
+  gtk_widget_set_name (labelAnounceChannel, "labelAnounceChannel");
+  gtk_widget_show (labelAnounceChannel);
+  gtk_table_attach (GTK_TABLE (tableTranscode), labelAnounceChannel, 0, 1, 13, 14,
+                    (GtkAttachOptions) (GTK_FILL),
+                    (GtkAttachOptions) (0), 0, 0);
+  gtk_label_set_justify (GTK_LABEL (labelAnounceChannel), GTK_JUSTIFY_LEFT);
+  gtk_misc_set_alignment (GTK_MISC (labelAnounceChannel), 0, 0.5);
+
+  comboAnnounceChannel = gtk_combo_new ();
+  g_object_set_data (G_OBJECT (GTK_COMBO (comboAnnounceChannel)->popwin),
+                     "GladeParentKey", comboAnnounceChannel);
+  gtk_widget_set_name (comboAnnounceChannel, "comboAnnounceChannel");
+  gtk_widget_show (comboAnnounceChannel);
+  gtk_table_attach (GTK_TABLE (tableTranscode), comboAnnounceChannel, 1, 2, 13, 14,
+                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
+                    (GtkAttachOptions) (0), 0, 0);
+
+  entryAnnounceChannel = GTK_COMBO (comboAnnounceChannel)->entry;
+  gtk_widget_set_name (entryAnnounceChannel, "entryAnnounceChannel");
+  gtk_widget_show (entryAnnounceChannel);
 
   hbox14 = gtk_hbox_new (FALSE, 0);
   gtk_widget_set_name (hbox14, "hbox14");
   gtk_widget_show (hbox14);
   gtk_box_pack_start (GTK_BOX (vbox1), hbox14, FALSE, FALSE, 0);
 
-  AddServerToPlaylist = gtk_button_new_with_mnemonic (_("Add to Playlist"));
-  gtk_widget_set_name (AddServerToPlaylist, "AddServerToPlaylist");
-  gtk_widget_show (AddServerToPlaylist);
-  gtk_box_pack_start (GTK_BOX (hbox14), AddServerToPlaylist, FALSE, FALSE, 0);
+  AddTranscodeToPlaylist = gtk_button_new_with_mnemonic (_("Add to Playlist"));
+  gtk_widget_set_name (AddTranscodeToPlaylist, "AddTranscodeToPlaylist");
+  gtk_widget_show (AddTranscodeToPlaylist);
+  gtk_box_pack_start (GTK_BOX (hbox14), AddTranscodeToPlaylist, FALSE, FALSE, 0);
 
-  Server = gtk_label_new (_("Server"));
-  gtk_widget_set_name (Server, "Server");
-  gtk_widget_show (Server);
-  gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook), 3), Server);
+  Transcode = gtk_label_new (_("Transcode"));
+  gtk_widget_set_name (Transcode, "Transcode");
+  gtk_widget_show (Transcode);
+  gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook), 3), Transcode);
 
   vbox4 = gtk_vbox_new (FALSE, 0);
   gtk_widget_set_name (vbox4, "vbox4");
@@ -829,6 +1269,17 @@ create_pda (void)
   gtk_widget_show (vbox2);
   gtk_container_add (GTK_CONTAINER (notebook), vbox2);
 
+  scrolledwindowPreference = gtk_scrolled_window_new (NULL, NULL);
+  gtk_widget_set_name (scrolledwindowPreference, "scrolledwindowPreference");
+  gtk_widget_show (scrolledwindowPreference);
+  gtk_box_pack_start (GTK_BOX (vbox2), scrolledwindowPreference, TRUE, TRUE, 0);
+
+  tvPreferences = gtk_tree_view_new ();
+  gtk_widget_set_name (tvPreferences, "tvPreferences");
+  gtk_widget_show (tvPreferences);
+  gtk_container_add (GTK_CONTAINER (scrolledwindowPreference), tvPreferences);
+  gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (tvPreferences), FALSE);
+
   hbox2 = gtk_hbox_new (TRUE, 0);
   gtk_widget_set_name (hbox2, "hbox2");
   gtk_widget_show (hbox2);
@@ -877,7 +1328,7 @@ create_pda (void)
   gtk_fixed_put (GTK_FIXED (fixed2), aboutImage, 0, 0);
   gtk_widget_set_size_request (aboutImage, 48, 48);
 
-  labelDescription = gtk_label_new (_("The VideoLAN Client is a MPEG, MPEG 2, MP3, DivX player, that accepts input from  local or network sources and is licensed under the GPL (http://www.gnu.org/copyleft/gpl.html)."));
+  labelDescription = gtk_label_new (_("VLC media player is an MPEG, MPEG 2, MP3 and DivX player that accepts input from local or network sources and is licensed under the GPL (http://www.gnu.org/copyleft/gpl.html)."));
   gtk_widget_set_name (labelDescription, "labelDescription");
   gtk_widget_show (labelDescription);
   gtk_fixed_put (GTK_FIXED (fixed2), labelDescription, 16, 112);
@@ -885,7 +1336,7 @@ create_pda (void)
   gtk_label_set_justify (GTK_LABEL (labelDescription), GTK_JUSTIFY_LEFT);
   gtk_label_set_line_wrap (GTK_LABEL (labelDescription), TRUE);
 
-  labelAuthors = gtk_label_new (_("Authors: The VideoLAN Team, http://www.videolan.org/team/"));
+  labelAuthors = gtk_label_new (_("Authors: the VideoLAN Team, http://www.videolan.org/team/"));
   gtk_widget_set_name (labelAuthors, "labelAuthors");
   gtk_widget_show (labelAuthors);
   gtk_fixed_put (GTK_FIXED (fixed2), labelAuthors, 16, 72);
@@ -893,6 +1344,12 @@ create_pda (void)
   gtk_label_set_justify (GTK_LABEL (labelAuthors), GTK_JUSTIFY_LEFT);
   gtk_label_set_line_wrap (GTK_LABEL (labelAuthors), TRUE);
 
+  labelCopyright = gtk_label_new (_("(c) 1996-2004 the the VideoLAN team team"));
+  gtk_widget_set_name (labelCopyright, "labelCopyright");
+  gtk_widget_show (labelCopyright);
+  gtk_fixed_put (GTK_FIXED (fixed2), labelCopyright, 16, 48);
+  gtk_widget_set_size_request (labelCopyright, 208, 16);
+
   labelProgramName = gtk_label_new (_("VLC media player"));
   gtk_widget_set_name (labelProgramName, "labelProgramName");
   gtk_widget_show (labelProgramName);
@@ -900,12 +1357,6 @@ create_pda (void)
   gtk_widget_set_size_request (labelProgramName, 152, 16);
   gtk_label_set_line_wrap (GTK_LABEL (labelProgramName), TRUE);
 
-  labelCopyright = gtk_label_new (_("(C) 1996-2003 the VideoLAN team"));
-  gtk_widget_set_name (labelCopyright, "labelCopyright");
-  gtk_widget_show (labelCopyright);
-  gtk_fixed_put (GTK_FIXED (fixed2), labelCopyright, 16, 48);
-  gtk_widget_set_size_request (labelCopyright, 208, 16);
-
   about = gtk_label_new (_("About"));
   gtk_widget_set_name (about, "about");
   gtk_widget_show (about);
@@ -938,113 +1389,38 @@ create_pda (void)
   g_signal_connect ((gpointer) timeSlider, "button_press_event",
                     G_CALLBACK (SliderPress),
                     NULL);
+  g_signal_connect ((gpointer) timeSlider, "move_slider",
+                    G_CALLBACK (SliderMove),
+                    NULL);
   g_signal_connect ((gpointer) tvFileList, "row_activated",
                     G_CALLBACK (onFileListRow),
                     NULL);
-  g_signal_connect ((gpointer) tvFileList, "select_cursor_row",
-                    G_CALLBACK (onFileListRowSelected),
-                    NULL);
   g_signal_connect ((gpointer) AddFileToPlaylist, "pressed",
                     G_CALLBACK (onAddFileToPlaylist),
                     NULL);
-  g_signal_connect ((gpointer) entryMRL, "changed",
-                    G_CALLBACK (onEntryMRLChanged),
-                    NULL);
-  g_signal_connect ((gpointer) entryMRL, "editing_done",
-                    G_CALLBACK (onEntryMRLEditingDone),
-                    NULL);
   g_signal_connect ((gpointer) entryNetworkPort, "changed",
-                    G_CALLBACK (onNetworkPortChanged),
-                    NULL);
-  g_signal_connect ((gpointer) entryNetworkPort, "editing_done",
-                    G_CALLBACK (onEntryNetworkPortEditingDone),
+                    G_CALLBACK (NetworkBuildMRL),
                     NULL);
   g_signal_connect ((gpointer) entryNetworkAddress, "changed",
-                    G_CALLBACK (onNetworkAddressChanged),
-                    NULL);
-  g_signal_connect ((gpointer) entryNetworkAddress, "editing_done",
-                    G_CALLBACK (onEntryNetworkAddressEditingDone),
+                    G_CALLBACK (NetworkBuildMRL),
                     NULL);
   g_signal_connect ((gpointer) entryNetworkType, "changed",
-                    G_CALLBACK (onNetworkTypeChanged),
-                    NULL);
-  g_signal_connect ((gpointer) entryNetworkType, "editing_done",
-                    G_CALLBACK (onEntryNetworkTypeEditingDone),
-                    NULL);
-  g_signal_connect ((gpointer) entryProtocolType, "changed",
-                    G_CALLBACK (onProtocolTypeChanged),
-                    NULL);
-  g_signal_connect ((gpointer) entryProtocolType, "editing_done",
-                    G_CALLBACK (onEntryProtocolTypeEditingDone),
-                    NULL);
-  g_signal_connect ((gpointer) entryMRLType, "changed",
-                    G_CALLBACK (onMRLTypeChanged),
+                    G_CALLBACK (NetworkBuildMRL),
                     NULL);
-  g_signal_connect ((gpointer) entryMRLType, "editing_done",
-                    G_CALLBACK (onEntryMRLTypeEditingDone),
-                    NULL);
-  g_signal_connect ((gpointer) entryStreamType, "changed",
-                    G_CALLBACK (onStreamTypeChanged),
-                    NULL);
-  g_signal_connect ((gpointer) entryStreamType, "editing_done",
-                    G_CALLBACK (onEntryStreamTypeEditingDone),
+  g_signal_connect ((gpointer) entryNetworkProtocolType, "changed",
+                    G_CALLBACK (NetworkBuildMRL),
                     NULL);
   g_signal_connect ((gpointer) AddNetworkPlaylist, "pressed",
                     G_CALLBACK (onAddNetworkPlaylist),
                     NULL);
-  g_signal_connect ((gpointer) entryV4LAudio, "changed",
-                    G_CALLBACK (onV4LAudioChanged),
-                    NULL);
-  g_signal_connect ((gpointer) entryV4LAudio, "editing_done",
-                    G_CALLBACK (onEntryV4LAudioEditingDone),
-                    NULL);
-  g_signal_connect ((gpointer) entryV4LVideo, "changed",
-                    G_CALLBACK (onV4LVideoChanged),
-                    NULL);
-  g_signal_connect ((gpointer) entryV4LVideo, "editing_done",
-                    G_CALLBACK (onEntryV4LVideoEditingDone),
-                    NULL);
   g_signal_connect ((gpointer) AddCameraToPlaylist, "pressed",
                     G_CALLBACK (onAddCameraToPlaylist),
                     NULL);
-  g_signal_connect ((gpointer) entryVideoDevice, "changed",
-                    G_CALLBACK (onVideoDeviceChanged),
-                    NULL);
-  g_signal_connect ((gpointer) entryVideoDevice, "editing_done",
-                    G_CALLBACK (onEntryVideoDeviceEditingDone),
-                    NULL);
-  g_signal_connect ((gpointer) entryVideoCodec, "changed",
-                    G_CALLBACK (onVideoCodecChanged),
-                    NULL);
-  g_signal_connect ((gpointer) entryVideoCodec, "editing_done",
-                    G_CALLBACK (onEntryVideoCodecEditingDone),
-                    NULL);
-  g_signal_connect ((gpointer) spinVideoBitrate, "changed",
-                    G_CALLBACK (onVideoBitrateChanged),
-                    NULL);
-  g_signal_connect ((gpointer) spinVideoBitrate, "editing_done",
-                    G_CALLBACK (onVideoBitrateEditingDone),
-                    NULL);
-  g_signal_connect ((gpointer) entryAudioDevice, "changed",
-                    G_CALLBACK (onAudioDeviceChanged),
+  g_signal_connect ((gpointer) entryStdAccess, "changed",
+                    G_CALLBACK (onEntryStdAccessChanged),
                     NULL);
-  g_signal_connect ((gpointer) entryAudioDevice, "editing_done",
-                    G_CALLBACK (onEntryAudioDeviceEditingDone),
-                    NULL);
-  g_signal_connect ((gpointer) entryAudioCodec, "changed",
-                    G_CALLBACK (onAudioCodecChanged),
-                    NULL);
-  g_signal_connect ((gpointer) entryAudioCodec, "editing_done",
-                    G_CALLBACK (onEntryAudioCodecEditingDone),
-                    NULL);
-  g_signal_connect ((gpointer) spinAudioBitrate, "changed",
-                    G_CALLBACK (onAudioBitrateChanged),
-                    NULL);
-  g_signal_connect ((gpointer) spinAudioBitrate, "editing_done",
-                    G_CALLBACK (onAudioBitrateEditingDone),
-                    NULL);
-  g_signal_connect ((gpointer) AddServerToPlaylist, "pressed",
-                    G_CALLBACK (onAddServerToPlaylist),
+  g_signal_connect ((gpointer) AddTranscodeToPlaylist, "pressed",
+                    G_CALLBACK (onAddTranscodeToPlaylist),
                     NULL);
   g_signal_connect ((gpointer) tvPlaylist, "event",
                     G_CALLBACK (PlaylistEvent),
@@ -1113,56 +1489,93 @@ create_pda (void)
   GLADE_HOOKUP_OBJECT (pda, comboNetworkType, "comboNetworkType");
   GLADE_HOOKUP_OBJECT (pda, entryNetworkType, "entryNetworkType");
   GLADE_HOOKUP_OBJECT (pda, labelNetworkType, "labelNetworkType");
-  GLADE_HOOKUP_OBJECT (pda, comboProtocolType, "comboProtocolType");
-  GLADE_HOOKUP_OBJECT (pda, entryProtocolType, "entryProtocolType");
+  GLADE_HOOKUP_OBJECT (pda, comboNetworkProtocolType, "comboNetworkProtocolType");
+  GLADE_HOOKUP_OBJECT (pda, entryNetworkProtocolType, "entryNetworkProtocolType");
   GLADE_HOOKUP_OBJECT (pda, labelNetworkProtocol, "labelNetworkProtocol");
-  GLADE_HOOKUP_OBJECT (pda, labeNetworkMRLType, "labeNetworkMRLType");
-  GLADE_HOOKUP_OBJECT (pda, comboMRLType, "comboMRLType");
-  GLADE_HOOKUP_OBJECT (pda, entryMRLType, "entryMRLType");
-  GLADE_HOOKUP_OBJECT (pda, labelNetworkStreamType, "labelNetworkStreamType");
-  GLADE_HOOKUP_OBJECT (pda, comboStreamType, "comboStreamType");
-  GLADE_HOOKUP_OBJECT (pda, entryStreamType, "entryStreamType");
+  GLADE_HOOKUP_OBJECT (pda, labelNetworkTranscode, "labelNetworkTranscode");
+  GLADE_HOOKUP_OBJECT (pda, checkNetworkTranscode, "checkNetworkTranscode");
   GLADE_HOOKUP_OBJECT (pda, hbox13, "hbox13");
   GLADE_HOOKUP_OBJECT (pda, AddNetworkPlaylist, "AddNetworkPlaylist");
   GLADE_HOOKUP_OBJECT (pda, Network, "Network");
   GLADE_HOOKUP_OBJECT (pda, vbox7, "vbox7");
-  GLADE_HOOKUP_OBJECT (pda, table, "table");
-  GLADE_HOOKUP_OBJECT (pda, labelV4LAudio, "labelV4LAudio");
-  GLADE_HOOKUP_OBJECT (pda, labelV4LVideo, "labelV4LVideo");
-  GLADE_HOOKUP_OBJECT (pda, comboV4LAudio, "comboV4LAudio");
-  GLADE_HOOKUP_OBJECT (pda, entryV4LAudio, "entryV4LAudio");
-  GLADE_HOOKUP_OBJECT (pda, comboV4LVideo, "comboV4LVideo");
-  GLADE_HOOKUP_OBJECT (pda, entryV4LVideo, "entryV4LVideo");
+  GLADE_HOOKUP_OBJECT (pda, scrolledV4Lwindow, "scrolledV4Lwindow");
+  GLADE_HOOKUP_OBJECT (pda, viewportV4L, "viewportV4L");
+  GLADE_HOOKUP_OBJECT (pda, tableV4L, "tableV4L");
+  GLADE_HOOKUP_OBJECT (pda, labelV4lVideDevice, "labelV4lVideDevice");
+  GLADE_HOOKUP_OBJECT (pda, labelV4LAudioDevice, "labelV4LAudioDevice");
+  GLADE_HOOKUP_OBJECT (pda, labelV4LChannel, "labelV4LChannel");
+  GLADE_HOOKUP_OBJECT (pda, labelV4LNorm, "labelV4LNorm");
+  GLADE_HOOKUP_OBJECT (pda, labelV4LSize, "labelV4LSize");
+  GLADE_HOOKUP_OBJECT (pda, labelV4LFrequency, "labelV4LFrequency");
+  GLADE_HOOKUP_OBJECT (pda, labelV4LSampleRate, "labelV4LSampleRate");
+  GLADE_HOOKUP_OBJECT (pda, labelV4LQuality, "labelV4LQuality");
+  GLADE_HOOKUP_OBJECT (pda, labelV4LTuner, "labelV4LTuner");
+  GLADE_HOOKUP_OBJECT (pda, labelV4LSoundDirection, "labelV4LSoundDirection");
+  GLADE_HOOKUP_OBJECT (pda, labelV4LMJPEG, "labelV4LMJPEG");
+  GLADE_HOOKUP_OBJECT (pda, labelV4LDecimation, "labelV4LDecimation");
+  GLADE_HOOKUP_OBJECT (pda, comboV4lVideoDevice, "comboV4lVideoDevice");
+  GLADE_HOOKUP_OBJECT (pda, entryV4LVideoDevice, "entryV4LVideoDevice");
+  GLADE_HOOKUP_OBJECT (pda, comboV4lAudioDevice, "comboV4lAudioDevice");
+  GLADE_HOOKUP_OBJECT (pda, entryV4LAudioDevice, "entryV4LAudioDevice");
+  GLADE_HOOKUP_OBJECT (pda, entryV4LChannel, "entryV4LChannel");
+  GLADE_HOOKUP_OBJECT (pda, comboV4LNorm, "comboV4LNorm");
+  GLADE_HOOKUP_OBJECT (pda, entryV4LNorm, "entryV4LNorm");
+  GLADE_HOOKUP_OBJECT (pda, comboV4LSize, "comboV4LSize");
+  GLADE_HOOKUP_OBJECT (pda, entryV4LSize, "entryV4LSize");
+  GLADE_HOOKUP_OBJECT (pda, entryV4LFrequency, "entryV4LFrequency");
+  GLADE_HOOKUP_OBJECT (pda, entryV4LSampleRate, "entryV4LSampleRate");
+  GLADE_HOOKUP_OBJECT (pda, entryV4LQuality, "entryV4LQuality");
+  GLADE_HOOKUP_OBJECT (pda, comboV4LSoundDirection, "comboV4LSoundDirection");
+  GLADE_HOOKUP_OBJECT (pda, entryV4LSoundDirection, "entryV4LSoundDirection");
+  GLADE_HOOKUP_OBJECT (pda, entryV4LTuner, "entryV4LTuner");
+  GLADE_HOOKUP_OBJECT (pda, checkV4LMJPEG, "checkV4LMJPEG");
+  GLADE_HOOKUP_OBJECT (pda, entryV4LDecimation, "entryV4LDecimation");
+  GLADE_HOOKUP_OBJECT (pda, labelV4LTranscode, "labelV4LTranscode");
+  GLADE_HOOKUP_OBJECT (pda, checkV4LTranscode, "checkV4LTranscode");
   GLADE_HOOKUP_OBJECT (pda, hbox16, "hbox16");
   GLADE_HOOKUP_OBJECT (pda, AddCameraToPlaylist, "AddCameraToPlaylist");
   GLADE_HOOKUP_OBJECT (pda, Camera, "Camera");
   GLADE_HOOKUP_OBJECT (pda, vbox1, "vbox1");
-  GLADE_HOOKUP_OBJECT (pda, vbox6, "vbox6");
-  GLADE_HOOKUP_OBJECT (pda, frameVideo, "frameVideo");
-  GLADE_HOOKUP_OBJECT (pda, table4, "table4");
-  GLADE_HOOKUP_OBJECT (pda, labelVideoDevice, "labelVideoDevice");
+  GLADE_HOOKUP_OBJECT (pda, scrolledwindowTranscode, "scrolledwindowTranscode");
+  GLADE_HOOKUP_OBJECT (pda, viewport5, "viewport5");
+  GLADE_HOOKUP_OBJECT (pda, tableTranscode, "tableTranscode");
   GLADE_HOOKUP_OBJECT (pda, labelVideoCodec, "labelVideoCodec");
-  GLADE_HOOKUP_OBJECT (pda, labelVideoBitrate, "labelVideoBitrate");
-  GLADE_HOOKUP_OBJECT (pda, comboVideoDevice, "comboVideoDevice");
-  GLADE_HOOKUP_OBJECT (pda, entryVideoDevice, "entryVideoDevice");
   GLADE_HOOKUP_OBJECT (pda, comboVideoCodec, "comboVideoCodec");
   GLADE_HOOKUP_OBJECT (pda, entryVideoCodec, "entryVideoCodec");
-  GLADE_HOOKUP_OBJECT (pda, spinVideoBitrate, "spinVideoBitrate");
-  GLADE_HOOKUP_OBJECT (pda, label42, "label42");
-  GLADE_HOOKUP_OBJECT (pda, frameAudio, "frameAudio");
-  GLADE_HOOKUP_OBJECT (pda, table3, "table3");
-  GLADE_HOOKUP_OBJECT (pda, labelAudioDevice, "labelAudioDevice");
+  GLADE_HOOKUP_OBJECT (pda, labelVideoBitrate, "labelVideoBitrate");
+  GLADE_HOOKUP_OBJECT (pda, labelVideoBitrateTolerance, "labelVideoBitrateTolerance");
+  GLADE_HOOKUP_OBJECT (pda, labelVideoKeyInterval, "labelVideoKeyInterval");
   GLADE_HOOKUP_OBJECT (pda, labelAudioCodec, "labelAudioCodec");
-  GLADE_HOOKUP_OBJECT (pda, labelAudioBitrate, "labelAudioBitrate");
-  GLADE_HOOKUP_OBJECT (pda, comboAudioDevice, "comboAudioDevice");
-  GLADE_HOOKUP_OBJECT (pda, entryAudioDevice, "entryAudioDevice");
+  GLADE_HOOKUP_OBJECT (pda, labelVideoDeinterlace, "labelVideoDeinterlace");
+  GLADE_HOOKUP_OBJECT (pda, labelStdAccess, "labelStdAccess");
+  GLADE_HOOKUP_OBJECT (pda, labelStdMuxer, "labelStdMuxer");
+  GLADE_HOOKUP_OBJECT (pda, labelStdUrl, "labelStdUrl");
+  GLADE_HOOKUP_OBJECT (pda, labelStdTimeToLive, "labelStdTimeToLive");
+  GLADE_HOOKUP_OBJECT (pda, entryStdTTL, "entryStdTTL");
+  GLADE_HOOKUP_OBJECT (pda, comboStdURL, "comboStdURL");
+  GLADE_HOOKUP_OBJECT (pda, entryStdURL, "entryStdURL");
+  GLADE_HOOKUP_OBJECT (pda, comboStdMuxer, "comboStdMuxer");
+  GLADE_HOOKUP_OBJECT (pda, entryStdMuxer, "entryStdMuxer");
+  GLADE_HOOKUP_OBJECT (pda, entryAudioBitrate, "entryAudioBitrate");
   GLADE_HOOKUP_OBJECT (pda, comboAudioCodec, "comboAudioCodec");
   GLADE_HOOKUP_OBJECT (pda, entryAudioCodec, "entryAudioCodec");
-  GLADE_HOOKUP_OBJECT (pda, spinAudioBitrate, "spinAudioBitrate");
-  GLADE_HOOKUP_OBJECT (pda, label41, "label41");
+  GLADE_HOOKUP_OBJECT (pda, checkVideoDeinterlace, "checkVideoDeinterlace");
+  GLADE_HOOKUP_OBJECT (pda, entryVideoKeyFrameInterval, "entryVideoKeyFrameInterval");
+  GLADE_HOOKUP_OBJECT (pda, entryVideoBitrateTolerance, "entryVideoBitrateTolerance");
+  GLADE_HOOKUP_OBJECT (pda, entryVideoBitrate, "entryVideoBitrate");
+  GLADE_HOOKUP_OBJECT (pda, labelAudioBitrate, "labelAudioBitrate");
+  GLADE_HOOKUP_OBJECT (pda, comboStdAccess, "comboStdAccess");
+  GLADE_HOOKUP_OBJECT (pda, entryStdAccess, "entryStdAccess");
+  GLADE_HOOKUP_OBJECT (pda, labelSAP, "labelSAP");
+  GLADE_HOOKUP_OBJECT (pda, checkSAP, "checkSAP");
+  GLADE_HOOKUP_OBJECT (pda, checkSLP, "checkSLP");
+  GLADE_HOOKUP_OBJECT (pda, labelSLP_, "labelSLP_");
+  GLADE_HOOKUP_OBJECT (pda, labelAnounceChannel, "labelAnounceChannel");
+  GLADE_HOOKUP_OBJECT (pda, comboAnnounceChannel, "comboAnnounceChannel");
+  GLADE_HOOKUP_OBJECT (pda, entryAnnounceChannel, "entryAnnounceChannel");
   GLADE_HOOKUP_OBJECT (pda, hbox14, "hbox14");
-  GLADE_HOOKUP_OBJECT (pda, AddServerToPlaylist, "AddServerToPlaylist");
-  GLADE_HOOKUP_OBJECT (pda, Server, "Server");
+  GLADE_HOOKUP_OBJECT (pda, AddTranscodeToPlaylist, "AddTranscodeToPlaylist");
+  GLADE_HOOKUP_OBJECT (pda, Transcode, "Transcode");
   GLADE_HOOKUP_OBJECT (pda, vbox4, "vbox4");
   GLADE_HOOKUP_OBJECT (pda, scrolledwindow5, "scrolledwindow5");
   GLADE_HOOKUP_OBJECT (pda, tvPlaylist, "tvPlaylist");
@@ -1172,6 +1585,8 @@ create_pda (void)
   GLADE_HOOKUP_OBJECT (pda, ClearPlaylist, "ClearPlaylist");
   GLADE_HOOKUP_OBJECT (pda, playlist, "playlist");
   GLADE_HOOKUP_OBJECT (pda, vbox2, "vbox2");
+  GLADE_HOOKUP_OBJECT (pda, scrolledwindowPreference, "scrolledwindowPreference");
+  GLADE_HOOKUP_OBJECT (pda, tvPreferences, "tvPreferences");
   GLADE_HOOKUP_OBJECT (pda, hbox2, "hbox2");
   GLADE_HOOKUP_OBJECT (pda, PreferenceSave, "PreferenceSave");
   GLADE_HOOKUP_OBJECT (pda, PreferenceApply, "PreferenceApply");
@@ -1183,9 +1598,10 @@ create_pda (void)
   GLADE_HOOKUP_OBJECT (pda, aboutImage, "aboutImage");
   GLADE_HOOKUP_OBJECT (pda, labelDescription, "labelDescription");
   GLADE_HOOKUP_OBJECT (pda, labelAuthors, "labelAuthors");
-  GLADE_HOOKUP_OBJECT (pda, labelProgramName, "labelProgramName");
   GLADE_HOOKUP_OBJECT (pda, labelCopyright, "labelCopyright");
+  GLADE_HOOKUP_OBJECT (pda, labelProgramName, "labelProgramName");
   GLADE_HOOKUP_OBJECT (pda, about, "about");
+  GLADE_HOOKUP_OBJECT_NO_REF (pda, tooltips, "tooltips");
 
   return pda;
 }