Emotion: prefer ratio to calculate sizes
authorDave Andreoli <dave@gurumeditation.it>
Sat, 15 Oct 2016 18:59:57 +0000 (20:59 +0200)
committerDave Andreoli <dave@gurumeditation.it>
Sun, 16 Oct 2016 06:19:30 +0000 (08:19 +0200)
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

index 16a6677..52ae0e6 100644 (file)
@@ -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