diff options
| author | Matthias P. Braendli <matthias.braendli@mpb.li> | 2021-02-10 12:05:03 +0100 | 
|---|---|---|
| committer | Matthias P. Braendli <matthias.braendli@mpb.li> | 2021-02-10 12:05:03 +0100 | 
| commit | 11419656f6d3eebf96005e6e8fe188b50d668d13 (patch) | |
| tree | 297a1da7330274719f98ae24544844818a359c3d | |
| parent | 97458a2e08d5bf4904553eb76467fb047e4719f4 (diff) | |
| download | dabmux-11419656f6d3eebf96005e6e8fe188b50d668d13.tar.gz dabmux-11419656f6d3eebf96005e6e8fe188b50d668d13.tar.bz2 dabmux-11419656f6d3eebf96005e6e8fe188b50d668d13.zip  | |
Common 64b6f10: Fix UDP EDI packet output spreading
| -rw-r--r-- | lib/edioutput/Transport.cpp | 11 | 
1 files changed, 7 insertions, 4 deletions
diff --git a/lib/edioutput/Transport.cpp b/lib/edioutput/Transport.cpp index cfed9ec..f8e5dc7 100644 --- a/lib/edioutput/Transport.cpp +++ b/lib/edioutput/Transport.cpp @@ -132,11 +132,14 @@ void Sender::write(const TagPacket& tagpacket)                      edi_fragments.size());          } -        /* Spread out the transmission of all fragments over 75% of the 24ms AF packet duration -         * to reduce the risk of losing fragments because of congestion. +        /* Spread out the transmission of all fragments over 25% of the 24ms AF packet duration +         * to reduce the risk of losing a burst of fragments because of congestion.           * -         * 75% was chosen so that other outputs still have time to do their thing. */ -        const auto inter_fragment_wait_time = std::chrono::microseconds(llrint(0.75 * 24000.0 / edi_fragments.size())); +         * 25% was chosen so that other outputs still have time to do their thing. */ +        auto inter_fragment_wait_time = std::chrono::microseconds(0); +        if (edi_fragments.size() > 1) { +            inter_fragment_wait_time = std::chrono::microseconds(llrint(0.25 * 24000.0 / edi_fragments.size())); +        }          // Send over ethernet          for (auto& edi_frag : edi_fragments) {  | 
