summaryrefslogtreecommitdiffstats
path: root/libhb/hb.c
diff options
context:
space:
mode:
authorjstebbins <[email protected]>2014-08-27 15:58:29 +0000
committerjstebbins <[email protected]>2014-08-27 15:58:29 +0000
commitcd1b955b6d297fb4003b0bc02d39586a689ffaf7 (patch)
treeb5d6ec7356eeaf00f8a304ea1a73347b252f70e6 /libhb/hb.c
parent15417070c594a330923a62f0ab2054c39d3115f4 (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.c16
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