diff options
author | Daniil Cherednik <dan.cherednik@gmail.com> | 2021-08-28 22:16:39 +0300 |
---|---|---|
committer | Daniil Cherednik <dan.cherednik@gmail.com> | 2021-08-28 22:16:39 +0300 |
commit | feb23a6ccb5c756b6497c24c4849cdda07cb35f1 (patch) | |
tree | 39c3cd3a368bb3158a6af9f5d195690a7758333f /src/atrac1denc.cpp | |
parent | 62ced878b526d49e5ef6ad42ca2eb7efc874867a (diff) | |
download | atracdenc-feb23a6ccb5c756b6497c24c4849cdda07cb35f1.tar.gz |
[refactoring] Split CompressedIO interface for Read and Write part
Diffstat (limited to 'src/atrac1denc.cpp')
-rw-r--r-- | src/atrac1denc.cpp | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/src/atrac1denc.cpp b/src/atrac1denc.cpp index e15680b..64e4f48 100644 --- a/src/atrac1denc.cpp +++ b/src/atrac1denc.cpp @@ -32,12 +32,17 @@ using namespace NAtrac1; using namespace NMDCT; using std::vector; -TAtrac1Processor::TAtrac1Processor(TCompressedIOPtr&& aea, TAtrac1EncodeSettings&& settings) +TAtrac1Encoder::TAtrac1Encoder(TCompressedOutputPtr&& aea, TAtrac1EncodeSettings&& settings) : Aea(std::move(aea)) , Settings(std::move(settings)) { } +TAtrac1Decoder::TAtrac1Decoder(TCompressedInputPtr&& aea) + : Aea(std::move(aea)) +{ +} + static void vector_fmul_window(TFloat *dst, const TFloat *src0, const TFloat *src1, const TFloat *win, int len) { @@ -126,12 +131,12 @@ void TAtrac1MDCT::IMdct(TFloat Specs[512], const TBlockSize& mode, TFloat* low, } } -TPCMEngine<TFloat>::TProcessLambda TAtrac1Processor::GetDecodeLambda() { +TPCMEngine<TFloat>::TProcessLambda TAtrac1Decoder::GetLambda() { return [this](TFloat* data, const TPCMEngine<TFloat>::ProcessMeta& meta) { TFloat sum[512]; const uint32_t srcChannels = Aea->GetChannelNum(); for (uint32_t channel = 0; channel < srcChannels; channel++) { - std::unique_ptr<TAea::TFrame> frame(Aea->ReadFrame()); + std::unique_ptr<ICompressedIO::TFrame> frame(Aea->ReadFrame()); TBitStream bitstream(frame->Get(), frame->Size()); @@ -157,14 +162,11 @@ TPCMEngine<TFloat>::TProcessLambda TAtrac1Processor::GetDecodeLambda() { } -TPCMEngine<TFloat>::TProcessLambda TAtrac1Processor::GetEncodeLambda() { +TPCMEngine<TFloat>::TProcessLambda TAtrac1Encoder::GetLambda() { const uint32_t srcChannels = Aea->GetChannelNum(); vector<IAtrac1BitAlloc*> bitAlloc; for (size_t i = 0; i < srcChannels; i++) { - TAea* atrac1container = dynamic_cast<TAea*>(Aea.get()); - if (atrac1container == nullptr) - abort(); - bitAlloc.push_back(new TAtrac1SimpleBitAlloc(atrac1container, Settings.GetBfuIdxConst(), Settings.GetFastBfuNumSearch())); + bitAlloc.push_back(new TAtrac1SimpleBitAlloc(Aea.get(), Settings.GetBfuIdxConst(), Settings.GetFastBfuNumSearch())); } return [this, srcChannels, bitAlloc](TFloat* data, const TPCMEngine<TFloat>::ProcessMeta& meta) { |