Compare commits

...

1 commit

Author SHA1 Message Date
cde53a9529 Update README for clarity 2026-03-30 15:25:32 -04:00

View file

@ -1,6 +1,6 @@
# FreePassport-C Media Player # FreePassport-C Media Player
FreePassport-C Media Player is a low-dependency SDL2 + FFmpeg application that is based on the look of interactive programming guide software used on older Cisco/Scientific Atlanta Explorer cable boxes, it allows you to organize your media into a virtual cable guide with live-seeking channels. FreePassport-C Media Player is a low-dependency SDL2 + FFmpeg application inspired by the interactive program guides used on older Cisco and Scientific Atlanta Explorer cable boxes. It turns a local media library into a fullscreen-first virtual cable system with live-seeking channels, a retro guide, and broadcast-style on-screen overlays.
## Features ## Features
@ -10,6 +10,8 @@ FreePassport-C Media Player is a low-dependency SDL2 + FFmpeg application that i
- 5-row Passport-style guide with a 90-minute timeline - 5-row Passport-style guide with a 90-minute timeline
- Background decoder thread with a bounded frame queue - Background decoder thread with a bounded frame queue
- Automatic channel discovery from `./media` - Automatic channel discovery from `./media`
- Randomized per-channel schedules on each launch
- Fullscreen channel banner, theme picker, and about panel
## Layout ## Layout
@ -21,17 +23,23 @@ FreePassport-C Media Player is a low-dependency SDL2 + FFmpeg application that i
- `Up` / `Down` - surf channels - `Up` / `Down` - surf channels
- `Tab` - toggle guide - `Tab` - toggle guide
- `Enter` - tune selected channel from the guide
- `Left` / `Right` - browse guide time
- `0-9` - direct channel number entry
- `i` - show current channel info - `i` - show current channel info
- `a` - toggle about panel
- `b` - toggle theme picker
- `f` - toggle fullscreen
- `Esc` - exit guide or quit the app - `Esc` - exit guide or quit the app
## Build ## Build
Install development packages for SDL2, SDL2_ttf, and FFmpeg headers before building. Install development packages for SDL2, SDL2_ttf, SDL2_image, and FFmpeg headers before building.
Typical Debian or Ubuntu packages: Typical Debian or Ubuntu packages:
```bash ```bash
sudo apt install build-essential libsdl2-dev libsdl2-ttf-dev libavformat-dev libavcodec-dev libswscale-dev libswresample-dev libavutil-dev sudo apt install build-essential libsdl2-dev libsdl2-ttf-dev libsdl2-image-dev libavformat-dev libavcodec-dev libswscale-dev libswresample-dev libavutil-dev
``` ```
Then build and run: Then build and run:
@ -43,30 +51,30 @@ make
## AppImage Build ## AppImage Build
To create a portable AppImage that can run on any Linux distribution: To create a portable AppImage with the included packaging script:
```bash ```bash
make appimage make appimage
``` ```
This creates a self-contained executable that includes all dependencies. The script automatically detects your architecture and produces the appropriate AppImage: The AppImages for `0.1` are built on Debian 13 using `linuxdeploy` and the repository's included scripts. The build automatically detects your architecture and produces the appropriate AppImage:
- **x86_64**: `Passport-C-Media-Player-0.1-x86_64.AppImage` - **x86_64**: `FreePassport-C-Media-Player-0.1-x86_64.AppImage`
- **ARM64/aarch64**: `Passport-C-Media-Player-0.1-aarch64.AppImage` - **ARM64/aarch64**: `FreePassport-C-Media-Player-0.1-aarch64.AppImage`
Users can run it directly: Users can run it directly:
```bash ```bash
./Passport-C-Media-Player-0.1-x86_64.AppImage ./FreePassport-C-Media-Player-0.1-x86_64.AppImage
# or on ARM devices: # or on ARM devices:
./Passport-C-Media-Player-0.1-aarch64.AppImage ./FreePassport-C-Media-Player-0.1-aarch64.AppImage
``` ```
For a fully portable setup, create a `media/` directory in the same folder as the AppImage and add your channel videos there. The AppImage will automatically detect and load channels from this directory. For a fully portable setup, create a `media/` directory in the same folder as the AppImage and add your channel videos there. The AppImage will automatically detect and load channels from this directory.
## Media ## Media
The player scans `./media` for channel directories. Each subdirectory is treated as one channel, and the supported video files inside it are played in alphabetical order as that channel's schedule. The player scans `./media` for channel directories. Each subdirectory is treated as one channel, and the supported video files inside it are shuffled into a randomized schedule for that channel on each launch.
Optional metadata can be provided with `description.txt` inside each channel directory: Optional metadata can be provided with `description.txt` inside each channel directory: