diff --git a/reactos/dll/directx/wine/quartz/avidec.c b/reactos/dll/directx/wine/quartz/avidec.c index 6a472d44e9f..11964f4025f 100644 --- a/reactos/dll/directx/wine/quartz/avidec.c +++ b/reactos/dll/directx/wine/quartz/avidec.c @@ -152,7 +152,7 @@ static HRESULT WINAPI AVIDec_Receive(TransformFilter *tf, IMediaSample *pSample) if (res != ICERR_OK) ERR("Error occurred during the decompression (%x)\n", res); - /* Drop sample if its intended to be dropped */ + /* Drop sample if it's intended to be dropped */ if (flags & ICDECOMPRESS_HURRYUP) { hr = S_OK; goto error; @@ -329,11 +329,8 @@ static HRESULT WINAPI AVIDec_BreakConnect(TransformFilter *tf, PIN_DIRECTION dir { if (This->hvid) ICClose(This->hvid); - if (This->pBihIn) - CoTaskMemFree(This->pBihIn); - if (This->pBihOut) - CoTaskMemFree(This->pBihOut); - + CoTaskMemFree(This->pBihIn); + CoTaskMemFree(This->pBihOut); This->hvid = NULL; This->pBihIn = NULL; This->pBihOut = NULL; diff --git a/reactos/dll/directx/wine/quartz/dsoundrender.c b/reactos/dll/directx/wine/quartz/dsoundrender.c index 813b27d2d22..a641e1f3079 100644 --- a/reactos/dll/directx/wine/quartz/dsoundrender.c +++ b/reactos/dll/directx/wine/quartz/dsoundrender.c @@ -1027,7 +1027,7 @@ static HRESULT WINAPI ReferenceClock_GetTime(IReferenceClock *iface, } else { - ERR("pInputPin Disconncted\n"); + ERR("pInputPin Disconnected\n"); hr = E_FAIL; } LeaveCriticalSection(&This->renderer.filter.csFilter); diff --git a/reactos/dll/directx/wine/quartz/filtermapper.c b/reactos/dll/directx/wine/quartz/filtermapper.c index cb3e8330200..7f2c50ca11c 100644 --- a/reactos/dll/directx/wine/quartz/filtermapper.c +++ b/reactos/dll/directx/wine/quartz/filtermapper.c @@ -591,8 +591,7 @@ static void FM2_DeleteRegFilter(REGFILTER2 * prf2) for (i = 0; i < prf2->u.s2.cPins2; i++) { UINT j; - if (prf2->u.s2.rgPins2[i].clsPinCategory) - CoTaskMemFree((LPVOID)prf2->u.s2.rgPins2[i].clsPinCategory); + CoTaskMemFree((void*)prf2->u.s2.rgPins2[i].clsPinCategory); for (j = 0; j < prf2->u.s2.rgPins2[i].nMediaTypes; j++) { diff --git a/reactos/dll/directx/wine/quartz/mpegsplit.c b/reactos/dll/directx/wine/quartz/mpegsplit.c index a447cba6834..5b9b69539d1 100644 --- a/reactos/dll/directx/wine/quartz/mpegsplit.c +++ b/reactos/dll/directx/wine/quartz/mpegsplit.c @@ -575,8 +575,7 @@ static HRESULT MPEGSplitter_pre_connect(IPin *iface, IPin *pConnectPin, ALLOCATO if (FAILED(hr)) { - if (amt.pbFormat) - CoTaskMemFree(amt.pbFormat); + CoTaskMemFree(amt.pbFormat); ERR("Could not create pin for MPEG audio stream (%x)\n", hr); break; } diff --git a/reactos/dll/directx/wine/quartz/videorenderer.c b/reactos/dll/directx/wine/quartz/videorenderer.c index 93714a3bbea..2e2ab3edeb6 100644 --- a/reactos/dll/directx/wine/quartz/videorenderer.c +++ b/reactos/dll/directx/wine/quartz/videorenderer.c @@ -42,6 +42,7 @@ typedef struct VideoRendererImpl RECT WindowPos; LONG VideoWidth; LONG VideoHeight; + LONG FullScreenMode; } VideoRendererImpl; static inline VideoRendererImpl *impl_from_BaseWindow(BaseWindow *iface) @@ -870,7 +871,12 @@ static HRESULT WINAPI VideoWindow_get_FullScreenMode(IVideoWindow *iface, { VideoRendererImpl *This = impl_from_IVideoWindow(iface); - FIXME("(%p/%p)->(%p): stub !!!\n", This, iface, FullScreenMode); + TRACE("(%p/%p)->(%p): %d\n", This, iface, FullScreenMode, This->FullScreenMode); + + if (!FullScreenMode) + return E_POINTER; + + *FullScreenMode = This->FullScreenMode; return S_OK; } @@ -898,6 +904,7 @@ static HRESULT WINAPI VideoWindow_put_FullScreenMode(IVideoWindow *iface, SetWindowPos(This->baseControlWindow.baseWindow.hWnd,0,This->DestRect.left,This->DestRect.top,This->DestRect.right,This->DestRect.bottom,SWP_NOZORDER|SWP_SHOWWINDOW); This->WindowPos = This->DestRect; } + This->FullScreenMode = FullScreenMode; return S_OK; } @@ -1005,6 +1012,7 @@ HRESULT VideoRenderer_create(IUnknown *pUnkOuter, void **ppv) ZeroMemory(&pVideoRenderer->SourceRect, sizeof(RECT)); ZeroMemory(&pVideoRenderer->DestRect, sizeof(RECT)); ZeroMemory(&pVideoRenderer->WindowPos, sizeof(RECT)); + pVideoRenderer->FullScreenMode = OAFALSE; if (pUnkOuter) pVideoRenderer->outer_unk = pUnkOuter; diff --git a/reactos/dll/directx/wine/quartz/vmr9.c b/reactos/dll/directx/wine/quartz/vmr9.c index 0e4e703ab17..2118b44e7a4 100644 --- a/reactos/dll/directx/wine/quartz/vmr9.c +++ b/reactos/dll/directx/wine/quartz/vmr9.c @@ -237,7 +237,17 @@ static DWORD VMR9_SendSampleData(struct quartz_vmr *This, VMR9PresentationInfo * return hr; } - if (lock.Pitch != width * bmiHeader->biBitCount / 8) + if (height > 0) { + /* Bottom up image needs inverting */ + lock.pBits = (char *)lock.pBits + (height * lock.Pitch); + while (height--) + { + memcpy(lock.pBits, data, width * bmiHeader->biBitCount / 8); + data = data + width * bmiHeader->biBitCount / 8; + lock.pBits = (char *)lock.pBits - lock.Pitch; + } + } + else if (lock.Pitch != width * bmiHeader->biBitCount / 8) { WARN("Slow path! %u/%u\n", lock.Pitch, width * bmiHeader->biBitCount/8); diff --git a/reactos/media/doc/README.WINE b/reactos/media/doc/README.WINE index f50a37857b6..5ebf4b73165 100644 --- a/reactos/media/doc/README.WINE +++ b/reactos/media/doc/README.WINE @@ -39,7 +39,7 @@ reactos/dll/directx/wine/dsound # Synced to Wine-1.3.29 reactos/dll/directx/wine/dxdiagn # Synced to WineStaging-1.9.11 reactos/dll/directx/wine/msdmo # Synced to WineStaging-1.9.11 reactos/dll/directx/wine/qedit # Synced to WineStaging-1.9.16 -reactos/dll/directx/wine/quartz # Synced to WineStaging-1.9.11 +reactos/dll/directx/wine/quartz # Synced to WineStaging-1.9.16 reactos/dll/directx/wine/wined3d # Synced to WineStaging-1.9.4 reactos/dll/win32/activeds # Synced to WineStaging-1.9.11