@@ -2131,26 +2131,35 @@ void video_viewport_get_scaled_aspect2(struct video_viewport *vp,
21312131
21322132 if (settings -> uints .video_aspect_ratio_idx == ASPECT_RATIO_CUSTOM )
21332133 {
2134- video_viewport_t
2135- * custom_vp = & settings -> video_vp_custom ;
2136- int padding_x = 0 ;
2137- int padding_y = 0 ;
2138-
2139- x = custom_vp -> x ;
2140- y = custom_vp -> y ;
2141-
2142- if (!y_down )
2143- y = vp -> full_height - (y + custom_vp -> height );
2144- padding_x += (vp_width - custom_vp -> width );
2145- if (padding_x < 0 )
2146- padding_x *= 2 ;
2147- padding_y = vp_height - custom_vp -> height ;
2148- if (padding_y < 0 )
2149- padding_y *= 2 ;
2150- vp_width = custom_vp -> width ;
2151- vp_height = custom_vp -> height ;
2152- x += padding_x * vp_bias_x ;
2153- y += padding_y * vp_bias_y ;
2134+ video_viewport_t * custom_vp = & settings -> video_vp_custom ;
2135+
2136+ if (custom_vp )
2137+ {
2138+ int padding_x = 0 ;
2139+ int padding_y = 0 ;
2140+
2141+ x = custom_vp -> x ;
2142+ y = custom_vp -> y ;
2143+
2144+ padding_x = vp_width - custom_vp -> width ;
2145+ padding_y = vp_height - custom_vp -> height ;
2146+
2147+ if (padding_x < 0 )
2148+ {
2149+ x -= padding_x / 2 ;
2150+ padding_x *= 2 ;
2151+ }
2152+ if (padding_y < 0 )
2153+ {
2154+ y -= padding_y / 2 ;
2155+ padding_y *= 2 ;
2156+ }
2157+
2158+ vp_width = custom_vp -> width ;
2159+ vp_height = custom_vp -> height ;
2160+ x += padding_x * vp_bias_x ;
2161+ y += padding_y * vp_bias_y ;
2162+ }
21542163 }
21552164 else
21562165 {
@@ -2461,19 +2470,26 @@ void video_viewport_get_scaled_integer(struct video_viewport *vp,
24612470 if (video_aspect_ratio_idx == ASPECT_RATIO_CUSTOM )
24622471 {
24632472 struct video_viewport * custom_vp = & settings -> video_vp_custom ;
2473+
24642474 if (custom_vp )
24652475 {
24662476 x = custom_vp -> x ;
24672477 y = custom_vp -> y ;
24682478
2469- if (!y_down )
2470- y = vp -> height - (y + custom_vp -> height );
24712479 padding_x = width - custom_vp -> width ;
2480+ padding_y = height - custom_vp -> height ;
2481+
24722482 if (padding_x < 0 )
2483+ {
2484+ x -= padding_x / 2 ;
24732485 padding_x *= 2 ;
2474- padding_y = height - custom_vp -> height ;
2486+ }
24752487 if (padding_y < 0 )
2488+ {
2489+ y -= padding_y / 2 ;
24762490 padding_y *= 2 ;
2491+ }
2492+
24772493 width = custom_vp -> width ;
24782494 height = custom_vp -> height ;
24792495 }
0 commit comments