cm-player/Cargo.toml
Christoffer Martinsson 0cef231cd3
All checks were successful
Build and Release / build-and-release (push) Successful in 58s
Add metadata display and optimize CPU usage
Metadata features:
- Display artist, album, title in bottom status bar (left-aligned)
- Display bitrate, codec, sample rate in bottom status bar (right-aligned)
- Fetch metadata from MPV using metadata/by-key properties
- Support both lowercase and uppercase metadata tags

Performance optimizations:
- Split property updates: fast updates (position/duration) vs slow (metadata)
- Update metadata only every 2 seconds instead of every 100ms
- Skip MPV property updates entirely when stopped
- Conditional UI redraws - only when state actually changes
- Variable poll rate: 200ms when stopped, 100ms when playing
- Position update throttling (0.5s minimum change)
- Reduces CPU usage from constant 10 FPS to ~0.1 FPS when idle
2025-12-06 23:07:33 +01:00

39 lines
556 B
TOML

[package]
name = "cm-player"
version = "0.1.10"
edition = "2021"
[dependencies]
# TUI
ratatui = "0.28"
crossterm = "0.28"
# Async runtime
tokio = { version = "1.40", features = ["full"] }
# Serialization
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
toml = "0.8"
# File system
walkdir = "2.5"
dirs = "5.0"
# MPV player (via IPC)
tempfile = "3.14"
# Error handling
anyhow = "1.0"
thiserror = "1.0"
# Logging
tracing = "0.1"
tracing-subscriber = "0.3"
[profile.release]
opt-level = 3
lto = true
codegen-units = 1
strip = true