From cd1b955b6d297fb4003b0bc02d39586a689ffaf7 Mon Sep 17 00:00:00 2001 From: jstebbins Date: Wed, 27 Aug 2014 15:58:29 +0000 Subject: CLI: fix dimensions problem when both width and height are specified The GUI will precompute both width and height and specify both on the command line. But then the CLI recomputes width based on height which can result in the width being changed. So, in non-anamorphic mode, disable keep_aspect so that width and heigh are both kept. And in other anamorphic modes, use custom ana when computing dimensions so that both width and height are kept (i.e. recompute par). git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6369 b64f7644-9d1e-0410-96f1-a4d463321fa5 --- libhb/hb.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) (limited to 'libhb/hb.c') diff --git a/libhb/hb.c b/libhb/hb.c index e7c9c22bf..1ba78d774 100644 --- a/libhb/hb.c +++ b/libhb/hb.c @@ -1079,12 +1079,12 @@ void hb_set_anamorphic_size2(hb_geometry_t *src_geo, if (!keep_height) { width = MULTIPLE_MOD_UP(ui_geo->width, mod); - height = MULTIPLE_MOD((int)(width / dar), mod); + height = MULTIPLE_MOD(width / dar, mod); } else { height = MULTIPLE_MOD_UP(ui_geo->height, mod); - width = MULTIPLE_MOD((int)(height * dar), mod); + width = MULTIPLE_MOD(height * dar, mod); } } else @@ -1095,12 +1095,12 @@ void hb_set_anamorphic_size2(hb_geometry_t *src_geo, if (maxWidth && (width > maxWidth)) { width = maxWidth; - height = MULTIPLE_MOD((int)(width / dar), mod); + height = MULTIPLE_MOD(width / dar, mod); } if (maxHeight && (height > maxHeight)) { height = maxHeight; - width = MULTIPLE_MOD((int)(height * dar), mod); + width = MULTIPLE_MOD(height * dar, mod); } dst_par_num = dst_par_den = 1; } break; @@ -1141,24 +1141,24 @@ void hb_set_anamorphic_size2(hb_geometry_t *src_geo, if (!keep_height) { width = MULTIPLE_MOD_UP(ui_geo->width, mod); - height = MULTIPLE_MOD_UP((int)(width / storage_aspect + 0.5), mod); + height = MULTIPLE_MOD_UP(width / storage_aspect + 0.5, mod); } else { height = MULTIPLE_MOD_UP(ui_geo->height, mod); - width = MULTIPLE_MOD_UP((int)(height * storage_aspect + 0.5), mod); + width = MULTIPLE_MOD_UP(height * storage_aspect + 0.5, mod); } if (maxWidth && (maxWidth < width)) { width = maxWidth; - height = MULTIPLE_MOD((int)(width / storage_aspect + 0.5), mod); + height = MULTIPLE_MOD(width / storage_aspect + 0.5, mod); } if (maxHeight && (maxHeight < height)) { height = maxHeight; - width = MULTIPLE_MOD((int)(height * storage_aspect + 0.5), mod); + width = MULTIPLE_MOD(height * storage_aspect + 0.5, mod); } /* Adjust the output PAR for new width/height -- cgit v1.2.3