diff options
author | Matthias P. Braendli <matthias.braendli@mpb.li> | 2020-12-29 11:54:36 +0100 |
---|---|---|
committer | Matthias P. Braendli <matthias.braendli@mpb.li> | 2020-12-29 11:54:36 +0100 |
commit | ac13498dc219c74d8214a314d0341574ada0ceb3 (patch) | |
tree | 38be2f08137006bb94a763016f289359132d7c7d /src | |
parent | fbf20c6eb5c989687d2dcb8e97c8a2af9c51cc90 (diff) | |
download | ODR-AudioEnc-ac13498dc219c74d8214a314d0341574ada0ceb3.tar.gz ODR-AudioEnc-ac13498dc219c74d8214a314d0341574ada0ceb3.tar.bz2 ODR-AudioEnc-ac13498dc219c74d8214a314d0341574ada0ceb3.zip |
Make EDI output FEC configurable
Diffstat (limited to 'src')
-rw-r--r-- | src/Outputs.cpp | 8 | ||||
-rw-r--r-- | src/Outputs.h | 3 | ||||
-rw-r--r-- | src/odr-audioenc.cpp | 5 |
3 files changed, 14 insertions, 2 deletions
diff --git a/src/Outputs.cpp b/src/Outputs.cpp index 27ab365..66335cb 100644 --- a/src/Outputs.cpp +++ b/src/Outputs.cpp @@ -155,8 +155,6 @@ void EDI::add_udp_destination(const std::string& host, unsigned int port) // We cannot carry AF packets over UDP, because they would be too large. m_edi_conf.enable_pft = true; - - // TODO make FEC configurable } void EDI::add_tcp_destination(const std::string& host, unsigned int port) @@ -172,6 +170,12 @@ void EDI::add_tcp_destination(const std::string& host, unsigned int port) m_edi_conf.dump = false; } +void EDI::set_fec(int fec) +{ + m_edi_conf.enable_pft = true; + m_edi_conf.fec = fec; +} + bool EDI::enabled() const { return not m_edi_conf.destinations.empty(); diff --git a/src/Outputs.h b/src/Outputs.h index 1211841..7184206 100644 --- a/src/Outputs.h +++ b/src/Outputs.h @@ -138,6 +138,9 @@ class EDI: public Base { void add_udp_destination(const std::string& host, unsigned int port); void add_tcp_destination(const std::string& host, unsigned int port); + // Enables PFT layer and sets FEC + void set_fec(int fec); + void set_tist(bool enable, uint32_t delay_ms); bool enabled() const; diff --git a/src/odr-audioenc.cpp b/src/odr-audioenc.cpp index f6b8b94..db3447b 100644 --- a/src/odr-audioenc.cpp +++ b/src/odr-audioenc.cpp @@ -197,6 +197,7 @@ static void usage(const char* name) " If more than one ZMQ output is given, the socket\n" " will be connected to all listed endpoints.\n" " -e, --edi=URI EDI output uri, (e.g. 'tcp://localhost:7000')\n" + " --fec=FEC Set EDI output FEC\n" " -T, --timestamp-delay=DELAY_MS Enabled timestamps in EDI (requires TAI clock bulletin download) and\n" " add a delay (in milliseconds) to the timestamps carried in EDI\n" " -k, --secret-key=FILE Enable ZMQ encryption with the given secret key.\n" @@ -1356,6 +1357,7 @@ int main(int argc, char *argv[]) {"dabpsy", required_argument, 0, 5 }, {"device", required_argument, 0, 'd'}, {"edi", required_argument, 0, 'e'}, + {"fec", required_argument, 0, 8 }, {"timestamp-delay", required_argument, 0, 'T'}, {"decode", required_argument, 0, 6 }, {"format", required_argument, 0, 'f'}, @@ -1467,6 +1469,9 @@ int main(int argc, char *argv[]) return 1; } break; + case 8: // EDI output FEC + audio_enc.edi_output.set_fec(std::stoi(optarg)); + break; case 'a': audio_enc.selected_encoder = encoder_selection_t::toolame_dab; break; |