aboutsummaryrefslogtreecommitdiffstats
path: root/src/main.cpp
diff options
context:
space:
mode:
authorDaniil Cherednik <dan.cherednik@gmail.com>2017-07-22 20:44:32 +0300
committerDaniil Cherednik <dan.cherednik@gmail.com>2017-07-23 01:11:21 +0300
commitcf7c8d38e0dfeeadbabb7a33a19b96c171c60a70 (patch)
treee306d8edda2dcb7345792c48b7c5349888bc524b /src/main.cpp
parent97a9667b1442624b41ad14bc3712e759205ecd80 (diff)
downloadatracdenc-cf7c8d38e0dfeeadbabb7a33a19b96c171c60a70.tar.gz
Refactoring to be able to implement joint stereo
Diffstat (limited to 'src/main.cpp')
-rw-r--r--src/main.cpp25
1 files changed, 14 insertions, 11 deletions
diff --git a/src/main.cpp b/src/main.cpp
index 58f78cd..b74dea1 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -112,6 +112,13 @@ static void CheckInputFormat(const TWav* p)
throw std::runtime_error("unsupported sample rate");
}
+static TWavPtr OpenWavFile(const string& inFile)
+{
+ TWav* wavPtr = new TWav(inFile);
+ CheckInputFormat(wavPtr);
+ return TWavPtr(wavPtr);
+}
+
static void PrepareAtrac1Encoder(const string& inFile,
const string& outFile,
const bool noStdOut,
@@ -173,20 +180,15 @@ static void PrepareAtrac3Encoder(const string& inFile,
const bool noStdOut,
NAtrac3::TAtrac3EncoderSettings&& encoderSettings,
uint64_t* totalSamples,
- TWavPtr* wavIO,
+ const TWavPtr& wavIO,
TPcmEnginePtr* pcmEngine,
TAtracProcessorPtr* atracProcessor)
{
std::cout << "WARNING: ATRAC3 is uncompleted, result will be not good )))" << std::endl;
if (!noStdOut)
std::cout << "bitrate " << encoderSettings.ConteinerParams->Bitrate << std::endl;
- {
- TWav* wavPtr = new TWav(inFile);
- CheckInputFormat(wavPtr);
- wavIO->reset(wavPtr);
- }
- const int numChannels = (*wavIO)->GetChannelNum();
- *totalSamples = (*wavIO)->GetTotalSamples();
+ const int numChannels = encoderSettings.SourceChannels;
+ *totalSamples = wavIO->GetTotalSamples();
TCompressedIOPtr omaIO = TCompressedIOPtr(new TOma(outFile,
"test",
numChannels,
@@ -194,7 +196,7 @@ static void PrepareAtrac3Encoder(const string& inFile,
encoderSettings.ConteinerParams->FrameSz));
pcmEngine->reset(new TPCMEngine<TFloat>(4096,
numChannels,
- TPCMEngine<TFloat>::TReaderPtr((*wavIO)->GetPCMReader<TFloat>())));
+ TPCMEngine<TFloat>::TReaderPtr(wavIO->GetPCMReader<TFloat>())));
atracProcessor->reset(new TAtrac3Processor(std::move(omaIO), std::move(encoderSettings)));
}
@@ -333,9 +335,10 @@ int main(int argc, char* const* argv)
case (E_ENCODE | E_ATRAC3):
{
using NAtrac3::TAtrac3Data;
- NAtrac3::TAtrac3EncoderSettings encoderSettings(bitrate * 1024, noGainControl, noTonalComponents);
+ wavIO = OpenWavFile(inFile);
+ NAtrac3::TAtrac3EncoderSettings encoderSettings(bitrate * 1024, noGainControl, noTonalComponents, wavIO->GetChannelNum());
PrepareAtrac3Encoder(inFile, outFile, noStdOut, std::move(encoderSettings),
- &totalSamples, &wavIO, &pcmEngine, &atracProcessor);
+ &totalSamples, wavIO, &pcmEngine, &atracProcessor);
pcmFrameSz = TAtrac3Data::NumSamples;;
}
break;