Related to #103 Adds ffmpeg decoder module to support a few extra audio formats such as AC3, EAC3, DTS, & TrueHD. This increases the apk size by about 5.4mb (release 17.4mb->22.8mb), but definitely worth it for the added support.
1.9 KiB
Wholphin developer's guide
See also the Contributing guide for general information on contributing to the project.
Overview
This project is an Android TV client for Jellyfin. It is written in Kotlin and uses the official Jellyfin Kotlin SDK to interact with the server.
The app is a single Activity (MainActivity) with MVVM architecture.
The app uses:
- Compose for the UI
- Navigation 3 for navigating app screen
- Room & DataStore for local data storage
- Hilt for dependency injection
- Media3/ExoPlayer for media playback
- Coil for image loading
- OkHttp for HTTP requests
Getting started
We follow GitHub's fork & pull request model for contributions.
After forking and cloning your fork, you can import the project into Android Studio.
You need a compatible Android Studio version for the configured AGP. This is generally Narwhal 3 Feature Drop | 2025.1.3 or newer. See https://developer.android.com/build/releases/gradle-plugin and `libs.versions.toml.
FFmpeg decoder module
The app ships with media3 ffmpeg decoder module.
It is not required to build the extension in order to build the app locally.
You can build the module on MacOS or Linux with the ./build_ffmpeg_decoder.sh script. You must have the Android NDK installed.