summaryrefslogtreecommitdiff
path: root/src/codecs/dr_flac.cpp
diff options
context:
space:
mode:
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;
}