diff --git a/CHANGELOG.md b/CHANGELOG.md index b819201..7ba03dd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -30,6 +30,21 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 wire protocol, action names, and response shapes are unchanged. - Deployment guide reverse-proxy instructions now list `/api/ws` alongside `/ws` and `/api/admin/ws` as paths that need WebSocket-upgrade forwarding. +- Admin Options panel no longer shows an "Active" badge on every wired + setting; only "Planned" badges are rendered for not-yet-implemented + options. +- Admin Options "Audio Conversion" description now reads "Convert incoming + audio with FFmpeg before storing. Select the codec and bitrate below." + to reflect that MP3 and AAC outputs are both supported via the encoding + preset. + +### Fixed + +- Default `audioEncodingPreset` seeded into the settings table is now + `mp3_32k` (matching the dropdown's "(default)" label and the Go + `ParseEncodingPreset` fallback) instead of `aac_lc_32k`. New installs + enabling audio conversion will now default to MP3 32 kbps as the UI + advertises. ## [1.1.2] — 2026-04-24 diff --git a/backend/internal/audio/worker.go b/backend/internal/audio/worker.go index 41a8043..a768880 100644 --- a/backend/internal/audio/worker.go +++ b/backend/internal/audio/worker.go @@ -23,12 +23,12 @@ const ( type EncodingPreset string const ( - PresetAACLC32k EncodingPreset = "aac_lc_32k" // AAC-LC 32 kbps (default) + PresetAACLC32k EncodingPreset = "aac_lc_32k" // AAC-LC 32 kbps PresetAACLC24k EncodingPreset = "aac_lc_24k" // AAC-LC 24 kbps PresetAACLC16k EncodingPreset = "aac_lc_16k" // AAC-LC 16 kbps PresetHEAAC12k EncodingPreset = "he_aac_12k" // HE-AAC 12 kbps PresetHEAAC8k EncodingPreset = "he_aac_8k" // HE-AAC 8 kbps - PresetMP3_32k EncodingPreset = "mp3_32k" // MP3 32 kbps + PresetMP3_32k EncodingPreset = "mp3_32k" // MP3 32 kbps (default) PresetMP3_24k EncodingPreset = "mp3_24k" // MP3 24 kbps PresetMP3_16k EncodingPreset = "mp3_16k" // MP3 16 kbps ) diff --git a/backend/internal/seed/seed.go b/backend/internal/seed/seed.go index 0376d71..3c9faa1 100644 --- a/backend/internal/seed/seed.go +++ b/backend/internal/seed/seed.go @@ -72,7 +72,7 @@ func seedSettings(ctx context.Context, tx *sql.Tx) (bool, error) { {"disableDuplicateDetection", "false"}, {"sortTalkgroups", "false"}, {"audioConversion", "0"}, - {"audioEncodingPreset", "aac_lc_32k"}, + {"audioEncodingPreset", "mp3_32k"}, {"showListenersCount", "false"}, {"tagsToggle", "false"}, {"playbackGoesLive", "false"}, diff --git a/frontend/src/components/admin/OptionsPanel.tsx b/frontend/src/components/admin/OptionsPanel.tsx index 5ed70af..c2a1099 100644 --- a/frontend/src/components/admin/OptionsPanel.tsx +++ b/frontend/src/components/admin/OptionsPanel.tsx @@ -164,7 +164,8 @@ const DESCRIPTIONS: Record = { "Include patched talkgroups in search results (may slow search).", showListenersCount: "Display the active listener count on the main scanner screen.", - audioConversion: "Convert incoming audio to AAC/M4A using FFmpeg.", + audioConversion: + "Convert incoming audio with FFmpeg before storing. Select the codec and bitrate below.", audioEncodingPreset: "Codec and bitrate for converted audio. HE-AAC presets require libfdk_aac in your FFmpeg build. Lower bitrates save storage; choose based on your quality needs.", disableDuplicateDetection: @@ -309,11 +310,7 @@ export default function OptionsPanel() { Planned - ) : ( - - Active - - ); + ) : null; if (isBooleanKey(key)) { return (