Module: wine Branch: master Commit: e73f31a6ef0e9ee92d9d2c9776e5e5ebe6eebe6c URL: http://source.winehq.org/git/wine.git/?a=commit;h=e73f31a6ef0e9ee92d9d2c9776...
Author: Juan Lang juan.lang@gmail.com Date: Thu Aug 27 09:04:50 2009 -0700
quartz: Don't crash if sample allocation fails.
---
dlls/quartz/mpegsplit.c | 18 +++++++++--------- 1 files changed, 9 insertions(+), 9 deletions(-)
diff --git a/dlls/quartz/mpegsplit.c b/dlls/quartz/mpegsplit.c index 14d01a1..e44a10f 100644 --- a/dlls/quartz/mpegsplit.c +++ b/dlls/quartz/mpegsplit.c @@ -202,20 +202,20 @@ static HRESULT FillBuffer(MPEGSplitterImpl *This, IMediaSample *pCurrentSample) LONGLONG rtSampleStart = pin->rtNext - MEDIATIME_FROM_BYTES(4); LONGLONG rtSampleStop = rtSampleStart + MEDIATIME_FROM_BYTES(length + 4);
- hr = IMemAllocator_GetBuffer(pin->pAlloc, &sample, NULL, NULL, 0); - if (rtSampleStop > pin->rtStop) rtSampleStop = MEDIATIME_FROM_BYTES(ALIGNUP(BYTES_FROM_MEDIATIME(pin->rtStop), pin->cbAlign));
- IMediaSample_SetTime(sample, &rtSampleStart, &rtSampleStop); - IMediaSample_SetPreroll(sample, 0); - IMediaSample_SetDiscontinuity(sample, 0); - IMediaSample_SetSyncPoint(sample, 1); - pin->rtCurrent = rtSampleStart; - pin->rtNext = rtSampleStop; - + hr = IMemAllocator_GetBuffer(pin->pAlloc, &sample, NULL, NULL, 0); if (SUCCEEDED(hr)) + { + IMediaSample_SetTime(sample, &rtSampleStart, &rtSampleStop); + IMediaSample_SetPreroll(sample, 0); + IMediaSample_SetDiscontinuity(sample, 0); + IMediaSample_SetSyncPoint(sample, 1); + pin->rtCurrent = rtSampleStart; + pin->rtNext = rtSampleStop; hr = IAsyncReader_Request(pin->pReader, sample, 0); + } if (FAILED(hr)) FIXME("o_Ox%08x\n", hr); }