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.
27 lines
545 B
27 lines
545 B
2 years ago
|
#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
|