diff options
author | Matthias P. Braendli <matthias.braendli@mpb.li> | 2020-07-08 09:17:09 +0200 |
---|---|---|
committer | Matthias P. Braendli <matthias.braendli@mpb.li> | 2020-07-08 09:17:09 +0200 |
commit | e36865985abf9c4f31d34a9542c790f5baf8fe60 (patch) | |
tree | 8f35e10213ac643c30bda20275b5417dc1fedacd /src/pad_common.cpp | |
parent | 11767aaaf3b60791c7c29c6cfc55d676fd4cdf28 (diff) | |
download | ODR-PadEnc-e36865985abf9c4f31d34a9542c790f5baf8fe60.tar.gz ODR-PadEnc-e36865985abf9c4f31d34a9542c790f5baf8fe60.tar.bz2 ODR-PadEnc-e36865985abf9c4f31d34a9542c790f5baf8fe60.zip |
Replace PAD fifo by UNIX socket
Diffstat (limited to 'src/pad_common.cpp')
-rw-r--r-- | src/pad_common.cpp | 43 |
1 files changed, 12 insertions, 31 deletions
diff --git a/src/pad_common.cpp b/src/pad_common.cpp index 0c3f0b3..8ee2cd8 100644 --- a/src/pad_common.cpp +++ b/src/pad_common.cpp @@ -139,40 +139,21 @@ pad_t* PADPacketizer::GetPAD() { return FlushPAD(); } - -void PADPacketizer::WriteAllPADs(int output_fd, int limit, bool output_sole_fpad, bool output_xpad) { - size_t error_count = 0; - size_t error_bytes = 0; - - // output a limited amount of PADs (-1 = no limit) - for (int i = 0; i != limit; i++) { - pad_t* pad = output_xpad ? GetPAD() : FlushPAD(); - - // if only F-PAD present, abort (if desired) - if (pad->back() == FPAD_LEN && !output_sole_fpad) { - delete pad; - break; - } - - if (verbose >= 2) { - fprintf(stderr, "ODR-PadEnc writing PAD (%zu bytes):", pad->size()); - for (size_t j = 0; j < pad->size(); j++) { - const char sep = (j == (pad->size() - 1) || j == (pad->size() - 1 - FPAD_LEN)) ? '|' : ' '; - fprintf(stderr, "%c%02X", sep , (*pad)[j]); - } - fprintf(stderr, "\n"); - } - - if (write(output_fd, &(*pad)[0], pad->size()) != (signed) pad->size()) { - error_count++; - error_bytes += pad->size(); +std::vector<uint8_t> PADPacketizer::GetNextPAD(bool output_xpad) { + pad_t* pad = output_xpad ? GetPAD() : FlushPAD(); + + if (verbose >= 2) { + fprintf(stderr, "ODR-PadEnc writing PAD (%zu bytes):", pad->size()); + for (size_t j = 0; j < pad->size(); j++) { + const char sep = (j == (pad->size() - 1) || j == (pad->size() - 1 - FPAD_LEN)) ? '|' : ' '; + fprintf(stderr, "%c%02X", sep , (*pad)[j]); } - - delete pad; + fprintf(stderr, "\n"); } - if (error_count) - fprintf(stderr, "ODR-PadEnc Error: Could not write %zu PAD(s) with %zu Bytes\n", error_count, error_bytes); + std::vector<uint8_t> p = *pad; + delete pad; + return p; } |