From b8ae4947b6577cc8b5ad173615fac809b13d0800 Mon Sep 17 00:00:00 2001 From: Dave Andreoli Date: Sat, 15 Oct 2016 20:59:57 +0200 Subject: Emotion: prefer ratio to calculate sizes Instead of calculate the ratio from the sizes, calc the width from the ratio, as ratio seems always accurate. Fallback to the old code if ratio not available (tbh I never see this case) @Fix EMOTION_ASPECT_KEEP_BOTH with some rare strams, mostly DVD and online stuff --- src/lib/emotion/emotion_smart.c | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) (limited to 'src/lib/emotion/emotion_smart.c') diff --git a/src/lib/emotion/emotion_smart.c b/src/lib/emotion/emotion_smart.c index 16a6677414..52ae0e6d06 100644 --- a/src/lib/emotion/emotion_smart.c +++ b/src/lib/emotion/emotion_smart.c @@ -476,10 +476,20 @@ _efl_canvas_video_aspect_border_apply(Evas_Object *obj, Efl_Canvas_Video_Data *s int aspect_opt = 0; - iw = sd->video.w; - ih = sd->video.h; + /* Prefer (if available) the video aspect ratio to calculate the sizes */ + if (sd->ratio > 0.0) + { + ir = sd->ratio; + ih = sd->video.h; + iw = (double)ih * ir; + } + else + { + iw = sd->video.w; + ih = sd->video.h; + ir = (double)iw / ih; + } - ir = (double)iw / ih; r = (double)w / h; /* First check if we should fit the width or height of the video inside the -- cgit v1.2.1