diff options
author | jstebbins <[email protected]> | 2014-08-27 15:58:29 +0000 |
---|---|---|
committer | jstebbins <[email protected]> | 2014-08-27 15:58:29 +0000 |
commit | cd1b955b6d297fb4003b0bc02d39586a689ffaf7 (patch) | |
tree | b5d6ec7356eeaf00f8a304ea1a73347b252f70e6 /libhb/hb.c | |
parent | 15417070c594a330923a62f0ab2054c39d3115f4 (diff) |
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
Diffstat (limited to 'libhb/hb.c')
-rw-r--r-- | libhb/hb.c | 16 |
1 files changed, 8 insertions, 8 deletions
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 |