Fix JXL animation drift by preserving frame duration precision [chromium/src : main]

0 views
Skip to first unread message

Luca Versari (Gerrit)

unread,
Jan 16, 2026, 5:57:23 AM (yesterday) Jan 16
to Helmut Januschka, chromium...@chromium.org, blink-...@chromium.org, cblume+im...@chromium.org, kinuko...@chromium.org, mbarowsky+watc...@chromium.org
Attention needed from Helmut Januschka

Luca Versari voted and added 1 comment

Votes added by Luca Versari

Code-Review+1

1 comment

File third_party/rust/jxl/v0_2/wrapper/lib.rs
Line 286, Patchset 1 (Latest): let duration_ms: f64 = match fh.duration {
Luca Versari . unresolved

Why don't we just do `duration_ms = fh.duration.unwrap_or(0.0)`?

Open in Gerrit

Related details

Attention is currently required from:
  • Helmut Januschka
Submit Requirements:
  • requirement satisfiedCode-Coverage
  • requirement satisfiedCode-Owners
  • requirement satisfiedCode-Review
  • requirement is not satisfiedNo-Unresolved-Comments
  • requirement satisfiedReview-Enforcement
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: comment
Gerrit-Project: chromium/src
Gerrit-Branch: main
Gerrit-Change-Id: I0798ae3bb33e2f7cf562de3104fe85dda3ca2f71
Gerrit-Change-Number: 7484708
Gerrit-PatchSet: 1
Gerrit-Owner: Helmut Januschka <hel...@januschka.com>
Gerrit-Reviewer: Luca Versari <vel...@google.com>
Gerrit-Attention: Helmut Januschka <hel...@januschka.com>
Gerrit-Comment-Date: Fri, 16 Jan 2026 10:57:03 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: Yes
satisfied_requirement
unsatisfied_requirement
open
diffy

Luca Versari (Gerrit)

unread,
Jan 16, 2026, 12:28:48 PM (yesterday) Jan 16
to Helmut Januschka, Chromium LUCI CQ, chromium...@chromium.org, blink-...@chromium.org, cblume+im...@chromium.org, kinuko...@chromium.org, mbarowsky+watc...@chromium.org
Attention needed from Helmut Januschka

Luca Versari voted Code-Review+1

Code-Review+1
Open in Gerrit

Related details

Attention is currently required from:
  • Helmut Januschka
Submit Requirements:
  • requirement satisfiedCode-Coverage
  • requirement satisfiedCode-Owners
  • requirement satisfiedCode-Review
  • requirement is not satisfiedNo-Unresolved-Comments
  • requirement satisfiedReview-Enforcement
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: comment
Gerrit-Project: chromium/src
Gerrit-Branch: main
Gerrit-Change-Id: I0798ae3bb33e2f7cf562de3104fe85dda3ca2f71
Gerrit-Change-Number: 7484708
Gerrit-PatchSet: 4
Gerrit-Owner: Helmut Januschka <hel...@januschka.com>
Gerrit-Reviewer: Helmut Januschka <hel...@januschka.com>
Gerrit-Reviewer: Luca Versari <vel...@google.com>
Gerrit-Attention: Helmut Januschka <hel...@januschka.com>
Gerrit-Comment-Date: Fri, 16 Jan 2026 17:28:27 +0000
Gerrit-HasComments: No
Gerrit-Has-Labels: Yes
satisfied_requirement
unsatisfied_requirement
open
diffy

Helmut Januschka (Gerrit)

unread,
1:18 AM (11 hours ago) 1:18 AM
to Helmut Januschka, Luca Versari, Chromium LUCI CQ, chromium...@chromium.org, blink-...@chromium.org, cblume+im...@chromium.org, kinuko...@chromium.org, mbarowsky+watc...@chromium.org

Helmut Januschka added 1 comment

File third_party/rust/jxl/v0_2/wrapper/lib.rs
Line 286, Patchset 1: let duration_ms: f64 = match fh.duration {
Luca Versari . resolved

Why don't we just do `duration_ms = fh.duration.unwrap_or(0.0)`?

Helmut Januschka

Done

Open in Gerrit

Related details

Attention set is empty
Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement satisfiedCode-Owners
    • requirement satisfiedCode-Review
    • requirement satisfiedReview-Enforcement
    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
    Gerrit-MessageType: comment
    Gerrit-Project: chromium/src
    Gerrit-Branch: main
    Gerrit-Change-Id: I0798ae3bb33e2f7cf562de3104fe85dda3ca2f71
    Gerrit-Change-Number: 7484708
    Gerrit-PatchSet: 6
    Gerrit-Owner: Helmut Januschka <hel...@januschka.com>
    Gerrit-Reviewer: Helmut Januschka <hel...@januschka.com>
    Gerrit-Reviewer: Luca Versari <vel...@google.com>
    Gerrit-Comment-Date: Sat, 17 Jan 2026 06:17:56 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    Comment-In-Reply-To: Luca Versari <vel...@google.com>
    satisfied_requirement
    open
    diffy

    Helmut Januschka (Gerrit)

    unread,
    1:22 AM (11 hours ago) 1:22 AM
    to Helmut Januschka, Luca Versari, Chromium LUCI CQ, chromium...@chromium.org, blink-...@chromium.org, cblume+im...@chromium.org, kinuko...@chromium.org, mbarowsky+watc...@chromium.org

    Helmut Januschka voted Commit-Queue+2

    Commit-Queue+2
    Open in Gerrit

    Related details

    Attention set is empty
    Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement satisfiedCode-Owners
    • requirement satisfiedCode-Review
    • requirement satisfiedReview-Enforcement
    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
    Gerrit-MessageType: comment
    Gerrit-Project: chromium/src
    Gerrit-Branch: main
    Gerrit-Change-Id: I0798ae3bb33e2f7cf562de3104fe85dda3ca2f71
    Gerrit-Change-Number: 7484708
    Gerrit-PatchSet: 6
    Gerrit-Owner: Helmut Januschka <hel...@januschka.com>
    Gerrit-Reviewer: Helmut Januschka <hel...@januschka.com>
    Gerrit-Reviewer: Luca Versari <vel...@google.com>
    Gerrit-Comment-Date: Sat, 17 Jan 2026 06:22:24 +0000
    Gerrit-HasComments: No
    Gerrit-Has-Labels: Yes
    satisfied_requirement
    open
    diffy

    Honey B (Gerrit)

    unread,
    1:27 AM (11 hours ago) 1:27 AM
    to Helmut Januschka, Luca Versari, Chromium LUCI CQ, chromium...@chromium.org, blink-...@chromium.org, cblume+im...@chromium.org, kinuko...@chromium.org, mbarowsky+watc...@chromium.org
    Attention needed from Helmut Januschka

    Honey B added 1 comment

    Patchset-level comments
    File-level comment, Patchset 6 (Latest):
    Honey B . resolved

    Should update the commit message about the `FrameDurationAtIndex` fix?

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Helmut Januschka
    Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement satisfiedCode-Owners
    • requirement satisfiedCode-Review
    • requirement satisfiedReview-Enforcement
    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
    Gerrit-MessageType: comment
    Gerrit-Project: chromium/src
    Gerrit-Branch: main
    Gerrit-Change-Id: I0798ae3bb33e2f7cf562de3104fe85dda3ca2f71
    Gerrit-Change-Number: 7484708
    Gerrit-PatchSet: 6
    Gerrit-Owner: Helmut Januschka <hel...@januschka.com>
    Gerrit-Reviewer: Helmut Januschka <hel...@januschka.com>
    Gerrit-Reviewer: Luca Versari <vel...@google.com>
    Gerrit-CC: Honey B <kyoko...@gmail.com>
    Gerrit-Attention: Helmut Januschka <hel...@januschka.com>
    Gerrit-Comment-Date: Sat, 17 Jan 2026 06:27:17 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    satisfied_requirement
    open
    diffy

    Chromium LUCI CQ (Gerrit)

    unread,
    1:32 AM (11 hours ago) 1:32 AM
    to Helmut Januschka, Honey B, Luca Versari, chromium...@chromium.org, blink-...@chromium.org, cblume+im...@chromium.org, kinuko...@chromium.org, mbarowsky+watc...@chromium.org

    Chromium LUCI CQ submitted the change with unreviewed changes

    Unreviewed changes

    4 is the latest approved patch-set.
    The change was submitted with unreviewed changes in the following files:

    ```
    The name of the file: third_party/rust/jxl/v0_2/wrapper/lib.rs
    Insertions: 1, Deletions: 6.

    @@ -283,13 +283,8 @@

    fn extract_frame_header(&self) -> Option<JxlRsFrameHeader> {
    let fh = self.decoder.frame_header()?;
    - let duration_ms: f64 = match fh.duration {
    - Some(d) if d.is_finite() && d >= 0.0 => d,
    - _ => 0.0,
    - };
    -
    Some(JxlRsFrameHeader {
    - duration_ms,
    + duration_ms: fh.duration.unwrap_or(0.0),
    name_length: fh.name.len() as u32,
    })
    }
    ```

    Change information

    Commit message:
    Fix JXL animation drift by preserving frame duration precision

    Frame durations were being truncated from f64 to u32 in the Rust FFI
    wrapper, causing animations to slowly drift out of sync when looping.
    Bug: 462919304
    Change-Id: I0798ae3bb33e2f7cf562de3104fe85dda3ca2f71
    Reviewed-by: Luca Versari <vel...@google.com>
    Commit-Queue: Helmut Januschka <hel...@januschka.com>
    Cr-Commit-Position: refs/heads/main@{#1570747}
    Files:
    • M third_party/blink/renderer/platform/image-decoders/jxl/jxl_image_decoder.cc
    • M third_party/blink/renderer/platform/image-decoders/jxl/jxl_image_decoder_test.cc
    • M third_party/rust/jxl/v0_2/wrapper/lib.rs
    Change size: M
    Delta: 3 files changed, 90 insertions(+), 14 deletions(-)
    Branch: refs/heads/main
    Submit Requirements:
    • requirement satisfiedCode-Review: +1 by Luca Versari
    Open in Gerrit
    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
    Gerrit-MessageType: merged
    Gerrit-Project: chromium/src
    Gerrit-Branch: main
    Gerrit-Change-Id: I0798ae3bb33e2f7cf562de3104fe85dda3ca2f71
    Gerrit-Change-Number: 7484708
    Gerrit-PatchSet: 7
    Gerrit-Owner: Helmut Januschka <hel...@januschka.com>
    Gerrit-Reviewer: Chromium LUCI CQ <chromiu...@luci-project-accounts.iam.gserviceaccount.com>
    Gerrit-Reviewer: Helmut Januschka <hel...@januschka.com>
    Gerrit-Reviewer: Luca Versari <vel...@google.com>
    open
    diffy
    satisfied_requirement
    Reply all
    Reply to author
    Forward
    0 new messages