FreePassport-C Media Player is a low-dependency SDL2 + FFmpeg application that allows you to organize your media into a virtual cable guide with live-seeking channels.
| src | ||
| .gitignore | ||
| guide-ui.jpg | ||
| Makefile | ||
| README.md | ||
Passport-C Media Player
Passport-C Media Player is a low-dependency SDL2 + FFmpeg prototype that recreates the 2004-era Passport DCT cable guide with live-seeking channels.
Features
- Live-TV epoch clock based on
time(NULL) - 200 ms black-screen channel tuning delay
- Fullscreen and guide modes
- 5-row Passport-style guide with a 90-minute timeline
- Background decoder thread with a bounded frame queue
- Automatic channel discovery from
./media
Layout
src/- application, UI, channel scan, and playback codemedia/- channel video filesguide-ui.jpg- visual reference used for proportions and palette
Controls
Up/Down- surf channelsTab- toggle guideEsc- exit guide or quit the app
Build
Install development packages for SDL2, SDL2_ttf, and FFmpeg headers before building.
Typical Debian or Ubuntu packages:
sudo apt install build-essential libsdl2-dev libsdl2-ttf-dev libavformat-dev libavcodec-dev libswscale-dev libswresample-dev libavutil-dev
Then build and run:
make
./passport-c-media-player
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.
Optional metadata can be provided with description.txt inside each channel directory:
name=Reading
number=56
description=Books, documentaries, and reading-focused programming.
Example layout:
media/
reading/
description.txt
01-intro.mp4
02-feature.mp4
computers/
description.txt
01-chronicles.mp4
02-demo.mp4
Fonts
The UI tries BigBlueTermPlus Nerd Font first, then falls back to common Linux monospace fonts.