Skip to content

feat(packages): add resolved rendition to auto label#1698

Merged
sampotts merged 1 commit into
mainfrom
feat/quality-menu-auto-rendition
Jun 17, 2026
Merged

feat(packages): add resolved rendition to auto label#1698
sampotts merged 1 commit into
mainfrom
feat/quality-menu-auto-rendition

Conversation

@sampotts

@sampotts sampotts commented Jun 17, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • Add the resolved quality to the "Auto" label - e.g. "Auto (1080p)"

Screenshots

CleanShot 2026-06-17 at 14 08 55@2x CleanShot 2026-06-17 at 14 09 12@2x

Note

Low Risk
UI and quality-state plumbing with tests; no auth or playback-selection behavior changes beyond labeling and read-only active sync.

Overview
When quality is set to Auto, the UI now shows which rendition is actually playing (e.g. Auto (720p)) in the quality menu, settings hint, and React options.

This adds an active flag on video renditions and an activechange event on the rendition list. HLS wiring sets active from LEVEL_SWITCHED. The quality store exposes activeVideoRendition, preferring an explicit active rendition and otherwise inferring from videoWidth/videoHeight on resize when the match is unambiguous.

QualityRadioGroupCore gains autoLabel for this string; HTML/React consumers use it instead of a fixed Auto. Skin templates wrap label and tier in a single span for layout.

Reviewed by Cursor Bugbot for commit 7cbf8a0. Bugbot is set up for automated code reviews on this repo. Configure here.

@vercel

vercel Bot commented Jun 17, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
v10-sandbox Ready Ready Preview, Comment Jun 17, 2026 9:38pm

Request Review

@sampotts sampotts changed the title Feat/quality menu auto rendition feat(packages): add resolved rendition to auto label Jun 17, 2026
@sampotts sampotts requested review from luwes and mihar-22 June 17, 2026 04:10
Base automatically changed from feat/quality-menu-ui to main June 17, 2026 21:21
@sampotts sampotts force-pushed the feat/quality-menu-auto-rendition branch from 163cb54 to 443307a Compare June 17, 2026 21:28
@netlify

netlify Bot commented Jun 17, 2026

Copy link
Copy Markdown

Deploy Preview for vjs10-site ready!

Name Link
🔨 Latest commit 7cbf8a0
🔍 Latest deploy log https://app.netlify.com/projects/vjs10-site/deploys/6a3313d9ee6f87000772ccd7
😎 Deploy Preview https://deploy-preview-1698--vjs10-site.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.
🤖 Make changes Run an agent on this branch

To edit notification comments on pull requests, go to your Netlify project configuration.

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes using default effort and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Want higher recall? High effort reviews run extra passes and find more bugs. A team admin can switch effort levels in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 443307a. Configure here.

Comment thread packages/core/src/dom/store/features/quality.ts Outdated
@github-actions

github-actions Bot commented Jun 17, 2026

Copy link
Copy Markdown
Contributor

📦 Bundle Size Report

🎨 @videojs/html

Path Base PR Diff %
/live-video/skin 42.09 kB 42.41 kB +321 B +0.7% 🔺
/ui/menu 5.64 kB 5.64 kB +1 B +0.0% 🔺
/audio (default) 36.89 kB 37.22 kB +333 B +0.9% 🔺
Presets (7)
Entry Size
/video (default) 43.59 kB
/video (default + hls) 183.07 kB
/video (minimal) 43.30 kB
/video (minimal + hls) 182.74 kB
/audio (default) 37.22 kB
/audio (minimal) 34.38 kB
/background 4.23 kB
Media (9)
Entry Size
/media/background-video 1.07 kB
/media/container 1.72 kB
/media/dash-video 242.77 kB
/media/hls-video 141.09 kB
/media/mux-audio 163.66 kB
/media/mux-video 163.48 kB
/media/native-hls-video 8.94 kB
/media/simple-hls-audio-only 16.85 kB
/media/simple-hls-video 18.67 kB
Players (5)
Entry Size
/video/player 8.06 kB
/audio/player 5.39 kB
/background/player 3.93 kB
/live-video/player 7.63 kB
/live-audio/player 5.40 kB
Skins (30)
Entry Type Size
/video/minimal-skin.css css 5.33 kB
/video/skin.css css 5.30 kB
/video/minimal-skin js 43.31 kB
/video/minimal-skin.tailwind js 43.79 kB
/video/skin js 43.60 kB
/video/skin.tailwind js 44.14 kB
/audio/minimal-skin.css css 3.54 kB
/audio/skin.css css 3.47 kB
/audio/minimal-skin js 34.38 kB
/audio/minimal-skin.tailwind js 34.69 kB
/audio/skin js 37.15 kB
/audio/skin.tailwind js 37.47 kB
/background/skin.css css 133 B
/background/skin js 1.16 kB
/live-video/minimal-skin.css css 5.33 kB
/live-video/skin.css css 5.30 kB
/live-video/minimal-skin js 42.41 kB
/live-video/minimal-skin.tailwind js 42.73 kB
/live-video/skin js 42.41 kB
/live-video/skin.tailwind js 42.70 kB
/live-audio/minimal-skin.css css 3.54 kB
/live-audio/skin.css css 3.47 kB
/live-audio/minimal-skin js 27.94 kB
/live-audio/minimal-skin.tailwind js 27.37 kB
/live-audio/skin js 30.42 kB
/live-audio/skin.tailwind js 29.93 kB
/global.css css 176 B
/shared.css css 88 B
/tailwind.css css 228 B
/skin-element js 1.37 kB
UI Components (38)
Entry Size
/ui/airplay-button 3.11 kB
/ui/alert-dialog 1.25 kB
/ui/alert-dialog-close 570 B
/ui/alert-dialog-description 450 B
/ui/alert-dialog-title 485 B
/ui/buffering-indicator 2.99 kB
/ui/captions-button 3.18 kB
/ui/captions-radio-group 3.50 kB
/ui/cast-button 3.10 kB
/ui/compounds 8.67 kB
/ui/controls 2.94 kB
/ui/error-dialog 3.46 kB
/ui/fullscreen-button 3.07 kB
/ui/hotkey 2.48 kB
/ui/menu 5.64 kB
/ui/mute-button 3.08 kB
/ui/pip-button 3.11 kB
/ui/play-button 3.08 kB
/ui/playback-rate-button 3.15 kB
/ui/playback-rate-radio-group 3.21 kB
/ui/popover 2.03 kB
/ui/poster 2.81 kB
/ui/quality-radio-group 2.47 kB
/ui/seek-button 3.09 kB
/ui/seek-indicator 3.89 kB
/ui/seek-indicator-value 229 B
/ui/slider 1.52 kB
/ui/status-announcer 3.59 kB
/ui/status-indicator 3.71 kB
/ui/status-indicator-value 292 B
/ui/thumbnail 3.36 kB
/ui/time 3.07 kB
/ui/time-slider 4.04 kB
/ui/tooltip 2.26 kB
/ui/volume-indicator 3.92 kB
/ui/volume-indicator-fill 289 B
/ui/volume-indicator-value 252 B
/ui/volume-slider 2.90 kB

Sizes are marginal over the root entry point.

⚛️ @videojs/react

Path Base PR Diff %
/audio/skin.tailwind 32.92 kB 33.25 kB +343 B +1.0% 🔺
/video (default + hls) 174.28 kB 174.71 kB +432 B +0.2% 🔺
Presets (7)
Entry Size
/video (default) 36.31 kB
/video (default + hls) 174.71 kB
/video (minimal) 36.38 kB
/video (minimal + hls) 174.64 kB
/audio (default) 29.63 kB
/audio (minimal) 29.69 kB
/background 754 B
Media (8)
Entry Size
/media/background-video 575 B
/media/dash-video 241.38 kB
/media/hls-video 139.71 kB
/media/mux-audio 162.30 kB
/media/mux-video 162.27 kB
/media/native-hls-video 7.41 kB
/media/simple-hls-audio-only 15.40 kB
/media/simple-hls-video 17.20 kB
Skins (27)
Entry Type Size
/tailwind.css css 228 B
/video/minimal-skin.css css 5.24 kB
/video/skin.css css 5.21 kB
/video/minimal-skin js 36.30 kB
/video/minimal-skin.tailwind js 41.86 kB
/video/skin js 36.21 kB
/video/skin.tailwind js 41.76 kB
/audio/minimal-skin.css css 3.41 kB
/audio/skin.css css 3.35 kB
/audio/minimal-skin js 29.58 kB
/audio/minimal-skin.tailwind js 30.12 kB
/audio/skin js 29.54 kB
/audio/skin.tailwind js 33.25 kB
/background/skin.css css 90 B
/background/skin js 272 B
/live-video/minimal-skin.css css 5.24 kB
/live-video/skin.css css 5.21 kB
/live-video/minimal-skin js 32.10 kB
/live-video/minimal-skin.tailwind js 37.52 kB
/live-video/skin js 32.06 kB
/live-video/skin.tailwind js 37.49 kB
/live-audio/minimal-skin.css css 3.41 kB
/live-audio/skin.css css 3.35 kB
/live-audio/minimal-skin js 21.38 kB
/live-audio/minimal-skin.tailwind js 24.14 kB
/live-audio/skin js 21.41 kB
/live-audio/skin.tailwind js 24.29 kB
UI Components (32)
Entry Size
/ui/airplay-button 2.38 kB
/ui/alert-dialog 1.21 kB
/ui/buffering-indicator 2.10 kB
/ui/captions-button 2.39 kB
/ui/captions-radio-group 2.79 kB
/ui/cast-button 2.38 kB
/ui/controls 2.17 kB
/ui/error-dialog 2.57 kB
/ui/fullscreen-button 3.12 kB
/ui/gesture 2.16 kB
/ui/hotkey 2.10 kB
/ui/live-button 2.96 kB
/ui/menu 7.18 kB
/ui/mute-button 2.44 kB
/ui/pip-button 3.05 kB
/ui/play-button 3.06 kB
/ui/playback-rate 2.76 kB
/ui/playback-rate-button 2.41 kB
/ui/popover 2.27 kB
/ui/poster 2.33 kB
/ui/quality 2.98 kB
/ui/seek-button 2.41 kB
/ui/seek-indicator 2.15 kB
/ui/slider 3.66 kB
/ui/status-announcer 2.66 kB
/ui/status-indicator 2.10 kB
/ui/thumbnail 2.29 kB
/ui/time 2.89 kB
/ui/time-slider 4.13 kB
/ui/tooltip 2.50 kB
/ui/volume-indicator 2.07 kB
/ui/volume-slider 4.11 kB

Sizes are marginal over the root entry point.

🧩 @videojs/core — no changes
Entries (11)
Entry Size
. 8.65 kB
/dom 16.89 kB
/dom/media/custom-media-element 2.00 kB
/dom/media/dash 236.85 kB
/dom/media/google-cast 4.04 kB
/dom/media/hls 135.71 kB
/dom/media/media-host 1.31 kB
/dom/media/mux 151.26 kB
/dom/media/native-hls 3.02 kB
/dom/media/simple-hls 16.56 kB
/dom/media/simple-hls-audio-only 14.74 kB
🏷️ @videojs/element — no changes
Entries (2)
Entry Size
. 996 B
/context 943 B
📦 @videojs/store — no changes
Entries (3)
Entry Size
. 1.39 kB
/html 696 B
/react 360 B
🔧 @videojs/utils — no changes
Entries (10)
Entry Size
/array 104 B
/dom 2.22 kB
/events 319 B
/function 327 B
/object 275 B
/predicate 265 B
/string 192 B
/style 190 B
/time 478 B
/number 158 B
📦 @videojs/spf — no changes
Entries (4)
Entry Size
. 4.45 kB
/dom 6.32 kB
/hls 15.44 kB
/background-looping-video 12.95 kB

ℹ️ How to interpret

All sizes are standalone totals (minified + brotli).

Icon Meaning
No change
🔺 Increased ≤ 10%
🔴 Increased > 10%
🔽 Decreased
🆕 New (no baseline)

Run pnpm size locally to check current sizes.

@sampotts sampotts force-pushed the feat/quality-menu-auto-rendition branch from 443307a to 7cbf8a0 Compare June 17, 2026 21:38
@sampotts sampotts merged commit 9275f93 into main Jun 17, 2026
26 checks passed
@sampotts sampotts deleted the feat/quality-menu-auto-rendition branch June 17, 2026 21:42
@luwes luwes mentioned this pull request Jun 17, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

2 participants