{
REFERENCE_TIME tAviStart, tAviStop, tOffset;
- /* FIXME: hack */
- if (pOutputPin->dwSamplesProcessed == 0) {
- IMediaSample_SetDiscontinuity(This->pCurrentSample, TRUE);
- }
+ IMediaSample_SetDiscontinuity(This->pCurrentSample, pOutputPin->dwSamplesProcessed == 0);
+
IMediaSample_SetSyncPoint(This->pCurrentSample, TRUE);
pOutputPin->dwSamplesProcessed++;
if (hr == S_FALSE)
{
/* Break out */
- offset_src += chunk_remaining_bytes;
- This->Parser.pInputPin->rtCurrent -= BYTES_FROM_MEDIATIME(cbSrcStream - offset_src);
+ This->Parser.pInputPin->rtCurrent -= MEDIATIME_FROM_BYTES(cbSrcStream - offset_src - chunk_remaining_bytes);
hr = S_OK;
break;
}
}
pPin->rtStart = pPin->rtCurrent = bytepos;
+ ((Parser_OutputPin *)This->Parser.ppPins[1])->dwSamplesProcessed = 0;
LeaveCriticalSection(&This->Parser.csFilter);
TRACE("Done flushing\n");