Skip to content

[Bug]: Custom speed rejects the "×" suffix that Custom zoom accepts #1441

Closed

Description

@ITx-prash

Search existing issues

  • I have searched the existing issues

Describe the bug

When entering a Custom speed in the editor with a trailing x or × (e.g. 1.25x, 1.5×), the input is rejected and silently reverts to the previous value on blur/Enter. Without the suffix, 1.25 is accepted and applied correctly.

The Custom zoom input in the same inspector accepts both plain decimals (1.25) and multiplier-suffixed values (1.25x, 1.25×). The Custom speed field's own placeholder shows its value in that form (2×), so the field invites input it then rejects.

Cause: parseCustomPlaybackSpeedInput in src/components/video-editor/customPlaybackSpeed.ts passes the draft straight to Number(), so a trailing x/× gives NaN and the draft is discarded. The zoom field in FloatingInspector.tsx strips a trailing /\s*[×x]$/i before parsing.

Regression history: in v1.7.0 the speed parser stripped non-numeric characters, so 1.25x worked. Commit 59df3544 ("refactor: shrink YAGNI signatures", described as "no behavior change") replaced that with Number() (first released in v1.8.0). The tests updated in that commit covered 1.2.3 and comma decimals; the suffix was never tested. Still present on main as of 2026-10-31.

I'd like to submit a small fix with unit tests and will open a PR that links this issue.

custom-speed-issue.mp4

Expected behavior

Custom speed should accept multiplier suffixes like 1.25x or 1.25×, matching the field's own placeholder (2×, 1.5×) and the Custom zoom field.

To Reproduce

  1. Add/select a speed region and open the Speed panel.
  2. Type 1.25x (or 1.25×) in Custom speed.
  3. Press Enter or click away.
  4. The field returns to the old value (2× in the recording), and the pill/playback do not change.
  5. Compare with Custom zoom: the same 1.25x input is accepted there.

Screenshots

No response

OS

Linux

OS Version

Fedora 44 (Gnome 50.6)

Other OS

No response

Browser

None

Browser Version

No response

Other Browser

No response

Device Type

Laptop

Other Device

No response

Additional context

OpenScreen 2.1.2 (Electron 41.2.1, Chromium 146.0.7680.188, Node 24.14.1), Linux x64.

Activity

  1. added
    status: fixed in mainWork is merged into main but may not be in a downloadable release yet.
    status: pending releaseMerged change is waiting for a packaged desktop release.
    on Oct 31, 2026
  2. added this to the Next Release milestone on Oct 31, 2026
  3. github-actions commented on Oct 31, 2026

    @github-actions
    Contributor

    Fixed by #1444 and merged into main.

    This change is assigned to the Next Release release milestone and is not necessarily available in the latest downloadable desktop release yet. It is currently marked as status: pending release until a packaged release containing it is published.

  4. EtienneLescot commented on Oct 31, 2026

    @EtienneLescot
    Member

    Moved into v2.2.0 as part of the pre-release cut.

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingstatus: fixed in mainWork is merged into main but may not be in a downloadable release yet.status: pending releaseMerged change is waiting for a packaged desktop release.

    Type

    No type

    Projects

    No projects

      Milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions