Aric Stewart : wineqtdecoder: Do not invert height.

Alexandre Julliard julliard at winehq.org
Tue Jan 17 13:45:24 CST 2012


Module: wine
Branch: master
Commit: 9aa3c74503b924e5b251901add6e34e2035cbdce
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=9aa3c74503b924e5b251901add6e34e2035cbdce

Author: Aric Stewart <aric at codeweavers.com>
Date:   Mon Jan 16 14:14:07 2012 -0600

wineqtdecoder: Do not invert height.

---

 dlls/wineqtdecoder/qtsplitter.c |    5 +++--
 dlls/wineqtdecoder/qtutils.c    |    5 +++--
 dlls/wineqtdecoder/qtvdecoder.c |    2 --
 3 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/dlls/wineqtdecoder/qtsplitter.c b/dlls/wineqtdecoder/qtsplitter.c
index 17f173c..362f535 100644
--- a/dlls/wineqtdecoder/qtsplitter.c
+++ b/dlls/wineqtdecoder/qtsplitter.c
@@ -767,12 +767,13 @@ static HRESULT QT_Process_Video_Track(QTSplitter* filter, Track trk)
     pvi = (VIDEOINFOHEADER *)amt.pbFormat;
     pvi->bmiHeader.biSize = sizeof (BITMAPINFOHEADER);
     pvi->bmiHeader.biWidth = outputWidth;
-    pvi->bmiHeader.biHeight = -outputHeight;
+    pvi->bmiHeader.biHeight = outputHeight;
     pvi->bmiHeader.biPlanes = 1;
     pvi->bmiHeader.biBitCount = 24;
     pvi->bmiHeader.biCompression = BI_RGB;
+    pvi->bmiHeader.biSizeImage = outputWidth * outputHeight * outputDepth;
 
-    filter->outputSize = outputWidth * outputHeight * outputDepth;
+    filter->outputSize = pvi->bmiHeader.biSizeImage;
     amt.lSampleSize = 0;
 
     pixelBufferOptions = CFDictionaryCreateMutable(NULL, 0, &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks);
diff --git a/dlls/wineqtdecoder/qtutils.c b/dlls/wineqtdecoder/qtutils.c
index a1e8f05..19ba90c 100644
--- a/dlls/wineqtdecoder/qtutils.c
+++ b/dlls/wineqtdecoder/qtutils.c
@@ -126,7 +126,6 @@ typedef struct {
 HRESULT AccessPixelBufferPixels( CVPixelBufferRef pixelBuffer, LPBYTE pbDstStream)
 {
     LPBYTE pPixels = NULL;
-    LPBYTE out = NULL;
     size_t bytesPerRow = 0, height = 0, width = 0;
     OSType actualType;
     int i;
@@ -143,9 +142,11 @@ HRESULT AccessPixelBufferPixels( CVPixelBufferRef pixelBuffer, LPBYTE pbDstStrea
     height = CVPixelBufferGetHeight(pixelBuffer);
     width = CVPixelBufferGetWidth(pixelBuffer);
 
-    for (out = pbDstStream, i = 0; i < height; i++)
+    for (i = 1; i <= height; i++)
     {
         int j;
+        LPBYTE out = pbDstStream + ((height - i) * width * 3);
+
         for (j = 0; j < width; j++)
         {
             *((DWORD*)out) = (((ARGBPixelPtr)pPixels)[j].r) << 16
diff --git a/dlls/wineqtdecoder/qtvdecoder.c b/dlls/wineqtdecoder/qtvdecoder.c
index 3690087..ceab21e 100644
--- a/dlls/wineqtdecoder/qtvdecoder.c
+++ b/dlls/wineqtdecoder/qtvdecoder.c
@@ -442,8 +442,6 @@ static HRESULT WINAPI QTVDecoder_SetMediaType(TransformFilter *tf, PIN_DIRECTION
         bmi->biCompression =  BI_RGB;
         bmi->biBitCount =  24;
         outpmt->subtype = MEDIASUBTYPE_RGB24;
-        if (bmi->biHeight > 0)
-            bmi->biHeight = -bmi->biHeight;
 
         return S_OK;
     }




More information about the wine-cvs mailing list