diff options
author | Daniil Cherednik <dan.cherednik@gmail.com> | 2025-05-16 23:27:59 +0200 |
---|---|---|
committer | Daniil Cherednik <dan.cherednik@gmail.com> | 2025-05-16 23:48:26 +0200 |
commit | c5ae2cec2c8308f96867e1620f0ec3a5c41395e4 (patch) | |
tree | 8291351078e27ece783f9495241cdf667cfd4e0b /src/main.cpp | |
parent | 2a143471b0898dd8b6257ca69309a6f2b1c20bf3 (diff) | |
download | atracdenc-c5ae2cec2c8308f96867e1620f0ec3a5c41395e4.tar.gz |
[AT3P] Add advanced option for GHA debug
There are 3 flags:
GHA_PASS_INPUT - allows to pass source signal in to the filter
GHA_WRITE_TONAL - allows to write result of GHA into the bitstream
GHA_WRITE_RESIUDAL - allows to process signal after the filter
If all 3 flags set it denotes normal processing.
If we want to see only result of sinusoid extraction (tonal component) we can set only
GHA_WRITE_TONAL flag. If we want to see signal after extraction we need
to set GHA_PASS_INPUT and GHA_WRITE_RESIUDAL.
Diffstat (limited to 'src/main.cpp')
-rw-r--r-- | src/main.cpp | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/src/main.cpp b/src/main.cpp index 8dbf700..861495f 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -110,6 +110,7 @@ enum EOptions O_NOSTDOUT = '4', O_NOTONAL = 5, O_NOGAINCONTROL = 6, + O_ADVANCED_OPT = 7, }; static void CheckInputFormat(const TWav* p) @@ -258,7 +259,8 @@ static void PrepareAtrac3PEncoder(const string& inFile, uint64_t* totalSamples, const TWavPtr& wavIO, TPcmEnginePtr* pcmEngine, - TAtracProcessorPtr* atracProcessor) + TAtracProcessorPtr* atracProcessor, + const char* advancedOpt) { *totalSamples = wavIO->GetTotalSamples(); const uint64_t numFrames = (*totalSamples) / 2048; @@ -300,13 +302,18 @@ static void PrepareAtrac3PEncoder(const string& inFile, pcmEngine->reset(new TPCMEngine(4096, numChannels, TPCMEngine::TReaderPtr(wavIO->GetPCMReader()))); - atracProcessor->reset(new TAt3PEnc(std::move(omaIO), numChannels)); + TAt3PEnc::TSettings settings; + if (advancedOpt) { + TAt3PEnc::ParseAdvancedOpt(advancedOpt, settings); + } + atracProcessor->reset(new TAt3PEnc(std::move(omaIO), numChannels, settings)); } int main_(int argc, char* const* argv) { const char* myName = argv[0]; + const char* advancedOpt = nullptr; static struct option longopts[] = { { "encode", optional_argument, NULL, O_ENCODE }, { "decode", no_argument, NULL, O_DECODE }, @@ -317,6 +324,7 @@ int main_(int argc, char* const* argv) { "notransient", optional_argument, NULL, O_NOTRANSIENT}, { "nostdout", no_argument, NULL, O_NOSTDOUT}, { "nogaincontrol", no_argument, NULL, O_NOGAINCONTROL}, + { "advanced", required_argument, NULL, O_ADVANCED_OPT}, { NULL, 0, NULL, 0} }; @@ -399,6 +407,9 @@ int main_(int argc, char* const* argv) case O_NOGAINCONTROL: noGainControl = true; break; + case O_ADVANCED_OPT: + advancedOpt = optarg; + break; default: printUsage(myName); return 1; @@ -466,7 +477,7 @@ int main_(int argc, char* const* argv) { wavIO = OpenWavFile(inFile); PrepareAtrac3PEncoder(inFile, outFile, noStdOut, wavIO->GetChannelNum(), - &totalSamples, wavIO, &pcmEngine, &atracProcessor); + &totalSamples, wavIO, &pcmEngine, &atracProcessor, advancedOpt); pcmFrameSz = 2048; } break; |