aboutsummaryrefslogtreecommitdiffstats
path: root/src/atrac1denc.h
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.h
parent62ced878b526d49e5ef6ad42ca2eb7efc874867a (diff)
downloadatracdenc-feb23a6ccb5c756b6497c24c4849cdda07cb35f1.tar.gz
[refactoring] Split CompressedIO interface for Read and Write part
Diffstat (limited to 'src/atrac1denc.h')
-rw-r--r--src/atrac1denc.h29
1 files changed, 22 insertions, 7 deletions
diff --git a/src/atrac1denc.h b/src/atrac1denc.h
index 8468c74..802978d 100644
--- a/src/atrac1denc.h
+++ b/src/atrac1denc.h
@@ -56,8 +56,8 @@ public:
{}
};
-class TAtrac1Processor : public IProcessor<TFloat>, public TAtrac1MDCT, public virtual NAtrac1::TAtrac1Data {
- TCompressedIOPtr Aea;
+class TAtrac1Encoder : public IProcessor<TFloat>, public TAtrac1MDCT, public virtual NAtrac1::TAtrac1Data {
+ TCompressedOutputPtr Aea;
const NAtrac1::TAtrac1EncodeSettings Settings;
TFloat PcmBufLow[2][256 + 16];
@@ -67,7 +67,6 @@ class TAtrac1Processor : public IProcessor<TFloat>, public TAtrac1MDCT, public v
int32_t PcmValueMax = 1;
int32_t PcmValueMin = -1;
- Atrac1SynthesisFilterBank<TFloat> SynthesisFilterBank[2];
Atrac1SplitFilterBank<TFloat> SplitFilterBank[2];
class TTransientDetectors {
@@ -97,14 +96,30 @@ class TAtrac1Processor : public IProcessor<TFloat>, public TAtrac1MDCT, public v
}
}
};
- TAtrac1Processor::TTransientDetectors TransientDetectors;
+ TAtrac1Encoder::TTransientDetectors TransientDetectors;
TScaler<TAtrac1Data> Scaler;
public:
- TAtrac1Processor(TCompressedIOPtr&& aea, NAtrac1::TAtrac1EncodeSettings&& settings);
- TPCMEngine<TFloat>::TProcessLambda GetDecodeLambda() override;
+ TAtrac1Encoder(TCompressedOutputPtr&& aea, NAtrac1::TAtrac1EncodeSettings&& settings);
+ TPCMEngine<TFloat>::TProcessLambda GetLambda() override;
+};
+
+class TAtrac1Decoder : public IProcessor<TFloat>, public TAtrac1MDCT, public virtual NAtrac1::TAtrac1Data {
+ TCompressedInputPtr Aea;
+ const NAtrac1::TAtrac1EncodeSettings Settings;
+
+ TFloat PcmBufLow[2][256 + 16];
+ TFloat PcmBufMid[2][256 + 16];
+ TFloat PcmBufHi[2][512 + 16];
+
+ int32_t PcmValueMax = 1;
+ int32_t PcmValueMin = -1;
- TPCMEngine<TFloat>::TProcessLambda GetEncodeLambda() override;
+ Atrac1SynthesisFilterBank<TFloat> SynthesisFilterBank[2];
+public:
+ TAtrac1Decoder(TCompressedInputPtr&& aea);
+ TPCMEngine<TFloat>::TProcessLambda GetLambda() override;
};
+
}