Anton Baskanov (@baskanov) commented about dlls/amstream/ddrawstream.c:
> if (!surface && rect)
> return E_INVALIDARG;
>
> + IMultiMediaStream_GetState(stream->parent, ¤t_state);
> + IMultiMediaStream_SetState(stream->parent, STREAMSTATE_STOP);
The correct way to fix this is to implement a custom allocator like it is done in the native AMDirectDrawStream. This will allow changing the format on the fly without stopping the stream. But it of course requires much more work, including adding format change support to decoders.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/7057#note_91029