Module: wine Branch: master Commit: 0a5c27f9525996de16637970b4ac82aa5b3b7f7c URL: https://gitlab.winehq.org/wine/wine/-/commit/0a5c27f9525996de16637970b4ac82a...
Author: Rémi Bernon rbernon@codeweavers.com Date: Wed May 22 19:53:54 2024 +0200
winegstreamer/video_decoder: Generate timestamps relative to the first input sample.
---
dlls/winegstreamer/video_decoder.c | 7 +++++++ 1 file changed, 7 insertions(+)
diff --git a/dlls/winegstreamer/video_decoder.c b/dlls/winegstreamer/video_decoder.c index 3e91e55a779..53d9e00b137 100644 --- a/dlls/winegstreamer/video_decoder.c +++ b/dlls/winegstreamer/video_decoder.c @@ -796,6 +796,10 @@ static HRESULT WINAPI transform_ProcessMessage(IMFTransform *iface, MFT_MESSAGE_ case MFT_MESSAGE_COMMAND_FLUSH: return wg_transform_flush(decoder->wg_transform);
+ case MFT_MESSAGE_NOTIFY_START_OF_STREAM: + decoder->sample_time = -1; + return S_OK; + default: FIXME("Ignoring message %#x.\n", message); return S_OK; @@ -811,6 +815,9 @@ static HRESULT WINAPI transform_ProcessInput(IMFTransform *iface, DWORD id, IMFS if (!decoder->wg_transform) return MF_E_TRANSFORM_TYPE_NOT_SET;
+ if (decoder->sample_time == -1 && FAILED(IMFSample_GetSampleTime(sample, (LONGLONG *)&decoder->sample_time))) + decoder->sample_time = 0; + return wg_transform_push_mf(decoder->wg_transform, sample, decoder->wg_sample_queue); }