This video codec is used by games such as Richman 4, and Zwei: The Arges Adventure.
The decoder logic is based on code from the FFmpeg project.
--
v2: loader/wine.inf: Enable ir50_32 video codec.
ir50_32: Implement decompression to 15-bit RGB.
https://gitlab.winehq.org/wine/wine/-/merge_requests/1301
Made changes to comdlg32/itemdlg.c to add missing controls, which are the address bar and the up button.
Updated bitmaps in comctl32 and SVG files for history icons.
My changes help to resolve this bug: https://bugs.winehq.org/show_bug.cgi?id=50338.
--
v16: comdlg32: Add missing controls and their functionality to IFileDialog, or the common item dialog.
https://gitlab.winehq.org/wine/wine/-/merge_requests/672
Zebediah Figura (@zfigura) commented about dlls/wmvcore/async_reader.c:
> struct stream *stream = arg;
> struct async_reader *reader = stream->reader;
> struct sample *sample;
> + WCHAR buffer[256];
> HRESULT hr;
>
> TRACE("reader %p, number %u\n", reader, stream->number);
>
> + swprintf(buffer, ARRAY_SIZE(buffer), L"wine_wmreader_stream_%u_read", stream->number);
> + SetThreadDescription(GetCurrentThread(), buffer);
Linux cuts off thread names at 15 characters (not counting the null terminator), which somewhat unfortunately makes all of these identical to each other and the deliver threads. Thus far I think Brendan had been trying to make the thread names distinct, if not per se trying to fit the entire name within 15 characters.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/1311#note_15868
> We need the read threads to always be running and returning their next sample because we then deliver them in PTS order.
Somewhat out of curiosity, did you check whether this still applies when DedicatedDeliveryThread is set?
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/1311#note_15869
On Mon Nov 14 12:05:16 2022 +0000, Rémi Bernon wrote:
> I don't think we need to check it here anymore with the latest version.
> Deselected streams will never have pending read requests (or they will
> shortly complete it after deselection, with either error or a last sample).
I guess, but it depends on the fact that "read_result" is zero-initialized and never written, which seems non-obvious and a little fragile. In fact, I think it can already break if a stream was selected and then later becomes deselected, even if the filter was stopped in between. Checking "stream->read_requested" would be more obvious but I think still broken for the same reasons (but simple enough to fix.)
Note that if you do that then read_result becomes superfluous and doesn't really need to be stored anywhere.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/1311#note_15867