MCPcopy Index your code
hub / github.com/AndreyPavlenko/Fermata

github.com/AndreyPavlenko/Fermata @2.0.1

Chat with this repo
repository ↗ · DeepWiki ↗ · release 2.0.1 ↗ · + Follow
7,108 symbols 26,597 edges 451 files 433 documented · 6% updated 31d ago2.0.1 · 2026-06-06★ 1,156193 open issues
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

!!!Be aware of scam!!! The sites like https://fermata-auto.com/ are 100% scam. This app is free and opensource!

Fermata Media Player

Get it on Google Play

About

Fermata Media Player is a free, open source audio, video and TV player with a simple and intuitive interface. It is focused on playing media files organized in folders and playlists.

Supported features:

  • Play media files organized in folders
  • IPTV addon with support for XMLTV EPG and Catchup
  • Remembers the last played track and position for each folder
  • Support for favorites and playlists
  • Support for CUE and M3U playlists
  • Support for bookmarks
  • Audio effects: Equalizer, Bass/Volume Boost and Virtualizer
  • Configure audio effects for individual tracks and folders
  • Configure playback speed for individual tracks and folders
  • Customizable titles and subtitles
  • Support for Android Auto
  • Support for Android TV
  • Show favorites and playlists on Android TV home screen
  • Pluggable media engines: MediaPlayer, ExoPlayer and VLC
  • Video player with support for subtitles and audio streams (VLC Engine only)

Building the project

  • Download and install the latest Android SDK or Android Studio from https://developer.android.com/studio/
  • Set the environment variable ANDROID_SDK_ROOT pointing to the SDK directory
export ANDROID_SDK_ROOT=<path to android SDK>

Clone the repository

git clone --recurse-submodules https://github.com/AndreyPavlenko/Fermata.git
cd Fermata

Build AAB

./gradlew bundleAutoRelease -PAPP_ID_SFX=.type.your.pkg.sfx.here
find $PWD -name *.aab

Build APK

./gradlew bundleAutoRelease -PAPP_ID_SFX=.type.your.pkg.sfx.here
find $PWD -name *.apk

Building in docker

docker run -ti --name Fermata andreypavlenko/fermata

Enter the requested key alias and password, when prompted. Build the required package using the above commands. To copy the built package to the host machine, open a new terminal and run:

docker cp Fermata:/home/mobiledevops/Fermata/fermata/build/outputs/bundle/autoRelease/ .

Donation

If you like the application, please consider making a donation:

PayPal

CloudTips

Yandex Money

Extension points exported contracts — how you extend this code

ShortConsumer (Interface)
@author Andrey Pavlenko [15 implementers]
depends/utils/src/main/java/me/aap/utils/function/ShortConsumer.java
MainActivityListener (Interface)
@author Andrey Pavlenko [26 implementers]
fermata/src/main/java/me/aap/fermata/ui/activity/MainActivityListener.java
TvItem (Interface)
@author Andrey Pavlenko [5 implementers]
modules/tv/src/main/java/me/aap/fermata/addon/tv/TvItem.java
FelexItem (Interface)
(no doc) [4 implementers]
modules/felex/src/main/java/me/aap/fermata/addon/felex/media/FelexItem.java
Provider (Interface)
(no doc) [1 implementers]
modules/poi/src/auto/java/me/aap/fermata/addon/poi/PoiDb.java
BooleanConsumer (Interface)
@author Andrey Pavlenko [16 implementers]
depends/utils/src/main/java/me/aap/utils/function/BooleanConsumer.java
MediaEngineProvider (Interface)
@author Andrey Pavlenko [4 implementers]
fermata/src/main/java/me/aap/fermata/media/engine/MediaEngineProvider.java
ProgressChangeListener (Interface)
(no doc) [4 implementers]
modules/felex/src/main/java/me/aap/fermata/addon/felex/dict/DictMgr.java

Core symbols most depended-on inside this repo

append
called by 403
depends/utils/src/main/java/me/aap/utils/text/TextBuilder.java
get
called by 330
depends/utils/src/main/java/me/aap/utils/function/Supplier.java
completed
called by 290
depends/utils/src/main/java/me/aap/utils/async/Completed.java
getContext
called by 240
fermata/src/main/java/me/aap/fermata/media/lib/MediaLib.java
e
called by 233
depends/utils/src/main/java/me/aap/utils/log/Log.java
toString
called by 227
depends/utils/src/main/java/me/aap/utils/text/TextBuilder.java
then
called by 222
depends/utils/src/main/java/me/aap/utils/async/FutureSupplier.java
size
called by 222
depends/utils/src/main/java/me/aap/utils/io/RandomAccessChannel.java

Shape

Method 6,279
Class 610
Interface 178
Function 26
Enum 15

Languages

Java99%
C++1%
TypeScript1%

Modules by API surface

fermata/src/main/java/me/aap/fermata/media/lib/MediaLib.java139 symbols
fermata/src/main/java/me/aap/fermata/ui/activity/MainActivityDelegate.java109 symbols
fermata/src/main/java/me/aap/fermata/media/service/MediaSessionCallback.java97 symbols
depends/utils/src/main/java/me/aap/utils/net/SelectorHandler.java97 symbols
modules/felex/src/main/java/me/aap/fermata/addon/felex/view/FelexListView.java83 symbols
fermata/src/main/java/me/aap/fermata/ui/view/ControlPanelView.java69 symbols
depends/utils/src/main/java/me/aap/utils/ui/activity/ActivityDelegate.java69 symbols
modules/vlc/src/main/java/me/aap/fermata/engine/vlc/VlcEngine.java64 symbols
depends/utils/src/main/java/me/aap/utils/async/Completed.java61 symbols
modules/felex/src/main/java/me/aap/fermata/addon/felex/dict/Dict.java59 symbols
fermata/src/main/java/me/aap/fermata/media/engine/StreamEngine.java57 symbols
depends/utils/src/main/java/me/aap/utils/pref/PreferenceStore.java57 symbols

For agents

$ claude mcp add Fermata \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact