aboutsummaryrefslogtreecommitdiffstats
path: root/src/pad_common.cpp
diff options
context:
space:
mode:
authorMatthias P. Braendli <matthias.braendli@mpb.li>2020-07-08 09:17:09 +0200
committerMatthias P. Braendli <matthias.braendli@mpb.li>2020-07-08 09:17:09 +0200
commite36865985abf9c4f31d34a9542c790f5baf8fe60 (patch)
tree8f35e10213ac643c30bda20275b5417dc1fedacd /src/pad_common.cpp
parent11767aaaf3b60791c7c29c6cfc55d676fd4cdf28 (diff)
downloadODR-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.cpp43
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;
}