tags:

views:

30

answers:

2

Hi All. I'm writing a video DMO decoder and trying to return a bitmap to the WMP renderer for display ... but WMP displays it upside down!

This is the code :

HBITMAP*  hBmp = new HBITMAP();

int result;

m_pScrRenderer->CreateFrame(hBmp, &result);  ///This returns the HBITMAP handle.

BITMAP bmStruct;

memset(&bmStruct, 0, sizeof(BITMAP));

GetObject(*hBmp, sizeof(BITMAP), &bmStruct);  
int size = bmStruct.bmWidthBytes * bmStruct.bmHeight;
memcpy(pbOutData, bmStruct.bmBits, size); //PBoutData is WMP's renderer buffer.

This produces an upside down image. What should I change in this code?

Thank You!

Roey.

+1  A: 

HBITMAP scanlines are read upside-down, you'll need to go through your data a scanline at a time and reverse it.

I'm not aware of an easy way to do this.

zipcodeman
+1  A: 

If you can change the parameters of the bitmap structure, you can give it a negative height to make the lines come out in top-down order.

Mark Ransom