Age | Commit message (Collapse) | Author |
|
https://github.com/SerenityOS/serenity/pull/9716#issuecomment-1508606204
has details.
|
|
ARCH() uses the AK_IS_ARCH_ macros internally since 349e54d5375a4a,
and all user code uses the ARCH() macro instead of AK_ARCH_.
(Why it's called ARCH() and not AK_ARCH(), I don't know.)
If any ports not in the main repo use AK_ARCH_, they should switch
to using ARCH() instead.
|
|
The former is typo-resistant after 349e54d5375a4a, so make use of that.
|
|
|
|
There are quite a few steps between a ReadableStream being created and
its controller being set. If GC occurs between those points, we will
have an empty Optional in ReadableStream::visit_edges. Seen on YouTube.
|
|
|
|
|
|
This builds simple fuzzing binaries without any oss-fuzz specific
configuration and without any LibFuzzer instrumentation.
|
|
Fixes #17937
|
|
This is what we call it everywhere else.
|
|
|
|
This cannot throw unless we OOM.
|
|
Only the 'start algorithm' ever returns undefined (as a null GCPtr), so
let's type the others more strictly.
|
|
957f89ce4abb6ad added some tweaks for serenity-on-aarch64.
It broke anythingelse-on-aarch64 hosts though, so only do these tweaks
when targeting serenity.
(I wonder if AK/Math.h should fall back to the system math routines
when not targeting serenity in general. Would probably help ladybird
performance. On the other hand, the serenity routines would see less
use and hence exposure and love.)
|
|
|
|
This change adds rules for background-attachment, background-clip,
background-image, background-origin, and background-repeat.
As a result, Window.getComputedStyle() will no longer return empty
strings on these properties after a page is loaded, and the background
shorthand will show the resolved values instead of the default ones for
these values. :^)
|
|
Some keymaps will bind key presses with the alt modifier to characters
other than the unmodified one, in which case you couldn't activate the
alt shortcuts in the menu bar before.
We now ask the current keymap for the code point that is mapped to the
pressed (unmodified) key instead.
|
|
|
|
|
|
Also add missing values from the IANA registry
|
|
Also add missing values from the IANA registry
|
|
Also add missing values from the IANA registry
|
|
Also add missing values from the IANA registry
|
|
Also add missing values from the IANA registry
|
|
This matches the wording used in the IANA registry and TLS 1.3
Also add missing values from the IANA registry
|
|
Also add missing values from the IANA registry
|
|
|
|
This matches the wording used in the TLS RFC
|
|
|
|
This matches the wording used in the TLS RFC
|
|
This matches the wording used in the TLS RFC
Also define GREASE values as specified in RFC8701
|
|
This matches the wording used in the TLS RFC
|
|
|
|
These ioctls exist on Linux and can be used to implement libc functions
if_indextoname and if_nametoindex (without needing to parse any JSON).
|
|
This isn't actually part of CSS-FLEXBOX-1, but all major engines honor
these properties in flex layout, and it's widely used on the web.
There's a bug open against the flexbox spec where fantasai says the
algorithm will be updated in CSS-FLEXBOX-2:
https://github.com/w3c/csswg-drafts/issues/2336
I've added comments to all the places where we adjust calculations for
gaps with "CSS-FLEXBOX-2" so we can find them easily. When that spec
becomes available, we can add proper spec links.
|
|
This patch prevents SoundPlayer from crashing when attempting to "seek"
when no file has been loaded
|
|
Extending the borders on reference frames so that motion vectors that
point outside the reference frame allows `predict_inter_block()` to
avoid some branches to clamp the sample coordinates in its loops.
This results in about a 25% improvement in decode time of a motion-
heavy YouTube video (~20.8s -> ~15.6s).
|
|
Moving the clamping of the coordinates of the reference frame samples
as well as some bounds checks outside of the loop reduces the branches
needed in the `predict_inter_block()` significantly.
This results in a whopping ~41% improvement in decode performance
of an inter-prediction-heavy YouTube video (~35.4s -> ~20.8s).
|
|
Changing the calculation of reference frame scale factors to be done on
a per-frame basis reduces the amount of work done in
`predict_inter_block()`, which is a big hotspot in most videos.
This reduces decode times in a test video from YouTube by about 5%
(~37.2s -> ~35.4s).
|
|
This changes the order of the loop copying data to a reference frame
store so that it copies each row in a contiguous line rather than
copying a column at a time, which caused unnecessary branches.
This reduces the decode time on a fairly long 720p YouTube video by
about 14.5% (~43.5s to ~37.2s).
|
|
Frames must be dequeued from the decoder, or the queue will grow
continuously until OOM.
|
|
Files can contain a first keyframe that is timestamped later than zero.
We don't want to crash in those cases, so don't assert that it can't
happen.
|
|
This prevents the seek slider in VideoPlayer from skipping forward and
then back when fast seeking is enabled. Previously, it was possible for
a single frame to render before the actual seek position in the seek
bar was set.
|
|
|
|
Previously, the time would read "00:00:01" when the timestamp was
merely 1 millisecond past the start of the video. If a video does not
start with a sample at timestamp 0, then, seeking to the start would
display that text rather than "00:00:00".
|
|
The state could change and cause a timestamp change without the video
frame event firing, which could desync the seek bar from the video's
actual time.
|
|
|
|
Previously, there was some leftover logic in `SeekingStateHandler`
which would avoid presenting a frame if it didn't find a frame both
before and after the target frame. However, this logic was unnecessary
as the `on_enter()` function would check if it needed to present a
frame and exit seeking if not.
This allows seeking to succeed if the Seeking handler cannot find a
frame before the one to be seeked to, which could occur if the first
frame of a video is not at timestamp 0.
|
|
Previously, the state change was dispatched before the new state that
was adopted had been entered, causing it to have invalid state.
|
|
This adds a timestamp to the debug output when presenting a frame, so
it can be clear the frame spacing between a presented frame and a state
change.
The seeking state will also now print when it early-exits if the seek
point is within the current sample's duration.
|