davemds pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=b8ae4947b6577cc8b5ad173615fac809b13d0800

commit b8ae4947b6577cc8b5ad173615fac809b13d0800
Author: Dave Andreoli <d...@gurumeditation.it>
Date:   Sat Oct 15 20:59:57 2016 +0200

    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(-)

diff --git a/src/lib/emotion/emotion_smart.c b/src/lib/emotion/emotion_smart.c
index 16a6677..52ae0e6 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

-- 


Reply via email to