diff options
Diffstat (limited to 'src/codecs/include/mad.hpp')
| -rw-r--r-- | src/codecs/include/mad.hpp | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/src/codecs/include/mad.hpp b/src/codecs/include/mad.hpp index e28e32c8..60a0b81c 100644 --- a/src/codecs/include/mad.hpp +++ b/src/codecs/include/mad.hpp @@ -38,13 +38,14 @@ class MadMp3Decoder : public ICodec { private: auto SkipID3Tags(IStream& stream) -> std::optional<uint32_t>; - struct VbrInfo { + struct Mp3Info { + uint16_t starting_sample; uint32_t length; std::optional<uint32_t> bytes; std::optional<std::span<const unsigned char, 100>> toc; }; - auto GetVbrInfo(const mad_header& header) -> std::optional<VbrInfo>; + auto GetMp3Info(const mad_header& header) -> std::optional<Mp3Info>; auto GetBytesUsed() -> std::size_t; @@ -55,7 +56,14 @@ class MadMp3Decoder : public ICodec { std::unique_ptr<mad_frame> frame_; std::unique_ptr<mad_synth> synth_; - int current_sample_; + // Count of samples processed in the current frame (channels combined) + int current_frame_sample_; + // Count of samples processed in the current stream (channels separate, i.e. usually x2) + int current_stream_sample_; + // How many samples in the current stream (channels separate) with encoder delay/padding removed + int total_samples_; + // Encoder delay, i.e. how many samples to skip at the start of the stream + int skip_samples_; bool is_eof_; bool is_eos_; }; |
