summaryrefslogtreecommitdiff
path: root/src/codecs/dr_flac.cpp
diff options
context:
space:
mode:
authorTom Kirchner <git@halffull.org>2025-01-06 20:53:02 -0800
committerTom Kirchner <git@halffull.org>2025-01-08 20:46:34 -0800
commitfaa62e0c60d51a9df88002a59825b427323259c0 (patch)
treecd0631b047e8b09fbd61ea85ad1a67aa55929a25 /src/codecs/dr_flac.cpp
parent829d033a448107f1bc610cf735ce9f7222de564b (diff)
downloadtangara-fw-faa62e0c60d51a9df88002a59825b427323259c0.tar.gz
Add bitrate info
Diffstat (limited to 'src/codecs/dr_flac.cpp')
-rw-r--r--src/codecs/dr_flac.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/codecs/dr_flac.cpp b/src/codecs/dr_flac.cpp
index 9341e938..939705ad 100644
--- a/src/codecs/dr_flac.cpp
+++ b/src/codecs/dr_flac.cpp
@@ -97,6 +97,13 @@ auto DrFlacDecoder::OpenStream(std::shared_ptr<IStream> input, uint32_t offset)
.sample_rate_hz = static_cast<uint32_t>(flac_->sampleRate),
.total_samples = flac_->totalPCMFrameCount * flac_->channels,
};
+
+ if (input->Size() && format.total_samples) {
+ double sample_size = *(input->Size()) * 8.0 / *(format.total_samples);
+ format.bitrate_kbps = static_cast<uint32_t>(
+ flac_->sampleRate * flac_->channels * sample_size / 1024);
+ }
+
return format;
}