Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
wants to merge 1 commit into
base: dev
Choose a base branch
from

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
…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).
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