changeset 5068:5657f855d5d0 libavformat

only set par if it does not indicates a rotation, ex iphone 3GS
author bcoudurier
date Thu, 25 Jun 2009 00:17:47 +0000
parents 499c21a8e0c2
children 9fd4808c3916
files mov.c
diffstat 1 files changed, 7 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/mov.c	Wed Jun 24 23:04:05 2009 +0000
+++ b/mov.c	Thu Jun 25 00:17:47 2009 +0000
@@ -1671,13 +1671,16 @@
     sc->width = width >> 16;
     sc->height = height >> 16;
 
-    //transform the display width/height according to the matrix
+    // transform the display width/height according to the matrix
     // skip this if the display matrix is the default identity matrix
+    // or if it is rotating the picture, ex iPhone 3GS
     // to keep the same scale, use [width height 1<<16]
     if (width && height &&
-        (display_matrix[0][0] != 65536 || display_matrix[0][1]           ||
-        display_matrix[1][0]           || display_matrix[1][1] != 65536  ||
-        display_matrix[2][0]           || display_matrix[2][1])) {
+        ((display_matrix[0][0] != 65536  ||
+          display_matrix[1][1] != 65536) &&
+         !display_matrix[0][1] &&
+         !display_matrix[1][0] &&
+         !display_matrix[2][0] && !display_matrix[2][1])) {
         for (i = 0; i < 2; i++)
             disp_transform[i] =
                 (int64_t)  width  * display_matrix[0][i] +