yuv: Remove chroma interpolation, use iterators #13
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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:

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:

And in Ruffle, with this change:

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