Module: wine Branch: master Commit: ec124be8239b6292ba239bb24f125cd4e267fdd5 URL: http://source.winehq.org/git/wine.git/?a=commit;h=ec124be8239b6292ba239bb24f...
Author: Maarten Lankhorst m.b.lankhorst@gmail.com Date: Tue Apr 22 13:44:33 2008 -0700
quartz: Add some sanity checks to file splitter.
---
dlls/quartz/filesource.c | 13 +++++++++++-- 1 files changed, 11 insertions(+), 2 deletions(-)
diff --git a/dlls/quartz/filesource.c b/dlls/quartz/filesource.c index 930ebfc..396384f 100644 --- a/dlls/quartz/filesource.c +++ b/dlls/quartz/filesource.c @@ -1107,6 +1107,9 @@ static HRESULT WINAPI FileAsyncReader_WaitForNext(IAsyncReader * iface, DWORD dw
if (!This->bFlushing) { + if (!This->pHead) + ERR("Called without samples in queue!\n"); + /* wait for the read to finish or timeout */ if (WaitForSingleObject(This->hEvent, dwTimeout) == WAIT_TIMEOUT) hr = VFW_E_TIMEOUT; @@ -1139,10 +1142,10 @@ static HRESULT WINAPI FileAsyncReader_WaitForNext(IAsyncReader * iface, DWORD dw *pdwUser = pDataRq->dwUserData;
if (This->bFlushing) - { hr = VFW_E_WRONG_STATE; + + if (FAILED(hr)) dwBytes = 0; - }
/* Set the time on the sample */ IMediaSample_SetActualDataLength(pDataRq->pSample, dwBytes); @@ -1156,6 +1159,12 @@ static HRESULT WINAPI FileAsyncReader_WaitForNext(IAsyncReader * iface, DWORD dw assert(rtStop <= rtSampleStop);
IMediaSample_SetTime(pDataRq->pSample, &rtStart, &rtStop); + assert(rtStart == rtSampleStart); + if (hr == S_OK) + assert(rtStop == rtSampleStop); + else + assert(rtStop == rtStart); + }
/* no need to close event handle since we will close it when the pin is destroyed */