diff options
author | Sergio <sergio@sergione.(none)> | 2014-06-13 12:28:32 +0200 |
---|---|---|
committer | Sergio <sergio@sergione.(none)> | 2014-06-13 12:28:32 +0200 |
commit | cb5211684e8d4300641f36830ed3445e72a3f8bd (patch) | |
tree | 5889800d2cc867d5fecbfe935701b287aa29c2ca /src/dabplus-enc.cpp | |
parent | eedf902dde96026057fb71e0743864d3257f4a20 (diff) | |
download | ODR-AudioEnc-cb5211684e8d4300641f36830ed3445e72a3f8bd.tar.gz ODR-AudioEnc-cb5211684e8d4300641f36830ed3445e72a3f8bd.tar.bz2 ODR-AudioEnc-cb5211684e8d4300641f36830ed3445e72a3f8bd.zip |
Added option to ignore EOF fifo and generates silence
Diffstat (limited to 'src/dabplus-enc.cpp')
-rw-r--r-- | src/dabplus-enc.cpp | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/src/dabplus-enc.cpp b/src/dabplus-enc.cpp index c409acb..f186dbe 100644 --- a/src/dabplus-enc.cpp +++ b/src/dabplus-enc.cpp @@ -84,6 +84,7 @@ void usage(const char* name) { " For the file input:\n" " -i, --input=FILENAME Input filename (default: stdin).\n" " -f, --format={ wav, raw } Set input file format (default: wav).\n" + " --fifo-silence Input file is fifo and encoder generates silence when fifo is empty. Ignore EOF.\n" " Encoder parameters:\n" " -b, --bitrate={ 8, 16, ..., 192 } Output bitrate in kbps. Must be 8 multiple.\n" " -a, --afterburner Turn on AAC encoder quality increaser.\n" @@ -231,6 +232,7 @@ int main(int argc, char *argv[]) const int bytes_per_sample = 2; void *rs_handler = NULL; bool afterburner = false; + bool inFifoSilence = false; bool drift_compensation = false; AACENC_InfoStruct info = { 0 }; int aot = AOT_NONE; @@ -273,6 +275,7 @@ int main(int argc, char *argv[]) {"aaclc", no_argument, 0, 0 }, {"sbr", no_argument, 0, 1 }, {"ps", no_argument, 0, 2 }, + {"fifo-silence", no_argument, 0, 3 }, {0,0,0,0}, }; @@ -294,6 +297,9 @@ int main(int argc, char *argv[]) case 2: // PS aot = AOT_DABPLUS_PS; break; + case 3: // FIFO SILENCE + inFifoSilence = true; + break; case 'a': afterburner = true; break; @@ -591,8 +597,13 @@ int main(int argc, char *argv[]) break; } else if (read != input_size) { - fprintf(stderr, "Short file read !\n"); - break; + if (inFifoSilence && ((errno==EAGAIN)||(errno==0))) { + memset(input_buf, 0, input_size); + read = input_size; + } else { + fprintf(stderr, "Short file read !\n"); + break; + } } } else if (drift_compensation) { |