summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjstebbins <[email protected]>2009-10-23 00:30:02 +0000
committerjstebbins <[email protected]>2009-10-23 00:30:02 +0000
commit4784d4c2d72a0aa7366d48d3974339c12b0f65af (patch)
treed9a0067064ce75e4df4a30eb91e19ceb6aca3c7c
parent7ca9efc397bac13419a6ef30ee33826f987a1a5a (diff)
fix a couple picture scale issues
adjusting the storage height sometimes got wedged due to incorrect rounding causing feedback loop. height change leads to width change, but width rounded too small width change leads to height change that goes back to original height presets that had width/height saved (e.g. iPod) were blocking user from manually selecting a higher resolution. git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@2894 b64f7644-9d1e-0410-96f1-a4d463321fa5
-rw-r--r--gtk/src/hb-backend.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/gtk/src/hb-backend.c b/gtk/src/hb-backend.c
index 396eae561..6dc26275c 100644
--- a/gtk/src/hb-backend.c
+++ b/gtk/src/hb-backend.c
@@ -3114,7 +3114,12 @@ ghb_set_scale(signal_user_data_t *ud, gint mode)
if (busy) return;
busy = TRUE;
-
+ if (!ud->dont_clear_presets && (keep_width || keep_height))
+ {
+ ghb_settings_set_int(ud->settings, "PictureWidth", 0);
+ ghb_settings_set_int(ud->settings, "PictureHeight", 0);
+ }
+
// First configure widgets
mod = ghb_settings_combo_int(ud->settings, "PictureModulus");
pic_par = ghb_settings_combo_int(ud->settings, "PicturePAR");
@@ -3250,7 +3255,7 @@ ghb_set_scale(signal_user_data_t *ud, gint mode)
job->anamorphic.dar_height = 0;
if (keep_height && pic_par == 2)
- width = ((double)height * crop_width / crop_height) + 0.5;
+ width = ((double)height * crop_width / crop_height) + mod / 2;
job->width = width;
job->height = height;
job->maxWidth = max_width;