Skip to content

Simplify MetaPlaylist Manifest loading by relying on the same code than other transports#1487

Open
peaBerberian wants to merge 1 commit intodevfrom
misc/simplify-manifest-loading
Open

Simplify MetaPlaylist Manifest loading by relying on the same code than other transports#1487
peaBerberian wants to merge 1 commit intodevfrom
misc/simplify-manifest-loading

Conversation

@peaBerberian
Copy link
Collaborator

@peaBerberian peaBerberian commented Jul 29, 2024

I was PoCing protocol-detection when initially fetching the Manifest, so application developers wouldn't e.g. have to tell to us that they want to play "dash".

While doing that, I noticed that all transports had close to the same logic for Manifest fetching. Only differences I've seen are:

  • DASH may add integrity checks if the checkManifestIntegrity option is set

  • DASH may ask the browser to obtain the response as an ArrayBuffer (and not as a default JS string) if it is probable that we will rely on the WASM MPD parser

  • the local transport throws if no custom manifestLoader is declared.

As such, those differences look minor and straightforward enough so the corresponding logic can be factorized into e.g. a single parameterized createManifestLoader function.

This was already done for DASH and Smooth, but I don't know why we didn't use it for the experimental MetaPlaylist feature. This commit fixes this.

We could also use it for the experimental local transport in the future, though I'm unsure of how we could generically make sense of its peculiar rule (no real loading).

@peaBerberian peaBerberian force-pushed the misc/simplify-manifest-loading branch from 83a64bb to 48dda70 Compare July 30, 2024 08:35
@peaBerberian peaBerberian added the Priority: 3 (Low) This issue or PR has a low priority. label Aug 2, 2024
@peaBerberian peaBerberian added this to the 4.2.0 milestone Aug 2, 2024
@peaBerberian peaBerberian added the MetaPlaylist Relative to the RxPlayer's MetaPlaylist (i.e. concatenation of multiple contents) label Aug 2, 2024
@peaBerberian peaBerberian force-pushed the misc/simplify-manifest-loading branch 2 times, most recently from 4203867 to e3c71ee Compare September 4, 2024 10:31
@peaBerberian peaBerberian modified the milestones: 4.2.0, 4.3.0 Oct 4, 2024
@peaBerberian peaBerberian force-pushed the misc/simplify-manifest-loading branch from e3c71ee to 3db7b58 Compare October 8, 2024 15:01
@peaBerberian peaBerberian force-pushed the misc/simplify-manifest-loading branch from 3db7b58 to bbb90d4 Compare November 15, 2024 17:39
@peaBerberian peaBerberian force-pushed the misc/simplify-manifest-loading branch from bbb90d4 to 889105b Compare January 28, 2025 14:23
@canalplus canalplus deleted a comment from github-actions bot Jan 28, 2025
@peaBerberian peaBerberian modified the milestones: 4.3.0, 4.4.0 Apr 7, 2025
@peaBerberian peaBerberian force-pushed the dev branch 2 times, most recently from 00fc806 to b7216b4 Compare April 15, 2025 18:14
@peaBerberian peaBerberian force-pushed the misc/simplify-manifest-loading branch from 889105b to 673f56c Compare April 22, 2025 12:57
@peaBerberian peaBerberian force-pushed the misc/simplify-manifest-loading branch from cd1b1e5 to 4ed3fce Compare June 30, 2025 14:43
@peaBerberian peaBerberian force-pushed the misc/simplify-manifest-loading branch from 4ed3fce to a5fb237 Compare July 8, 2025 10:50
@peaBerberian peaBerberian force-pushed the misc/simplify-manifest-loading branch from a5fb237 to c358202 Compare August 1, 2025 13:28
@peaBerberian peaBerberian force-pushed the misc/simplify-manifest-loading branch from c358202 to f83bdb1 Compare August 29, 2025 15:30
@peaBerberian peaBerberian modified the milestones: 4.4.0, 4.5.0 Sep 19, 2025
@peaBerberian peaBerberian force-pushed the dev branch 7 times, most recently from 529d46c to 6d4fed2 Compare September 25, 2025 15:51
@github-actions
Copy link

✅ Automated performance checks have passed on commit d79d32d8fb20590eaf727c1aa599a20e026c66cb with the base branch dev.

Details

Performance tests 1st run output

No significative change in performance for tests:

Name Mean Median
loading 20.88ms -> 21.02ms (-0.146ms, z: 0.37250) 29.40ms -> 29.25ms
seeking 20.09ms -> 21.39ms (-1.299ms, z: 0.47761) 11.25ms -> 11.25ms
audio-track-reload 27.65ms -> 27.47ms (0.174ms, z: 1.81145) 40.35ms -> 40.20ms
cold loading multithread 49.46ms -> 48.02ms (1.438ms, z: 12.04496) 72.00ms -> 70.95ms
seeking multithread 91.10ms -> 81.67ms (9.436ms, z: 2.21622) 9.95ms -> 9.90ms
audio-track-reload multithread 27.12ms -> 27.03ms (0.087ms, z: 0.65589) 39.90ms -> 39.90ms
hot loading multithread 16.81ms -> 16.67ms (0.149ms, z: 3.19044) 24.45ms -> 24.30ms

@canalplus canalplus deleted a comment from github-actions bot Sep 26, 2025
@canalplus canalplus deleted a comment from github-actions bot Sep 26, 2025
@canalplus canalplus deleted a comment from github-actions bot Sep 26, 2025
@canalplus canalplus deleted a comment from github-actions bot Sep 26, 2025
@canalplus canalplus deleted a comment from github-actions bot Sep 26, 2025
@peaBerberian peaBerberian force-pushed the misc/simplify-manifest-loading branch from a2957f6 to b192a50 Compare October 9, 2025 19:01
@github-actions
Copy link

github-actions bot commented Oct 9, 2025

✅ Automated performance checks have passed on commit c2a6715ce71ae549d30d5c6a3686ec6daf1af37c with the base branch dev.

Details

Performance tests 1st run output

No significative change in performance for tests:

Name Mean Median
loading 20.30ms -> 21.18ms (-0.883ms, z: 1.70016) 28.35ms -> 28.35ms
seeking 20.59ms -> 21.33ms (-0.734ms, z: 0.34640) 11.10ms -> 11.10ms
audio-track-reload 26.91ms -> 27.07ms (-0.161ms, z: 1.09428) 39.30ms -> 39.45ms
cold loading multithread 48.09ms -> 46.79ms (1.300ms, z: 13.26542) 69.75ms -> 68.55ms
seeking multithread 23.80ms -> 29.82ms (-6.016ms, z: 0.31048) 10.20ms -> 10.20ms
audio-track-reload multithread 25.99ms -> 25.83ms (0.168ms, z: 1.77648) 38.10ms -> 37.95ms
hot loading multithread 15.52ms -> 15.36ms (0.160ms, z: 4.48271) 22.50ms -> 22.20ms

…an other transports

I was PoCing protocol-detection when initially parsing the Manifest, so
application developers wouldn't e.g. have to tell to us that they want
to play "dash".

While doing that, I noticed that all transports had close to the same
logic for Manifest fetching. Only differences I've seen are:

  - DASH may add integrity checks if the `checkManifestIntegrity` option
    is set

  - DASH may ask the browser to obtain the response as an ArrayBuffer
    (and not as a default JS string) if it is probable that we will rely
    on the WASM MPD parser

  - the `local` transport throws if no custom `manifestLoader` is
    declared.

As such, those differences look minor and straightforward enough so the
corresponding logic can be factorized into e.g. a single parameterized
`createManifestLoader` function.

This was already done for DASH and Smooth, but I don't know why we
didn't use it for the experimental MetaPlaylist feature. This commit
fixes this.

We could also use it for the experimental `local` transport in the
future, though I'm unsure of how we could generically make sense of its
peculiar rule (no real loading).
@peaBerberian peaBerberian force-pushed the misc/simplify-manifest-loading branch from b192a50 to 8da4db3 Compare December 10, 2025 17:34
@github-actions
Copy link

✅ Automated performance checks have passed on commit 63565fc62055d795301440032ee18e5c9837ab1c with the base branch dev.

Details

Performance tests 1st run output

No significative change in performance for tests:

Name Mean Median
loading 20.74ms -> 20.75ms (-0.016ms, z: 0.74139) 29.25ms -> 29.15ms
seeking 11.27ms -> 13.31ms (-2.046ms, z: 0.34811) 12.15ms -> 12.00ms
audio-track-reload 28.24ms -> 28.39ms (-0.151ms, z: 1.39787) 41.25ms -> 41.40ms
cold loading multithread 48.52ms -> 47.18ms (1.340ms, z: 11.67807) 70.50ms -> 69.30ms
seeking multithread 45.39ms -> 52.08ms (-6.689ms, z: 0.54190) 11.10ms -> 10.95ms
audio-track-reload multithread 27.49ms -> 27.25ms (0.234ms, z: 2.86490) 40.50ms -> 40.20ms
hot loading multithread 15.56ms -> 15.47ms (0.095ms, z: 4.33632) 22.80ms -> 22.65ms

@peaBerberian peaBerberian force-pushed the dev branch 2 times, most recently from d4be192 to 9ad6758 Compare December 19, 2025 19:49
@peaBerberian peaBerberian force-pushed the dev branch 9 times, most recently from 0142e34 to 1fd9df3 Compare January 27, 2026 11:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

MetaPlaylist Relative to the RxPlayer's MetaPlaylist (i.e. concatenation of multiple contents) Priority: 3 (Low) This issue or PR has a low priority.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant