static void
show_scan_progress(signal_user_data_t *ud)
{
- GtkProgressBar *progress;
- GtkLabel *label;
+ GtkWidget * source_info;
+ GtkProgressBar * progress;
+ GtkLabel * label;
progress = GTK_PROGRESS_BAR(GHB_WIDGET(ud->builder, "scan_prog"));
- gtk_progress_bar_set_fraction (progress, 0);
+ gtk_progress_bar_set_fraction(progress, 0);
gtk_widget_show(GTK_WIDGET(progress));
label = GTK_LABEL(GHB_WIDGET(ud->builder, "volume_label"));
gtk_label_set_text( label, _("Scanning ...") );
+
+ source_info = GHB_WIDGET(ud->builder, "SourceInfoBox");
+ gtk_widget_hide(source_info);
+}
+
+static void
+hide_scan_progress(signal_user_data_t *ud)
+{
+ GtkWidget * source_info;
+ GtkProgressBar * progress;
+
+ progress = GTK_PROGRESS_BAR(GHB_WIDGET(ud->builder, "scan_prog"));
+ gtk_progress_bar_set_fraction(progress, 1.0);
+ gtk_widget_hide(GTK_WIDGET(progress));
+
+ source_info = GHB_WIDGET(ud->builder, "SourceInfoBox");
+ gtk_widget_show(source_info);
}
static void
static void
update_aspect_info(signal_user_data_t *ud)
{
- GtkWidget *widget;
- gchar *text;
-
- text = ghb_dict_get_bool(ud->settings, "PictureAutoCrop") ? _("On") : _("Off");
- widget = GHB_WIDGET(ud->builder, "crop_auto");
- gtk_label_set_text(GTK_LABEL(widget), text);
- text = ghb_dict_get_bool(ud->settings, "autoscale") ? _("On") : _("Off");
- widget = GHB_WIDGET(ud->builder, "scale_auto");
- gtk_label_set_text(GTK_LABEL(widget), text);
- switch (ghb_settings_combo_int(ud->settings, "PicturePAR"))
- {
- case HB_ANAMORPHIC_NONE:
- text = _("Off");
- break;
- case HB_ANAMORPHIC_STRICT:
- text = _("Strict");
- break;
- case HB_ANAMORPHIC_LOOSE:
- text = _("Loose");
- break;
- case HB_ANAMORPHIC_CUSTOM:
- text = _("Custom");
- break;
- case HB_ANAMORPHIC_AUTO:
- text = _("Automatic");
- break;
- default:
- text = _("Unknown");
- break;
- }
- widget = GHB_WIDGET(ud->builder, "scale_anamorphic");
- gtk_label_set_text(GTK_LABEL(widget), text);
}
static void
crop[3] = ghb_dict_get_int(ud->settings, "PictureRightCrop");
width = title->geometry.width - crop[2] - crop[3];
height = title->geometry.height - crop[0] - crop[1];
- widget = GHB_WIDGET(ud->builder, "crop_dimensions");
text = g_strdup_printf ("%d x %d", width, height);
- gtk_label_set_text(GTK_LABEL(widget), text);
widget = GHB_WIDGET(ud->builder, "crop_dimensions2");
gtk_label_set_text(GTK_LABEL(widget), text);
g_free(text);
}
- widget = GHB_WIDGET (ud->builder, "crop_values");
- text = g_strdup_printf ("%d:%d:%d:%d", crop[0], crop[1], crop[2], crop[3]);
- gtk_label_set_text (GTK_LABEL(widget), text);
- g_free(text);
}
static void
update_scale_info(signal_user_data_t *ud)
{
- GtkWidget *widget;
- gchar *text;
-
- gint width = ghb_dict_get_int(ud->settings, "scale_width");
- gint height = ghb_dict_get_int(ud->settings, "scale_height");
- widget = GHB_WIDGET(ud->builder, "scale_dimensions");
- text = g_strdup_printf("%d x %d", width, height);
- gtk_label_set_text(GTK_LABEL(widget), text);
- g_free(text);
}
void
ghb_update_title_info(signal_user_data_t *ud)
{
- GtkWidget *widget;
- gchar *text;
-
- int title_id, titleindex;
- const hb_title_t * title;
+ GtkWidget * widget;
+ gchar * text;
+ gchar * aspect;
+ gchar * rate;
+ int title_id, titleindex;
+ int audio_count, subtitle_count;
+ const hb_title_t * title;
+ const hb_geometry_t * geo;
+ gint aspect_n, aspect_d;
title_id = ghb_dict_get_int(ud->settings, "title");
title = ghb_lookup_title(title_id, &titleindex);
update_title_duration(ud);
- widget = GHB_WIDGET (ud->builder, "source_video_codec");
- if ( title->video_codec_name )
- gtk_label_set_text (GTK_LABEL(widget), title->video_codec_name);
- else
- gtk_label_set_text (GTK_LABEL(widget), _("Unknown"));
-
- widget = GHB_WIDGET (ud->builder, "source_dimensions");
- text = g_strdup_printf ("%d x %d", title->geometry.width, title->geometry.height);
- gtk_label_set_text (GTK_LABEL(widget), text);
- g_free(text);
-
- widget = GHB_WIDGET (ud->builder, "source_aspect");
- gint aspect_n, aspect_d;
- hb_reduce(&aspect_n, &aspect_d,
- title->geometry.width * title->geometry.par.num,
- title->geometry.height * title->geometry.par.den);
- text = get_aspect_string(aspect_n, aspect_d);
- gtk_label_set_text (GTK_LABEL(widget), text);
- g_free(text);
-
- widget = GHB_WIDGET (ud->builder, "source_frame_rate");
- text = (gchar*)get_rate_string(title->vrate.num, title->vrate.den);
- gtk_label_set_text (GTK_LABEL(widget), text);
- g_free(text);
-
- //widget = GHB_WIDGET (ud->builder, "source_interlaced");
- //gtk_label_set_text (GTK_LABEL(widget), title->interlaced ? "Yes" : "No");
+ geo = &title->geometry;
+ hb_reduce(&aspect_n, &aspect_d, geo->width * geo->par.num,
+ geo->height * geo->par.den);
+ aspect = get_aspect_string(aspect_n, aspect_d);
+ rate = get_rate_string(title->vrate.num, title->vrate.den);
+ audio_count = hb_list_count(title->list_audio);
+ subtitle_count = hb_list_count(title->list_subtitle);
+
+ text = g_strdup_printf(
+ "%dx%d (%dx%d), %s, %s FPS, %d Audio Track%s, %d Subtitle Track%s",
+ geo->width, geo->height,
+ geo->width * geo->par.num / geo->par.den, geo->height,
+ aspect, rate,
+ audio_count, audio_count == 1 ? "" : "s",
+ subtitle_count, subtitle_count == 1 ? "" : "s");
+
+ widget = GHB_WIDGET(ud->builder, "source_info_label");
+ gtk_label_set_text(GTK_LABEL(widget), text);
+ free(text);
+ free(aspect);
+ free(rate);
ghb_update_display_aspect_label(ud);
ghb_dict_set_string(metadata, name, val);
}
+void
+ghb_update_summary_info(signal_user_data_t *ud)
+{
+ GString * str;
+ char * text;
+ int title_id;
+ GtkWidget * widget;
+ GhbValue * titleDict;
+
+ title_id = ghb_dict_get_int(ud->settings, "title");
+ titleDict = ghb_get_title_dict(title_id);
+ if (titleDict == NULL)
+ {
+ // No title, clear summary
+ widget = GHB_WIDGET(ud->builder, "tracks_summary");
+ gtk_label_set_text(GTK_LABEL(widget), "");
+ widget = GHB_WIDGET(ud->builder, "filters_summary");
+ gtk_label_set_text(GTK_LABEL(widget), "");
+ widget = GHB_WIDGET(ud->builder, "dimensions_summary");
+ gtk_label_set_text(GTK_LABEL(widget), "--");
+ widget = GHB_WIDGET(ud->builder, "aspect_summary");
+ gtk_label_set_text(GTK_LABEL(widget), "--");
+ widget = GHB_WIDGET(ud->builder, "preview_button_image");
+ gtk_image_set_from_icon_name(GTK_IMAGE(widget), "hb-icon", 128);
+ return;
+ }
+
+ // Video Track
+ const hb_encoder_t * video_encoder;
+ const hb_rate_t * fps;
+ hb_rational_t vrate;
+ char * rate_str;
+
+ str = g_string_new("");
+ video_encoder = ghb_settings_video_encoder(ud->settings, "VideoEncoder");
+ fps = ghb_settings_video_framerate(ud->settings, "VideoFramerate");
+ if (fps->rate == 0)
+ {
+ hb_dict_extract_rational(&vrate, titleDict, "FrameRate");
+ }
+ else
+ {
+ vrate.num = 27000000;
+ vrate.den = fps->rate;
+ }
+ rate_str = get_rate_string(vrate.num, vrate.den);
+ g_string_append_printf(str, "%s, %s FPS", video_encoder->name, rate_str);
+ if (ghb_dict_get_bool(ud->settings, "VideoFramerateCFR"))
+ {
+ g_string_append_printf(str, " CFR");
+ }
+ else if (ghb_dict_get_bool(ud->settings, "VideoFrameratePFR"))
+ {
+ g_string_append_printf(str, " PFR");
+ }
+ else if (ghb_dict_get_bool(ud->settings, "VideoFramerateVFR"))
+ {
+ g_string_append_printf(str, " VFR");
+ }
+
+ // Audio Tracks (show at most 3 tracks)
+ GhbValue * audioList;
+ GhbValue * sourceAudioList;
+ int ii, count, show;
+
+ sourceAudioList = ghb_dict_get(titleDict, "AudioList");
+ audioList = ghb_get_job_audio_list(ud->settings);
+ show = count = ghb_array_len(audioList);
+ if (count > 3)
+ {
+ show = 2;
+ }
+ for (ii = 0; ii < show; ii++)
+ {
+ GhbValue * asettings, * asource;
+ const hb_mixdown_t * audio_mix;
+ const hb_encoder_t * audio_encoder;
+ const char * lang;
+ int track;
+
+ asettings = ghb_array_get(audioList, ii);
+ track = ghb_dict_get_int(asettings, "Track");
+ asource = ghb_array_get(sourceAudioList, track);
+ lang = ghb_dict_get_string(asource, "Language");
+ audio_encoder = ghb_settings_audio_encoder(asettings, "Encoder");
+ if (audio_encoder->codec & HB_ACODEC_PASS_FLAG)
+ {
+ g_string_append_printf(str, "\n%s, %s", lang, audio_encoder->name);
+ }
+ else
+ {
+ audio_mix = ghb_settings_mixdown(asettings, "Mixdown");
+ g_string_append_printf(str, "\n%s, %s, %s", lang,
+ audio_encoder->name, audio_mix->name);
+ }
+ }
+ if (show < count)
+ {
+ g_string_append_printf(str, "\n+ %d more audio track%s", count - show,
+ count - show > 1 ? "s" : "");
+ }
+
+ // Subtitle Tracks (show at most 3 tracks)
+ GhbValue * subtitleDict;
+ GhbValue * searchDict;
+ GhbValue * subtitleList;
+ GhbValue * sourceSubtitleList;
+ gboolean search;
+
+ sourceSubtitleList = ghb_dict_get(titleDict, "SubtitleList");
+ subtitleDict = ghb_get_job_subtitle_settings(ud->settings);
+ subtitleList = ghb_dict_get(subtitleDict, "SubtitleList");
+ searchDict = ghb_dict_get(subtitleDict, "Search");
+ search = ghb_dict_get_bool(searchDict, "Enable");
+ show = count = ghb_array_len(subtitleList) + search;
+ if (count > 3)
+ {
+ show = 2;
+ }
+ if (search)
+ {
+ gboolean force, burn, def;
+
+ force = ghb_dict_get_bool(searchDict, "Forced");
+ burn = ghb_dict_get_bool(searchDict, "Burn");
+ def = ghb_dict_get_bool(searchDict, "Default");
+
+ g_string_append_printf(str, "\nForeign Audio Scan");
+ if (force)
+ {
+ g_string_append_printf(str, ", Forced Only");
+ }
+ if (burn)
+ {
+ g_string_append_printf(str, ", Burned");
+ }
+ else if (def)
+ {
+ g_string_append_printf(str, ", Default");
+ }
+ show--;
+ count--;
+ }
+ for (ii = 0; ii < show; ii++)
+ {
+ GhbValue * subsettings, * subsource;
+ int track;
+ char * desc;
+ gboolean force, burn, def;
+
+ subsettings = ghb_array_get(subtitleList, ii);
+ track = ghb_dict_get_int(subsettings, "Track");
+ subsource = ghb_array_get(sourceSubtitleList, track);
+ desc = ghb_subtitle_short_description(subsource, subsettings);
+ force = ghb_dict_get_bool(subsettings, "Forced");
+ burn = ghb_dict_get_bool(subsettings, "Burn");
+ def = ghb_dict_get_bool(subsettings, "Default");
+
+ g_string_append_printf(str, "\n%s", desc);
+ if (force)
+ {
+ g_string_append_printf(str, ", Forced Only");
+ }
+ if (burn)
+ {
+ g_string_append_printf(str, ", Burned");
+ }
+ else if (def)
+ {
+ g_string_append_printf(str, ", Default");
+ }
+ }
+ if (show < count)
+ {
+ g_string_append_printf(str, "\n+ %d more subtitle track%s",
+ count - show,
+ count - show > 1 ? "s" : "");
+ }
+
+ if (ghb_dict_get_bool(ud->settings, "ChapterMarkers"))
+ {
+ g_string_append_printf(str, "\nChapter Markers");
+ }
+
+ text = g_string_free(str, FALSE);
+ widget = GHB_WIDGET(ud->builder, "tracks_summary");
+ gtk_label_set_text(GTK_LABEL(widget), text);
+ g_free(text);
+
+ // Filters
+ gboolean detel, comb_detect, deint, decomb, deblock, nlmeans, denoise;
+ gboolean unsharp, lapsharp, rot, gray;
+ const char * sval;
+ int ival;
+
+ sval = ghb_dict_get_string(ud->settings, "PictureDetelecine");
+ detel = sval != NULL && !!strcasecmp(sval, "off");
+ sval = ghb_dict_get_string(ud->settings, "PictureCombDetectPreset");
+ comb_detect = sval != NULL && !!strcasecmp(sval, "off");
+ sval = ghb_dict_get_string(ud->settings, "PictureDeinterlaceFilter");
+ deint = sval != NULL && !strcasecmp(sval, "deinterlace");
+ decomb = sval != NULL && !strcasecmp(sval, "decomb");
+ ival = ghb_dict_get_int(ud->settings, "PictureDeblock");
+ deblock = ival >= 5;
+ sval = ghb_dict_get_string(ud->settings, "PictureDenoiseFilter");
+ nlmeans = sval != NULL && !strcasecmp(sval, "nlmeans");
+ denoise = sval != NULL && !strcasecmp(sval, "hqdn3d");
+ sval = ghb_dict_get_string(ud->settings, "PictureSharpenFilter");
+ unsharp = sval != NULL && !strcasecmp(sval, "unsharp");
+ lapsharp = sval != NULL && !strcasecmp(sval, "lapsharp");
+ sval = ghb_dict_get_string(ud->settings, "PictureRotate");
+ rot = sval != NULL && !!strcasecmp(sval, "disable=1");
+ gray = ghb_dict_get_bool(ud->settings, "VideoGrayScale");
+
+ str = g_string_new("");
+ sval = "";
+ if (detel)
+ {
+ hb_filter_object_t * filter = hb_filter_get(HB_FILTER_DETELECINE);
+ g_string_append_printf(str, "%s%s", sval, filter->name);
+ sval = ", ";
+ }
+ if (comb_detect)
+ {
+ hb_filter_object_t * filter = hb_filter_get(HB_FILTER_COMB_DETECT);
+ g_string_append_printf(str, "%s%s", sval, filter->name);
+ sval = ", ";
+ }
+ if (deint)
+ {
+ hb_filter_object_t * filter = hb_filter_get(HB_FILTER_DEINTERLACE);
+ g_string_append_printf(str, "%s%s", sval, filter->name);
+ sval = ", ";
+ }
+ if (decomb)
+ {
+ hb_filter_object_t * filter = hb_filter_get(HB_FILTER_DECOMB);
+ g_string_append_printf(str, "%s%s", sval, filter->name);
+ sval = ", ";
+ }
+ if (deblock)
+ {
+ hb_filter_object_t * filter = hb_filter_get(HB_FILTER_DEBLOCK);
+ g_string_append_printf(str, "%s%s", sval, filter->name);
+ sval = ", ";
+ }
+ if (nlmeans)
+ {
+ hb_filter_object_t * filter = hb_filter_get(HB_FILTER_NLMEANS);
+ g_string_append_printf(str, "%s%s", sval, filter->name);
+ sval = ", ";
+ }
+ if (denoise)
+ {
+ hb_filter_object_t * filter = hb_filter_get(HB_FILTER_DENOISE);
+ g_string_append_printf(str, "%s%s", sval, filter->name);
+ sval = ", ";
+ }
+ if (unsharp)
+ {
+ hb_filter_object_t * filter = hb_filter_get(HB_FILTER_UNSHARP);
+ g_string_append_printf(str, "%s%s", sval, filter->name);
+ sval = ", ";
+ }
+ if (lapsharp)
+ {
+ hb_filter_object_t * filter = hb_filter_get(HB_FILTER_LAPSHARP);
+ g_string_append_printf(str, "%s%s", sval, filter->name);
+ sval = ", ";
+ }
+ if (rot)
+ {
+ hb_filter_object_t * filter = hb_filter_get(HB_FILTER_ROTATE);
+ g_string_append_printf(str, "%s%s", sval, filter->name);
+ sval = ", ";
+ }
+ if (gray)
+ {
+ hb_filter_object_t * filter = hb_filter_get(HB_FILTER_GRAYSCALE);
+ g_string_append_printf(str, "%s%s", sval, filter->name);
+ sval = ", ";
+ }
+
+ text = g_string_free(str, FALSE);
+ widget = GHB_WIDGET(ud->builder, "filters_summary");
+ gtk_label_set_text(GTK_LABEL(widget), text);
+ g_free(text);
+
+ int width, height, display_width, display_height, par_width, par_height;
+ char * display_aspect;
+
+ width = ghb_dict_get_int(ud->settings, "scale_width");
+ height = ghb_dict_get_int(ud->settings, "scale_height");
+ display_width = ghb_dict_get_int(ud->settings, "PictureDisplayWidth");
+ display_height = ghb_dict_get_int(ud->settings, "PictureDisplayHeight");
+ par_width = ghb_dict_get_int(ud->settings, "PicturePARWidth");
+ par_height = ghb_dict_get_int(ud->settings, "PicturePARHeight");
+
+ text = g_strdup_printf("%dx%d storage, %dx%d display",
+ width, height, display_width, display_height);
+ widget = GHB_WIDGET(ud->builder, "dimensions_summary");
+ gtk_label_set_text(GTK_LABEL(widget), text);
+ g_free(text);
+
+ display_aspect = ghb_get_display_aspect_string(display_width,
+ display_height);
+ text = g_strdup_printf("%d:%d PAR, %s DAR",
+ par_width, par_height, display_aspect);
+ widget = GHB_WIDGET(ud->builder, "aspect_summary");
+ gtk_label_set_text(GTK_LABEL(widget), text);
+ g_free(text);
+ g_free(display_aspect);
+}
+
void
set_title_settings(signal_user_data_t *ud, GhbValue *settings)
{
g_free(dest);
ghb_dict_set_int(settings, "preview_frame", 2);
+ ghb_update_summary_info(ud);
}
void
ghb_set_current_title_settings(signal_user_data_t *ud)
{
set_title_settings(ud, ud->settings);
+ ghb_update_summary_info(ud);
}
static void
ghb_value_free(&ud->settings_array);
ud->settings_array = settings_array;
ud->settings = ghb_array_get(ud->settings_array, titleindex);
+ ghb_update_summary_info(ud);
}
static gboolean update_preview = FALSE;
}
}
-G_MODULE_EXPORT void
-framerate_changed_cb(GtkWidget *widget, signal_user_data_t *ud)
-{
- ghb_widget_to_setting(ud->settings, widget);
-
- if (ghb_settings_video_framerate_rate(ud->settings, "VideoFramerate") != 0)
- {
- if (!ghb_dict_get_bool(ud->settings, "VideoFrameratePFR"))
- {
- ghb_ui_update(ud, "VideoFramerateCFR", ghb_boolean_value(TRUE));
- }
- }
- if (ghb_settings_video_framerate_rate(ud->settings, "VideoFramerate") == 0 &&
- ghb_dict_get_bool(ud->settings, "VideoFrameratePFR"))
- {
- ghb_ui_update(ud, "VideoFramerateVFR", ghb_boolean_value(TRUE));
- }
- ghb_check_dependency(ud, widget, NULL);
- ghb_clear_presets_selection(ud);
- ghb_live_reset(ud);
-}
-
G_MODULE_EXPORT void
setting_widget_changed_cb(GtkWidget *widget, signal_user_data_t *ud)
{
ghb_widget_to_setting(ud->settings, widget);
ghb_check_dependency(ud, widget, NULL);
+ ghb_update_summary_info(ud);
ghb_clear_presets_selection(ud);
ghb_live_reset(ud);
}
ghb_string_value("decomb"));
}
}
+ ghb_update_summary_info(ud);
}
G_MODULE_EXPORT void
ghb_ui_update(ud, "PictureCombDetectPreset",
ghb_string_value("off"));
}
+ ghb_update_summary_info(ud);
}
G_MODULE_EXPORT void
ghb_update_ui_combo_box(ud, "PictureDenoisePreset", NULL, FALSE);
ghb_ui_update(ud, "PictureDenoisePreset",
ghb_dict_get(ud->settings, "PictureDenoisePreset"));
+ ghb_update_summary_info(ud);
}
G_MODULE_EXPORT void
ghb_ui_update(ud, "PictureSharpenPreset",
ghb_dict_get(ud->settings, "PictureSharpenPreset"));
ghb_ui_update(ud, "PictureSharpenTune", ghb_string_value("none"));
+ ghb_update_summary_info(ud);
}
G_MODULE_EXPORT void
end = ghb_dict_get_int(ud->settings, "end_point");
markers &= (end > start);
ghb_dict_set_bool(dest, "ChapterMarkers", markers);
+ ghb_update_summary_info(ud);
}
G_MODULE_EXPORT void
else if (status.scan.state & GHB_STATE_SCANDONE)
{
const gchar *source;
- GtkProgressBar *scan_prog;
GtkLabel *label;
GtkWidget *widget;
source = ghb_dict_get_string(ud->globals, "scan_source");
update_source_label(ud, source);
- scan_prog = GTK_PROGRESS_BAR(GHB_WIDGET (ud->builder, "scan_prog"));
- gtk_progress_bar_set_fraction (scan_prog, 1.0);
- gtk_widget_hide(GTK_WIDGET(scan_prog));
+ hide_scan_progress(ud);
int title_id, titleindex;
const hb_title_t *title;
recognized in your source file.
In addition, there is a special track option
-"Foreign Audio Search". This option will add
+"Foreign Audio Scan". This option will add
an extra pass to the encode that searches for
subtitles that may correspond to a foreign
language scene. This option is best used in
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
- <property name="spacing">6</property>
<property name="margin-start">6</property>
<child>
- <object class="GtkLabel" id="label7">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes"><b>Source:</b></property>
- <property name="use_markup">True</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="volume_label">
+ <object class="GtkBox" id="SourceInfoBox">
+ <property name="orientation">horizontal</property>
<property name="visible">True</property>
<property name="can_focus">False</property>
+ <property name="spacing">6</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
- <property name="halign">start</property>
- <property name="label" translatable="yes">None</property>
+ <child>
+ <object class="GtkLabel" id="label7">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes"><b>Source:</b></property>
+ <property name="use_markup">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="volume_label">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <property name="halign">start</property>
+ <property name="ellipsize">middle</property>
+ <property name="margin-end">12</property>
+ <property name="label" translatable="yes">None</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="source_info_label">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <property name="halign">end</property>
+ <property name="label" translatable="yes"></property>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
- <property name="position">1</property>
+ <property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkProgressBar" id="scan_prog">
- <property name="width_request">400</property>
<property name="height_request">10</property>
<property name="can_focus">False</property>
<property name="valign">center</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
</object>
<packing>
- <property name="expand">False</property>
+ <property name="expand">True</property>
<property name="fill">True</property>
- <property name="position">2</property>
+ <property name="position">1</property>
</packing>
</child>
</object>
<property name="position">1</property>
</packing>
</child>
- <child>
- <object class="GtkLabel" id="label9">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes"><b>Destination</b></property>
- <property name="halign">GTK_ALIGN_START</property>
- <property name="use_markup">True</property>
- <property name="margin-start">6</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">2</property>
- </packing>
- </child>
- <child>
- <object class="GtkBox" id="hbox67">
- <property name="orientation">horizontal</property>
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="spacing">6</property>
- <property name="margin-start">6</property>
- <child>
- <object class="GtkGrid" id="table4">
- <property name="row-spacing">2</property>
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="margin-bottom">6</property>
- <child>
- <object class="GtkLabel" id="label18">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="halign">end</property>
- <property name="label" translatable="yes">File:</property>
- </object>
- <packing>
- <property name="top_attach">0</property>
- <property name="left_attach">0</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
- </child>
- <child>
- <placeholder/>
- </child>
- <child>
- <object class="GtkEntry" id="dest_file">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="tooltip_text" translatable="yes">Destination filename for your encode.</property>
- <property name="width_chars">40</property>
- <property name="primary_icon_activatable">False</property>
- <property name="secondary_icon_activatable">False</property>
- <accelerator key="d" signal="grab-focus" modifiers="GDK_MOD1_MASK"/>
- <signal name="changed" handler="dest_file_changed_cb" swapped="no"/>
- <signal name="grab-focus" handler="destination_grab_cb" after="yes" swapped="no"/>
- </object>
- <packing>
- <property name="top_attach">0</property>
- <property name="left_attach">1</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkFileChooserButton" id="dest_dir">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="tooltip_text" translatable="yes">Destination directory for your encode.</property>
- <property name="action">select-folder</property>
- <property name="local_only">False</property>
- <property name="title" translatable="yes">Destination Directory</property>
- <signal name="selection-changed" handler="dest_dir_set_cb" swapped="no"/>
- </object>
- <packing>
- <property name="top_attach">1</property>
- <property name="left_attach">1</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
- </child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkGrid" id="container_box">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="column_spacing">4</property>
- <property name="row-spacing">2</property>
- <child>
- <object class="GtkBox" id="hbox3">
- <property name="orientation">horizontal</property>
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="spacing">4</property>
- <child>
- <object class="GtkLabel" id="label45">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes">Format:</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkComboBox" id="FileFormat">
- <property name="visible">True</property>
- <property name="valign">GTK_ALIGN_CENTER</property>
- <property name="can_focus">False</property>
- <property name="tooltip_text" translatable="yes">Format to mux encoded tracks to.</property>
- <signal name="changed" handler="container_changed_cb" swapped="no"/>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
- </child>
- </object>
- <packing>
- <property name="top_attach">0</property>
- <property name="left_attach">0</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkCheckButton" id="Mp4HttpOptimize">
- <property name="label" translatable="yes">Web Optimized</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
- <property name="tooltip_text" translatable="yes">Optimize the layout of the MP4 file for progressive download.
-This allows a player to initiate playback before downloading the entire file.</property>
- <property name="halign">start</property>
- <property name="draw_indicator">True</property>
- <signal name="toggled" handler="setting_widget_changed_cb" swapped="no"/>
- </object>
- <packing>
- <property name="top_attach">0</property>
- <property name="left_attach">1</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkCheckButton" id="AlignAVStart">
- <property name="label" translatable="yes">Align A/V Start</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
- <property name="tooltip_text" translatable="yes">Aligns the initial timestamps of all audio and video streams by
-inserting blank frames or dropping frames. May improve audio/video
-sync for broken players that do not honor MP4 edit lists.</property>
- <property name="halign">start</property>
- <property name="draw_indicator">True</property>
- <signal name="toggled" handler="setting_widget_changed_cb" swapped="no"/>
- </object>
- <packing>
- <property name="top_attach">1</property>
- <property name="left_attach">0</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkCheckButton" id="Mp4iPodCompatible">
- <property name="label" translatable="yes">iPod 5G Support</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
- <property name="tooltip_text" translatable="yes">Add iPod Atom needed by some older iPods.</property>
- <property name="halign">start</property>
- <property name="draw_indicator">True</property>
- <signal name="toggled" handler="setting_widget_changed_cb" swapped="no"/>
- </object>
- <packing>
- <property name="top_attach">1</property>
- <property name="left_attach">1</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
- </child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
- </child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">3</property>
- </packing>
- </child>
</object>
<packing>
<property name="expand">False</property>
<property name="transition-duration">400</property>
<property name="visible">True</property>
<property name="can_focus">False</property>
+ <property name="margin-top">12</property>
<child>
<object class="GtkBox" id="settings_tab">
<property name="orientation">vertical</property>
<object class="GtkBox" id="summary_tab">
<property name="orientation">horizontal</property>
<property name="visible">True</property>
+ <property name="expand">True</property>
+ <property name="margin-top">12</property>
<property name="can_focus">False</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<property name="spacing">3</property>
<child>
- <object class="GtkBox" id="picture_summary">
- <property name="orientation">vertical</property>
+ <object class="GtkGrid" id="summary_table">
<property name="visible">True</property>
+ <property name="vexpand">True</property>
+ <property name="hexpand">False</property>
<property name="can_focus">False</property>
- <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
- <property name="spacing">0</property>
- <property name="margin-top">10</property>
- <property name="margin-start">0</property>
+ <property name="margin-end">32</property>
+ <property name="row-spacing">2</property>
+ <property name="column-spacing">6</property>
<child>
- <object class="GtkFrame" id="frame5">
+ <object class="GtkLabel" id="format_summary_label">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
- <child>
- <object class="GtkGrid" id="table11">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
- <property name="row_homogeneous">True</property>
- <property name="column_homogeneous">True</property>
- <property name="margin-top">6</property>
- <property name="margin-bottom">2</property>
- <property name="margin-start">12</property>
- <child>
- <object class="GtkLabel" id="labela5">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
- <property name="halign">start</property>
- <property name="label" translatable="yes">Source Codec:</property>
- </object>
- <packing>
- <property name="top_attach">0</property>
- <property name="left_attach">0</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="source_video_codec">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
- <property name="label" translatable="yes">--</property>
- </object>
- <packing>
- <property name="top_attach">0</property>
- <property name="left_attach">1</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="label23">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
- <property name="halign">start</property>
- <property name="label" translatable="yes">Dimensions:</property>
- </object>
- <packing>
- <property name="top_attach">1</property>
- <property name="left_attach">0</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="source_dimensions">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
- <property name="label" translatable="yes">--</property>
- </object>
- <packing>
- <property name="top_attach">1</property>
- <property name="left_attach">1</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="label42">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
- <property name="halign">start</property>
- <property name="label" translatable="yes">Aspect: </property>
- </object>
- <packing>
- <property name="top_attach">2</property>
- <property name="left_attach">0</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="source_aspect">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
- <property name="label" translatable="yes">--</property>
- </object>
- <packing>
- <property name="top_attach">2</property>
- <property name="left_attach">1</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="label43">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
- <property name="halign">start</property>
- <property name="label" translatable="yes">Frame Rate:</property>
- </object>
- <packing>
- <property name="top_attach">3</property>
- <property name="left_attach">0</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="source_frame_rate">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
- <property name="label" translatable="yes">--</property>
- </object>
- <packing>
- <property name="top_attach">3</property>
- <property name="left_attach">1</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
- </child>
- </object>
- </child>
- <child type="label">
- <object class="GtkLabel" id="label44">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
- <property name="label" translatable="yes"><b>Source Picture Parameters</b></property>
- <property name="use_markup">True</property>
- </object>
- </child>
+ <property name="label" translatable="yes"><b>Format:</b></property>
+ <property name="xalign">0</property>
+ <property name="hexpand">False</property>
+ <property name="use_markup">True</property>
</object>
<packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="padding">2</property>
- <property name="position">0</property>
+ <property name="top_attach">0</property>
+ <property name="left_attach">0</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
</packing>
</child>
<child>
- <object class="GtkFrame" id="Cropping1">
+ <object class="GtkComboBox" id="FileFormat">
<property name="visible">True</property>
+ <property name="hexpand">False</property>
+ <property name="halign">start</property>
<property name="can_focus">False</property>
+ <property name="tooltip_text" translatable="yes">Format to mux encoded tracks to.</property>
+ <signal name="changed" handler="container_changed_cb" swapped="no"/>
+ </object>
+ <packing>
+ <property name="top_attach">0</property>
+ <property name="left_attach">1</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkCheckButton" id="Mp4HttpOptimize">
+ <property name="label" translatable="yes">Web Optimized</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
- <child>
- <object class="GtkGrid" id="table12">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
- <property name="row_homogeneous">True</property>
- <property name="column_homogeneous">True</property>
- <property name="margin-top">6</property>
- <property name="margin-bottom">2</property>
- <property name="margin-start">12</property>
- <property name="margin-end">2</property>
- <child>
- <object class="GtkLabel" id="label13">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="halign">start</property>
- <property name="label" translatable="yes">Autocrop:</property>
- </object>
- <packing>
- <property name="top_attach">0</property>
- <property name="left_attach">0</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="crop_auto">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes">On</property>
- </object>
- <packing>
- <property name="top_attach">0</property>
- <property name="left_attach">1</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="label12">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="halign">start</property>
- <property name="label" translatable="yes">Crop:</property>
- </object>
- <packing>
- <property name="top_attach">1</property>
- <property name="left_attach">0</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="crop_values">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes">--</property>
- </object>
- <packing>
- <property name="top_attach">1</property>
- <property name="left_attach">1</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="label76">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
- <property name="halign">start</property>
- <property name="label" translatable="yes">Crop Dimensions:</property>
- </object>
- <packing>
- <property name="top_attach">2</property>
- <property name="left_attach">0</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="crop_dimensions">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
- <property name="label" translatable="yes">--</property>
- </object>
- <packing>
- <property name="top_attach">2</property>
- <property name="left_attach">1</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
- </child>
- </object>
- </child>
- <child type="label">
- <object class="GtkLabel" id="label16">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
- <property name="label" translatable="yes"><b>Cropping</b></property>
- <property name="use_markup">True</property>
- </object>
- </child>
+ <property name="tooltip_text" translatable="yes">Optimize the layout of the MP4 file for progressive download.
+This allows a player to initiate playback before downloading the entire file.</property>
+ <property name="halign">start</property>
+ <property name="hexpand">False</property>
+ <property name="draw_indicator">True</property>
+ <signal name="toggled" handler="setting_widget_changed_cb" swapped="no"/>
+ </object>
+ <packing>
+ <property name="top_attach">1</property>
+ <property name="left_attach">1</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkCheckButton" id="AlignAVStart">
+ <property name="label" translatable="yes">Align A/V Start</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+ <property name="tooltip_text" translatable="yes">Aligns the initial timestamps of all audio and video streams by
+inserting blank frames or dropping frames. May improve audio/video
+sync for broken players that do not honor MP4 edit lists.</property>
+ <property name="halign">start</property>
+ <property name="hexpand">False</property>
+ <property name="draw_indicator">True</property>
+ <signal name="toggled" handler="setting_widget_changed_cb" swapped="no"/>
</object>
<packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="padding">2</property>
- <property name="position">1</property>
+ <property name="top_attach">2</property>
+ <property name="left_attach">1</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
</packing>
</child>
<child>
- <object class="GtkFrame" id="frame16">
+ <object class="GtkCheckButton" id="Mp4iPodCompatible">
+ <property name="label" translatable="yes">iPod 5G Support</property>
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">none</property>
- <child>
- <object class="GtkGrid" id="table13">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
- <property name="row_homogeneous">True</property>
- <property name="column_homogeneous">True</property>
- <property name="margin-top">6</property>
- <property name="margin-bottom">2</property>
- <property name="margin-start">12</property>
- <property name="margin-end">2</property>
- <child>
- <object class="GtkLabel" id="label14">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="halign">start</property>
- <property name="label" translatable="yes">Scale Dimensions:</property>
- </object>
- <packing>
- <property name="top_attach">0</property>
- <property name="left_attach">0</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="scale_dimensions">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes">--</property>
- </object>
- <packing>
- <property name="top_attach">0</property>
- <property name="left_attach">1</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="label15">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="halign">start</property>
- <property name="label" translatable="yes">Optimal for Source:</property>
- </object>
- <packing>
- <property name="top_attach">1</property>
- <property name="left_attach">0</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="scale_auto">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes">On</property>
- </object>
- <packing>
- <property name="top_attach">1</property>
- <property name="left_attach">1</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="label17">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="halign">start</property>
- <property name="label" translatable="yes">Anamorphic:</property>
- </object>
- <packing>
- <property name="top_attach">2</property>
- <property name="left_attach">0</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="scale_anamorphic">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes">On</property>
- </object>
- <packing>
- <property name="top_attach">2</property>
- <property name="left_attach">1</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
- </child>
- </object>
- </child>
- <child type="label">
- <object class="GtkLabel" id="label19">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
- <property name="label" translatable="yes"><b>Scaling</b></property>
- <property name="use_markup">True</property>
- </object>
- </child>
+ <property name="tooltip_text" translatable="yes">Add iPod Atom needed by some older iPods.</property>
+ <property name="halign">start</property>
+ <property name="hexpand">False</property>
+ <property name="draw_indicator">True</property>
+ <signal name="toggled" handler="setting_widget_changed_cb" swapped="no"/>
</object>
<packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="padding">2</property>
- <property name="position">2</property>
+ <property name="top_attach">3</property>
+ <property name="left_attach">1</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="tracks_summary_label">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes"><b>Tracks:</b></property>
+ <property name="xalign">0</property>
+ <property name="yalign">0</property>
+ <property name="hexpand">False</property>
+ <property name="margin-top">12</property>
+ <property name="use_markup">True</property>
+ </object>
+ <packing>
+ <property name="top_attach">4</property>
+ <property name="left_attach">0</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="tracks_summary">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="width-chars">30</property>
+ <property name="max-width-chars">50</property>
+ <property name="halign">start</property>
+ <property name="xalign">0</property>
+ <property name="yalign">0</property>
+ <property name="hexpand">False</property>
+ <property name="wrap">True</property>
+ <property name="margin-top">12</property>
+ <property name="label" translatable="yes"></property>
+ <property name="use_markup">True</property>
+ </object>
+ <packing>
+ <property name="top_attach">4</property>
+ <property name="left_attach">1</property>
+ <property name="width">1</property>
+ <property name="height">8</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="filters_summary_label">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes"><b>Filters:</b></property>
+ <property name="use_markup">True</property>
+ <property name="xalign">0</property>
+ <property name="yalign">0</property>
+ <property name="hexpand">False</property>
+ <property name="margin-top">12</property>
+ </object>
+ <packing>
+ <property name="top_attach">12</property>
+ <property name="left_attach">0</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="filters_summary">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="width-chars">30</property>
+ <property name="max-width-chars">50</property>
+ <property name="halign">start</property>
+ <property name="xalign">0</property>
+ <property name="yalign">0</property>
+ <property name="hexpand">False</property>
+ <property name="wrap">True</property>
+ <property name="margin-top">12</property>
+ <property name="label" translatable="yes"></property>
+ <property name="use_markup">True</property>
+ </object>
+ <packing>
+ <property name="top_attach">12</property>
+ <property name="left_attach">1</property>
+ <property name="width">1</property>
+ <property name="height">4</property>
</packing>
</child>
</object>
<packing>
- <property name="expand">True</property>
- <property name="fill">True</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
<property name="position">0</property>
</packing>
</child>
<property name="orientation">vertical</property>
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="valign">center</property>
+ <property name="expand">True</property>
<property name="margin-top">12</property>
<property name="margin-end">0</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
<child>
<object class="GtkImage" id="preview_button_image">
- <property name="width_request">448</property>
- <property name="height_request">200</property>
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="valign">end</property>
<property name="margin-bottom">4</property>
<property name="margin-start">4</property>
<property name="margin-end">4</property>
+ <property name="expand">True</property>
<property name="pixel_size">128</property>
<property name="icon_name">hb-icon</property>
<signal name="size-allocate" handler="preview_button_size_allocate_cb" swapped="no"/>
</object>
<packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">1</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
</packing>
</child>
<child>
- <object class="GtkBox" id="picture_summary2">
- <property name="orientation">horizontal</property>
+ <object class="GtkGrid" id="dimensions_summary_table">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="spacing">4</property>
<property name="halign">center</property>
<property name="valign">start</property>
+ <property name="column-spacing">6</property>
<child>
- <object class="GtkLabel" id="label10">
+ <object class="GtkLabel" id="dimensions_summary_label">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="label" translatable="yes">Presentation Dimensions:</property>
- <property name="justify">right</property>
+ <property name="label" translatable="yes">Dimensions:</property>
+ <property name="halign">start</property>
+ <property name="xalign">0</property>
</object>
<packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">0</property>
+ <property name="top_attach">0</property>
+ <property name="left_attach">0</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
</packing>
</child>
<child>
- <object class="GtkLabel" id="preview_dims">
+ <object class="GtkLabel" id="dimensions_summary">
<property name="width_request">85</property>
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">--</property>
</object>
<packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">1</property>
+ <property name="top_attach">0</property>
+ <property name="left_attach">1</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="aspect_summary_label">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">Aspect Ratio:</property>
+ <property name="halign">start</property>
+ <property name="xalign">0</property>
+ </object>
+ <packing>
+ <property name="top_attach">1</property>
+ <property name="left_attach">0</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="aspect_summary">
+ <property name="width_request">85</property>
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="halign">start</property>
+ <property name="valign">start</property>
+ <property name="label" translatable="yes">--</property>
+ </object>
+ <packing>
+ <property name="top_attach">1</property>
+ <property name="left_attach">1</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
- <property name="position">2</property>
+ <property name="position">1</property>
</packing>
</child>
</object>
<property name="tooltip_text" translatable="yes">Enables constant framerate output.</property>
<property name="halign">start</property>
<property name="draw_indicator">True</property>
- <signal name="toggled" handler="setting_widget_changed_cb" swapped="no"/>
+ <signal name="toggled" handler="framerate_mode_changed_cb" swapped="no"/>
</object>
<packing>
<property name="top_attach">2</property>
<property name="halign">start</property>
<property name="draw_indicator">True</property>
<property name="group">VideoFramerateCFR</property>
- <signal name="toggled" handler="setting_widget_changed_cb" swapped="no"/>
+ <signal name="toggled" handler="framerate_mode_changed_cb" swapped="no"/>
</object>
<packing>
<property name="top_attach">3</property>
<property name="halign">start</property>
<property name="draw_indicator">True</property>
<property name="group">VideoFramerateCFR</property>
- <signal name="toggled" handler="setting_widget_changed_cb" swapped="no"/>
+ <signal name="toggled" handler="framerate_mode_changed_cb" swapped="no"/>
</object>
<packing>
<property name="top_attach">3</property>
<property name="sensitive">True</property>
<property name="can_focus">True</property>
<property name="is_important">True</property>
- <property name="label" translatable="yes">Foreign Audio Search</property>
+ <property name="label" translatable="yes">Foreign Audio Scan</property>
<property name="icon_name">list-add</property>
<property name="tooltip_text" translatable="yes">Add an extra pass to the encode which searches
for subtitle candidates that provide subtitles for
</child>
<child>
<object class="GtkCheckButton" id="SubtitleAddForeignAudioSearch">
- <property name="label" translatable="yes">Add Foreign Audio Search Pass</property>
+ <property name="label" translatable="yes">Add Foreign Audio Scan Pass</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
- <property name="tooltip_text" translatable="yes">Add "Foreign Audio Search" when the default audio track is your preferred language.
+ <property name="tooltip_text" translatable="yes">Add "Foreign Audio Scan" when the default audio track is your preferred language.
This search pass finds short sequences of foreign audio and provides subtitles for them.
This option requires a language to be set in the Selected Languages list.</property>
<property name="position">2</property>
</packing>
</child>
+ <child>
+ <object class="GtkGrid" id="table4">
+ <property name="row-spacing">2</property>
+ <property name="column-spacing">2</property>
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="margin-top">12</property>
+ <property name="margin-start">6</property>
+ <property name="margin-end">6</property>
+ <child>
+ <object class="GtkLabel" id="label18">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="halign">end</property>
+ <property name="margin-end">6</property>
+ <property name="use_markup">True</property>
+ <property name="label" translatable="yes"><b>Destination:</b></property>
+ </object>
+ <packing>
+ <property name="top_attach">0</property>
+ <property name="left_attach">0</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkEntry" id="dest_file">
+ <property name="hexpand">True</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="tooltip_text" translatable="yes">Destination filename for your encode.</property>
+ <property name="primary_icon_activatable">False</property>
+ <property name="secondary_icon_activatable">False</property>
+ <accelerator key="d" signal="grab-focus" modifiers="GDK_MOD1_MASK"/>
+ <signal name="changed" handler="dest_file_changed_cb" swapped="no"/>
+ <signal name="grab-focus" handler="destination_grab_cb" after="yes" swapped="no"/>
+ </object>
+ <packing>
+ <property name="top_attach">0</property>
+ <property name="left_attach">1</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkFileChooserButton" id="dest_dir">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="tooltip_text" translatable="yes">Destination directory for your encode.</property>
+ <property name="action">select-folder</property>
+ <property name="local_only">False</property>
+ <property name="title" translatable="yes">Destination Directory</property>
+ <signal name="selection-changed" handler="dest_dir_set_cb" swapped="no"/>
+ </object>
+ <packing>
+ <property name="top_attach">0</property>
+ <property name="left_attach">2</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">3</property>
+ </packing>
+ </child>
<child>
<object class="GtkBox" id="hbox46">
<property name="orientation">horizontal</property>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
- <property name="position">3</property>
+ <property name="position">4</property>
</packing>
</child>
<child>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
- <property name="position">4</property>
+ <property name="position">5</property>
</packing>
</child>
</object>