/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 4; tab-width: 4 -*- */
/*
* callbacks.c
- * Copyright (C) John Stebbins 2008 <stebbins@stebbins>
+ * Copyright (C) John Stebbins 2008-2011 <stebbins@stebbins>
*
* callbacks.c is free software.
*
{
int container;
const gchar *extension = "error";
- GValue *audio_list;
- GValue *subtitle_list;
container = ghb_settings_combo_int(ud->settings, "FileFormat");
if (container == HB_MUX_MP4)
{
extension = "mp4";
- audio_list = ghb_settings_get_value(ud->settings, "audio_list");
- subtitle_list = ghb_settings_get_value(ud->settings, "subtitle_list");
- if (ghb_ac3_in_audio_list(audio_list) ||
- ghb_soft_in_subtitle_list(subtitle_list) ||
- ghb_settings_get_boolean(ud->settings, "ChapterMarkers") ||
- ghb_settings_get_boolean(ud->settings, "UseM4v"))
+ if (ghb_settings_get_boolean(ud->settings, "UseM4v"))
{
extension = "m4v";
}
ghb_adjust_audio_rate_combos(ud);
ghb_set_pref_audio(titleindex, ud);
ghb_set_pref_subtitle(titleindex, ud);
- if (ghb_settings_get_boolean(ud->settings, "vquality_type_target"))
- {
- gint bitrate = ghb_calculate_target_bitrate (ud->settings, titleindex);
- ghb_ui_update(ud, "VideoAvgBitrate", ghb_int64_value(bitrate));
- }
// Unfortunately, there is no way to query how many frames were
// actually generated during the scan.
gint end;
widget = GHB_WIDGET (ud->builder, "ChapterMarkers");
- gtk_widget_set_sensitive(widget, TRUE);
end = ghb_settings_get_int(ud->settings, "end_point");
if (1 == end)
{
- ud->dont_clear_presets = TRUE;
- ghb_ui_update(ud, "ChapterMarkers", ghb_boolean_value(FALSE));
- ud->dont_clear_presets = FALSE;
gtk_widget_set_sensitive(widget, FALSE);
}
+ else
+ {
+ gtk_widget_set_sensitive(widget, TRUE);
+ }
}
G_MODULE_EXPORT void
}
G_MODULE_EXPORT void
+framerate_changed_cb(GtkWidget *widget, signal_user_data_t *ud)
+{
+ ghb_widget_to_setting(ud->settings, widget);
+
+ if (ghb_settings_combo_int(ud->settings, "VideoFramerate") != 0)
+ {
+ if (!ghb_settings_get_boolean(ud->settings, "VideoFrameratePFR"))
+ {
+ ghb_ui_update(ud, "VideoFramerateCFR", ghb_boolean_value(TRUE));
+ }
+ }
+ if (ghb_settings_combo_int(ud->settings, "VideoFramerate") == 0 &&
+ ghb_settings_get_boolean(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);
}
G_MODULE_EXPORT void
-target_size_changed_cb(GtkWidget *widget, signal_user_data_t *ud)
-{
- const gchar *name = ghb_get_setting_key(widget);
- g_debug("target_size_changed_cb () %s", name);
- ghb_widget_to_setting(ud->settings, widget);
- ghb_check_dependency(ud, widget, NULL);
- ghb_clear_presets_selection(ud);
- ghb_live_reset(ud);
- if (ghb_settings_get_boolean(ud->settings, "vquality_type_target"))
- {
- gint titleindex;
- titleindex = ghb_settings_combo_int(ud->settings, "title");
- gint bitrate = ghb_calculate_target_bitrate (ud->settings, titleindex);
- ghb_ui_update(ud, "VideoAvgBitrate", ghb_int64_value(bitrate));
- }
-}
-
-G_MODULE_EXPORT void
start_point_changed_cb(GtkWidget *widget, signal_user_data_t *ud)
{
gint start, end;
set_destination(ud);
}
widget = GHB_WIDGET (ud->builder, "ChapterMarkers");
- gtk_widget_set_sensitive(widget, TRUE);
// End may have been changed above, get it again
end = ghb_settings_get_int(ud->settings, "end_point");
if (start == end)
{
- ud->dont_clear_presets = TRUE;
- ghb_ui_update(ud, "ChapterMarkers", ghb_boolean_value(FALSE));
- ud->dont_clear_presets = FALSE;
gtk_widget_set_sensitive(widget, FALSE);
}
+ else
+ {
+ gtk_widget_set_sensitive(widget, TRUE);
+ }
update_title_duration(ud);
}
else if (ghb_settings_combo_int(ud->settings, "PtoPType") == 1)
set_destination(ud);
}
widget = GHB_WIDGET (ud->builder, "ChapterMarkers");
- gtk_widget_set_sensitive(widget, TRUE);
// Start may have been changed above, get it again
start = ghb_settings_get_int(ud->settings, "start_point");
if (start == end)
{
- ud->dont_clear_presets = TRUE;
- ghb_ui_update(ud, "ChapterMarkers", ghb_boolean_value(FALSE));
- ud->dont_clear_presets = FALSE;
gtk_widget_set_sensitive(widget, FALSE);
}
+ else
+ {
+ gtk_widget_set_sensitive(widget, TRUE);
+ }
update_title_duration(ud);
}
else if (ghb_settings_combo_int(ud->settings, "PtoPType") == 1)
NULL);
response = gtk_dialog_run(GTK_DIALOG(dialog));
gtk_widget_destroy (dialog);
- switch (response)
+ switch ((int)response)
{
case 1:
ghb_stop_queue();
NULL);
response = gtk_dialog_run(GTK_DIALOG(dialog));
gtk_widget_destroy (dialog);
- switch (response)
+ switch ((int)response)
{
case 1:
ghb_stop_queue();
{
case HB_VCODEC_X264:
{
- return g_strdup_printf("RF: %.4g", val);
+ if (val == 0.0)
+ {
+ return g_strdup_printf("RF: %.4g (Warning: lossless)", val);
+ }
+ else
+ {
+ return g_strdup_printf("RF: %.4g", val);
+ }
} break;
case HB_VCODEC_FFMPEG: