From 62f6179abe24339c2e5b7350528afbcad4c52067 Mon Sep 17 00:00:00 2001 From: ailurux Date: Thu, 15 Feb 2024 16:12:07 +1100 Subject: Added offset for track seeking, wav impl. only rn --- src/codecs/wav.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'src/codecs/wav.cpp') diff --git a/src/codecs/wav.cpp b/src/codecs/wav.cpp index a67f3ff4..652f4f88 100644 --- a/src/codecs/wav.cpp +++ b/src/codecs/wav.cpp @@ -84,7 +84,7 @@ WavDecoder::WavDecoder() : input_(), buffer_() {} WavDecoder::~WavDecoder() {} -auto WavDecoder::OpenStream(std::shared_ptr input) +auto WavDecoder::OpenStream(std::shared_ptr input,uint32_t offset) -> cpp::result { input_ = input; @@ -199,8 +199,10 @@ auto WavDecoder::OpenStream(std::shared_ptr input) return cpp::fail(Error::kUnsupportedFormat); } + auto data_offset = offset * samples_per_second * bits_per_sample; + // Seek track to start of data - input->SeekTo(data_chunk_index + 8, IStream::SeekFrom::kStartOfStream); + input->SeekTo(data_chunk_index + 8 + data_offset, IStream::SeekFrom::kStartOfStream); output_format_ = {.num_channels = (uint8_t)num_channels_, .sample_rate_hz = samples_per_second, -- cgit v1.2.3