On Mon Mar 3 08:08:34 2025 +0000, Dmitry Timoshkov wrote:
> It looks like you are right, new tests actually pass with current
> implementation. Although the patch makes support for
> WICBitmapTransformRotate270 more explicit I'm not opposed to leave the
> code intact. I'm open to suggestions.
My two cents:
This PR is a no-op change except for the test. While this PR improves readability a little, I guess we could go further and handle flip horz/vert flags in a more readable way if we want to go that direction? (Otherwise just keeping the test should be fine too.)
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/7459#note_96525
## Context
This is a problem discovered when running "Max: The Curse of Brotherhood" under proton. This game writes 4MB a piece into `wg_transform`, which contains about 4 seconds of compressed video. `wg_transform` calls `gst_pad_push` in `transform_ProcessOutput`, which takes \~300ms (i.e. 20 frames @ 60fps) to decode this buffer of video. So the end result is the game hitches every 4 seconds while playing cut scene videos.
Proton currently has a special case for this particular game, for which it breaks up the buffer into small chunks to avoid long blocks. This MR adopts that and applies it generally.
One concern raised by @redmcg is:
> The only issue I can think of is if there are any decoders which don't have a parser; then they might not know how to deal with an arbitrary 4096 byte buffer (the parser is generally responsible for taking arbitrary buffers and producing something the decoder can work with, for example: a full frame).
So this MR only enables this strategy when there is a parser element.
--
v9: winegstreamer: Avoid large buffer pushes in wg_transform.
https://gitlab.winehq.org/wine/wine/-/merge_requests/7288
On Mon Mar 3 06:33:06 2025 +0000, Dmitry Timoshkov wrote:
> The tests don't pass with existing code.
It looks like you are right, new tests actually pass with current implementation. Although the patch makes support for WICBitmapTransformRotate270 more explicit I'm not opposed to leave the code intact. I'm open to suggestions.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/7459#note_96507
On Mon Mar 3 06:33:06 2025 +0000, Elizabeth Figura wrote:
> Wait, isn't this already implemented? WICBitmapTransformRotate270 is the
> bitwise OR of 90 and 180, and the code seems to take that into account,
> am I missing something?
The tests don't pass with existing code.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/7459#note_96498