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

[WIP] Release v4.0.0 #1050

Closed
wants to merge 222 commits into from
Closed

[WIP] Release v4.0.0 #1050

wants to merge 222 commits into from

Conversation

peaBerberian
Copy link
Collaborator

@peaBerberian peaBerberian commented Jan 14, 2022

STATUS: Already merged in the v4.0.0-rc.1

@peaBerberian peaBerberian added work-in-progress This Pull Request or issue is not finished yet release Pull Request for a release branch that is being tested labels Jan 14, 2022
@peaBerberian peaBerberian added this to the 4.0.0 milestone Jan 14, 2022
@peaBerberian peaBerberian linked an issue Jan 20, 2022 that may be closed by this pull request
87 tasks
@peaBerberian peaBerberian force-pushed the next-v4 branch 2 times, most recently from 5cda0e5 to 8d86f65 Compare March 3, 2022 16:50
@peaBerberian peaBerberian force-pushed the next-v4 branch 5 times, most recently from 7291c24 to f2035ff Compare April 14, 2022 09:33
peaBerberian and others added 26 commits January 23, 2024 18:38
`DASH_WASM`, `DEBUG_ELEMENT` become non-experimental features and `parseBifThumbnails` a non-experimental tool
- Seek exactly to the current position if setAudio/Video track
if relativeResumingPosition was set intentionnaly to 0.
- Add types.
types: export type IcompatibleKeySystem to the public API
using global import, ex: `__ENVIRONMENT__` in the `demo/full` folder
didn't work because there is a `demo/full/tsconfig` file that has more
priority than `src/tsconfig` in the `demo/full` folder.
The fix was to add the global import file in the `demo/full/tsconfig`
Building of the RxPlayer's WebAssembly file previously required:
  1. that the Rust compiler toolchain is installed (most likely through
     `rustup`) and that `cargo` is consequently available as a command
     globally.
  2. that the `wasm32-unknown-unknown` Rust compiler target is added
     (this is generally just basically a `rustup target add
     wasm32-unknown-unknown` call once rustup is installed).
  3. that the `binaryen` tool is installed and that `wasm-opt` is
     consequently available as a command globally.

It bothered me that we added Rust compiler toolchains requirements for
building what is a JavaScript project, even more now that we're
considering making it a requirement for the `npm run build` script.

To simplify, I try here to remove the need for the third step, which
might be the more complex to set up (`binaryen` seems to be available
through `brew` for MacOS and it is in the `extra` repository for Arch,
but I would guess that many other linux distributions wouldn't have an
easy access to it, leading to installing and updating difficulties).

To remove it, I rely on a WebAssembly build of binaryen with a JS API on
the front, through the `binaryen` npm module.
It is quite voluminous (25MB in my `node_modules` directory, making it
second after TypeScript) yet it save the need to separately have to
install and maintain a separate binary.

I then added the `script/wasm-optimize.mjs` script to interface with
that npm module and called it through the `npm run build:wasm:release`
script, which should completely replace the need for binaryen.
fix(demo): fix ts error in global declaration
Remove the necessity of installing binaryen separately
Previous RxPlayer's `mute` and `unMute` method actually set the volume
to `0` instead of changing the `muted` HTMLMediaElement property.

I here propose that we update their behavior to mutate the `muted`
property instead as:
  1. It would seem more natural to an application I would guess
  2. It might integrate better with browsers built-in making use of the
     `HTMLMediaElement` properties directly (things like
     Picture-in-Picture and so on).

I also consequently updated that the `volumeChange` event to notify
about both properties, and noticed it wasn't even documented in the API
documentation.
if user has set relativeResumingPosition, the seek should be
on exact position provided, but if the value was defaulted
by the API, let the possibility to change slightly this value
to make sure the browser will correctly reload the video.
…mitVideoWidth

demo: change removed property limitVideoWidth to videoResolutionLimit
feat: change position on audio track change
Set more standard mute/unMute behaviors
fix(demo): directFiles content was not working in the demo
@peaBerberian
Copy link
Collaborator Author

As the v4.0.0-rc.1 is pretty stable, keeping this branch as a safety mechanism is no longer needed, we can close it

@peaBerberian peaBerberian deleted the next-v4 branch July 26, 2024 16:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Performance checks Performance tests are run on this issue / PR release Pull Request for a release branch that is being tested work-in-progress This Pull Request or issue is not finished yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Thoughts for a v4.0.0
2 participants