Fork of Tangara with customizations
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
#pragma once
|
|
|
|
|
|
|
|
#include "codec.hpp"
|
|
|
|
|
|
|
|
namespace codecs {
|
|
|
|
|
|
|
|
class MadMp3Decoder : public ICodec {
|
|
|
|
public:
|
|
|
|
MadMp3Decoder();
|
|
|
|
~MadMp3Decoder();
|
|
|
|
|
|
|
|
auto ProcessInput(Result* res, uint8_t* input, std::size_t input_len) -> void;
|
|
|
|
auto WriteOutputSamples(Result* res,
|
|
|
|
uint8_t* output,
|
|
|
|
std::size_t output_length) -> void;
|
|
|
|
|
|
|
|
private:
|
|
|
|
mad_stream stream_;
|
|
|
|
mad_frame frame_;
|
|
|
|
mad_synth synth_;
|
|
|
|
|
|
|
|
mad_header header_;
|
|
|
|
bool has_decoded_header_;
|
|
|
|
|
|
|
|
int current_sample_ = -1;
|
|
|
|
};
|
|
|
|
|
|
|
|
} // namespace codecs
|