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

Remove LibVLC #3639

Merged
merged 1 commit into from
Jun 2, 2024
Merged

Conversation

nielsvanvelzen
Copy link
Member

The last stable release of libvlc-jni is version 3.5.1, released August 11th 2022. There have been multiple "early access preview" releases since but those are not stable releases. Unfortunately the members of the F-Droid team made us aware that the latest stable does contain at least one unpatched CVE (see #3623).

Our legacy video player implementation has always been a pain to work with due to the mix of ExoPlayer and LibVLC code. The LibVLC implementation in particular could cause memory issues and could sometimes be active when using ExoPlayer, resulting in poorer performance. Additionally, the library caused the APK/AAB size to increase significantly. Because of this we've marked the implementation as experimental some time ago, moved the default over to ExoPlayer and started discouraging the use of LibVLC.

The new playback implementation will not support a LibVLC backend at launch. I can't say for sure whether it will return, it may be possible we choose a different engine (like MPV/FFmpeg) or only support ExoPlayer with extensions.

For the above reasons (no new releases, CVE, messy code) I'm removing the implementation now for 0.17. This makes it slightly easier to maintain old playback code (and increases reliability/performance) while work continues on the new implementation.

Changes

  • Remove LibVLC implementation

Issues

This is a rebase of #3039.
Fixes #3623

@nielsvanvelzen nielsvanvelzen added the refactor Improvements to code realiability, readability and quality label Jun 2, 2024
@nielsvanvelzen nielsvanvelzen added this to the v0.17.0 milestone Jun 2, 2024
@nielsvanvelzen
Copy link
Member Author

File Size on master branch Size on this branch
build-artifacts.zip 107MB 24MB
jellyfin-androidtv-v0.0.0-dev.1-debug.apk 110MB 26MB

@nielsvanvelzen nielsvanvelzen merged commit c1b651d into jellyfin:master Jun 2, 2024
5 checks passed
@nielsvanvelzen nielsvanvelzen deleted the remove-libvlc2 branch June 2, 2024 15:10
@dinosmm
Copy link

dinosmm commented Jul 29, 2024

The reasons for removing LibVLC are understandable.
Is there anything in the pipeline to re-add DTS:X (and -HD, -HD MA) audio support to the Android TV client (as LibVLC was the only way to play these movies)?

@nielsvanvelzen
Copy link
Member Author

DTS should already be supported according to our device profile. If you run into any issues with it, open an GitHub issue. Don't reply to old pull requests..

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
refactor Improvements to code realiability, readability and quality
Projects
None yet
Development

Successfully merging this pull request may close these issues.

CVE-2023-5217 - update libvlc
3 participants