Skip to content

Conversation

@torokati44
Copy link
Member

@torokati44 torokati44 commented Sep 25, 2021

Sadly, this effectively reverts kmeisthax/ruffle#10.
This is technically less "correct", and looks less nice, but in exchange, we gain a whole bunch of speed, the original code simplicity, and most importantly, close similarity to Flash Player.
It also replaces #9, being much-much simpler than that.

To verify, take this test video: testpattern6_h263.zip

(All screenshots are in 5x magnification with "nearest" interpolation.)

This is how it looks in Adobe Flash Player:
image
Notice how the top vertical red bar is precisely two pixels wide, with no bleeding to the left or right at all.

(The slightly off-shade blue bars above and below the left horizontal red bar are the result of FFmpeg's RGB->YUV conversion. They are there even when I convert the same source image into raw .y4m with yuv420p pixel format.)

This is how it looks in Ruffle now:
image

And in Ruffle, with this change:
image

Basically identical to what Flash Player shows, except for some slight noise, most likely from the IDCT.

@torokati44
Copy link
Member Author

I have also not found any H.263 or VP6 video played back by Flash Player where any of the pixels in a 2x2 group had different Cb or Cr values when converted back from RGB according to BT.601.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants