aboutsummaryrefslogtreecommitdiffstats
path: root/src/atrac1denc.cpp
diff options
context:
space:
mode:
authorDaniil Cherednik <dan.cherednik@gmail.com>2021-08-28 22:16:39 +0300
committerDaniil Cherednik <dan.cherednik@gmail.com>2021-08-28 22:16:39 +0300
commitfeb23a6ccb5c756b6497c24c4849cdda07cb35f1 (patch)
tree39c3cd3a368bb3158a6af9f5d195690a7758333f /src/atrac1denc.cpp
parent62ced878b526d49e5ef6ad42ca2eb7efc874867a (diff)
downloadatracdenc-feb23a6ccb5c756b6497c24c4849cdda07cb35f1.tar.gz
[refactoring] Split CompressedIO interface for Read and Write part
Diffstat (limited to 'src/atrac1denc.cpp')
-rw-r--r--src/atrac1denc.cpp18
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) {