Wire in DefineVideoStream smoothing flag to the renderer#5340
Wire in DefineVideoStream smoothing flag to the renderer#5340kmeisthax merged 1 commit intoruffle-rs:masterfrom
Conversation
|
At least for H.263 video, the smoothing flag takes effect iff the video has exactly 1 frame. 🤦♂️ |
|
And it looks like it always applies to VP6 videos, regardless of the number of frames it has: vp6_frame_smoothing_tests.zip |
|
For Screen (V1, I think) video, the same logic applies as for H.263: screen_frame_smoothing_tests.zip |
55566b5 to
eaf1f85
Compare
|
Okay, I have added the weird logic for this flag, and provided a whole bunch of handcrafted files above to verify matching behavior. Note that with the smoothing flag off, Flash Player produces major vertical glitching when magnifying videos, but there's no way I'm replicating that, as it appears to clearly be a programming mistake. |
eaf1f85 to
0ea677a
Compare
|
Seems like this depends on at least the SWF version: changing nemderulki_h263_2frames_smooth.swf to SWF version 8 allows it to be smoothed. |
|
Looks like this is the way The bitmaps and videos will be always smoothed if In FP8+, the default "HIGH" quality was changed to always obey the smoothing settings for bitmaps and videos. edit: As for what action to take, I'd be okay with defaulting to no-smoothing for video in SWF7 and below, like we currently do for bitmaps, until we properly hook up the logic for BEST. |
With all the weird logic for when it actually takes effect
0ea677a to
38948dd
Compare


This is how it's "supposed to" work, according to the docs (and common sense as well), but more experimentation is needed to determine how and why exactly Flash Player actually enables smoothing on videos.
In Flash Player, on my hand-crafted tiny test videos, this flag worked as expected; but when enabling this flag on videos in SWFs found in the wild, it did nothing, the picture stayed pixelated.