Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
4 changes: 2 additions & 2 deletions backend/internal/audio/worker.go
Original file line number Diff line number Diff line change
Expand Up @@ -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
)
Expand Down
2 changes: 1 addition & 1 deletion backend/internal/seed/seed.go
Original file line number Diff line number Diff line change
Expand Up @@ -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"},
Expand Down
9 changes: 3 additions & 6 deletions frontend/src/components/admin/OptionsPanel.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -164,7 +164,8 @@ const DESCRIPTIONS: Record<string, string> = {
"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:
Expand Down Expand Up @@ -309,11 +310,7 @@ export default function OptionsPanel() {
<span className="badge badge-sm border-warning/30 bg-warning/10 text-warning">
Planned
</span>
) : (
<span className="badge badge-sm border-success/30 bg-success/10 text-success">
Active
</span>
);
) : null;

if (isBooleanKey(key)) {
return (
Expand Down
Loading