From: <wt...@ke...> - 2008-03-24 11:46:22
|
CVS Root: /cvs/gstreamer Module: gst-plugins-base Changes by: wtay Date: Mon Mar 24 2008 11:46:29 UTC Log message: * tests/examples/seek/seek.c: (audio_toggle_cb), (video_toggle_cb), (text_toggle_cb), (update_streams), (main): Rearrange some buttons in playbin2 and make some other boxes insensitive when needed. Add language codes to subtitle selection boxes when we gind the right tags for the streams. Modified files: . : ChangeLog tests/examples/seek: seek.c Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-plugins-base/ChangeLog.diff?r1=1.3827&r2=1.3828 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-plugins-base/tests/examples/seek/seek.c.diff?r1=1.97&r2=1.98 ====Begin Diffs==== Index: ChangeLog =================================================================== RCS file: /cvs/gstreamer/gst-plugins-base/ChangeLog,v retrieving revision 1.3827 retrieving revision 1.3828 diff -u -d -r1.3827 -r1.3828 --- ChangeLog 24 Mar 2008 11:36:04 -0000 1.3827 +++ ChangeLog 24 Mar 2008 11:46:14 -0000 1.3828 @@ -1,5 +1,14 @@ 2008-03-24 Wim Taymans <wim...@co...> + * tests/examples/seek/seek.c: (audio_toggle_cb), (video_toggle_cb), + (text_toggle_cb), (update_streams), (main): + Rearrange some buttons in playbin2 and make some other boxes insensitive + when needed. + Add language codes to subtitle selection boxes when we gind the right + tags for the streams. + +2008-03-24 Wim Taymans <wim...@co...> * gst/playback/gstdecodebin2.c: (gst_decode_bin_dispose), (gst_decode_bin_set_caps), (gst_decode_bin_get_caps), (gst_decode_bin_set_subs_encoding), Index: seek.c RCS file: /cvs/gstreamer/gst-plugins-base/tests/examples/seek/seek.c,v retrieving revision 1.97 retrieving revision 1.98 diff -u -d -r1.97 -r1.98 --- seek.c 3 Mar 2008 06:04:28 -0000 1.97 +++ seek.c 24 Mar 2008 11:46:15 -0000 1.98 @@ -1505,19 +1505,31 @@ static void audio_toggle_cb (GtkToggleButton * button, GstPipeline * pipeline) { - update_flag (pipeline, 1, gtk_toggle_button_get_active (button)); + gboolean state; + state = gtk_toggle_button_get_active (button); + update_flag (pipeline, 1, state); + gtk_widget_set_sensitive (audio_combo, state); } video_toggle_cb (GtkToggleButton * button, GstPipeline * pipeline) - update_flag (pipeline, 0, gtk_toggle_button_get_active (button)); + update_flag (pipeline, 0, state); + gtk_widget_set_sensitive (video_combo, state); text_toggle_cb (GtkToggleButton * button, GstPipeline * pipeline) - update_flag (pipeline, 2, gtk_toggle_button_get_active (button)); + update_flag (pipeline, 2, state); + gtk_widget_set_sensitive (text_combo, state); @@ -1559,6 +1571,7 @@ GstTagList *tags; gchar *name; gint active_idx; + gboolean state; /* remove previous info */ clear_streams (GST_ELEMENT_CAST (pipeline)); @@ -1578,7 +1591,8 @@ gtk_combo_box_append_text (GTK_COMBO_BOX (video_combo), name); g_free (name); } - gtk_widget_set_sensitive (video_combo, n_video > 0); + state = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (video_checkbox)); + gtk_widget_set_sensitive (video_combo, state && n_video > 0); gtk_combo_box_set_active (GTK_COMBO_BOX (video_combo), active_idx); active_idx = 0; @@ -1589,18 +1603,32 @@ gtk_combo_box_append_text (GTK_COMBO_BOX (audio_combo), name); - gtk_widget_set_sensitive (audio_combo, n_audio > 0); + state = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (audio_checkbox)); + gtk_widget_set_sensitive (audio_combo, state && n_audio > 0); gtk_combo_box_set_active (GTK_COMBO_BOX (audio_combo), active_idx); for (i = 0; i < n_text; i++) { g_signal_emit_by_name (pipeline, "get-text-tags", i, &tags); - /* find good name for the label */ - name = g_strdup_printf ("text %d", i + 1); + name = NULL; + if (tags) { + const GValue *value; + /* get the language code if we can */ + value = gst_tag_list_get_value_index (tags, GST_TAG_LANGUAGE_CODE, 0); + if (value && G_VALUE_HOLDS_STRING (value)) { + name = g_strdup_printf ("text %s", g_value_get_string (value)); + } + } + /* find good name for the label if we didn't use a tag */ + if (name == NULL) + name = g_strdup_printf ("text %d", i + 1); gtk_combo_box_append_text (GTK_COMBO_BOX (text_combo), name); - gtk_widget_set_sensitive (text_combo, n_text > 0); + state = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (text_checkbox)); + gtk_widget_set_sensitive (text_combo, state && n_text > 0); gtk_combo_box_set_active (GTK_COMBO_BOX (text_combo), active_idx); need_streams = FALSE; @@ -2030,10 +2058,10 @@ mute_checkbox = gtk_check_button_new_with_label ("Mute"); volume_spinbutton = gtk_spin_button_new_with_range (0, 10.0, 0.1); gtk_spin_button_set_value (GTK_SPIN_BUTTON (volume_spinbutton), 1.0); - gtk_box_pack_start (GTK_BOX (boxes), vis_checkbox, TRUE, TRUE, 2); - gtk_box_pack_start (GTK_BOX (boxes), audio_checkbox, TRUE, TRUE, 2); gtk_box_pack_start (GTK_BOX (boxes), video_checkbox, TRUE, TRUE, 2); + gtk_box_pack_start (GTK_BOX (boxes), audio_checkbox, TRUE, TRUE, 2); gtk_box_pack_start (GTK_BOX (boxes), text_checkbox, TRUE, TRUE, 2); + gtk_box_pack_start (GTK_BOX (boxes), vis_checkbox, TRUE, TRUE, 2); gtk_box_pack_start (GTK_BOX (boxes), mute_checkbox, TRUE, TRUE, 2); gtk_box_pack_start (GTK_BOX (boxes), volume_spinbutton, TRUE, TRUE, 2); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (vis_checkbox), FALSE); |