diff options
| author | jacqueline <me@jacqueline.id.au> | 2023-08-10 21:34:48 +1000 |
|---|---|---|
| committer | jacqueline <me@jacqueline.id.au> | 2023-08-10 21:35:16 +1000 |
| commit | c37ccb985125f5efdf7600989331085f60d8a973 (patch) | |
| tree | 4c0cbce4d9111e82a180e73b7021e23eb6a4b0db /src/codecs/vorbis.cpp | |
| parent | 958160aa545e3d91b2a4f1a367817e73d298e8a9 (diff) | |
| download | tangara-fw-c37ccb985125f5efdf7600989331085f60d8a973.tar.gz | |
Reintroduce track timer, now relying more on codecs
Diffstat (limited to 'src/codecs/vorbis.cpp')
| -rw-r--r-- | src/codecs/vorbis.cpp | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/codecs/vorbis.cpp b/src/codecs/vorbis.cpp index aa367e02..cf783978 100644 --- a/src/codecs/vorbis.cpp +++ b/src/codecs/vorbis.cpp @@ -118,9 +118,16 @@ auto TremorVorbisDecoder::OpenStream(std::shared_ptr<IStream> input) return cpp::fail(Error::kMalformedData); } + auto l = ov_pcm_total(&vorbis_, -1); + std::optional<uint32_t> length; + if (l > 0) { + length = l; + } + return OutputFormat{ .num_channels = static_cast<uint8_t>(info->channels), .sample_rate_hz = static_cast<uint32_t>(info->rate), + .total_samples = length, }; } |
