diff options
-rw-r--r-- | doc/example.ini | 4 | ||||
-rw-r--r-- | src/DabMod.cpp | 9 |
2 files changed, 7 insertions, 6 deletions
diff --git a/doc/example.ini b/doc/example.ini index 985998d..a0cd110 100644 --- a/doc/example.ini +++ b/doc/example.ini @@ -56,9 +56,9 @@ loop=0 ; Listen for EDI data on a given UDP port ;transport=edi ;source=udp://:12002 -; Maximum delay in number of ETI frames that the EDI input is willing to wait +; Maximum delay in milliseconds that the EDI input is willing to wait ; before it timeouts -;edi_max_delay=10 +;edi_max_delay=240 ; No support yet for multicast, should work with and without PFT ; When recieving data using ZeroMQ, the source is the URI to be used diff --git a/src/DabMod.cpp b/src/DabMod.cpp index a5e3163..8065a5a 100644 --- a/src/DabMod.cpp +++ b/src/DabMod.cpp @@ -132,7 +132,7 @@ int launch_modulator(int argc, char* argv[]) std::string inputName = ""; std::string inputTransport = "file"; unsigned inputMaxFramesQueued = ZMQ_INPUT_MAX_FRAME_QUEUE; - int edi_max_delay = 0; + float edi_max_delay_ms = 0.0f; std::string outputName; int useZeroMQOutput = 0; @@ -388,7 +388,7 @@ int launch_modulator(int argc, char* argv[]) inputMaxFramesQueued = pt.get("input.max_frames_queued", ZMQ_INPUT_MAX_FRAME_QUEUE); - edi_max_delay = pt.get("input.edi_max_delay", 0); + edi_max_delay_ms = pt.get("input.edi_max_delay", 0.0f); inputName = pt.get("input.source", "/dev/stdin"); @@ -698,8 +698,9 @@ int launch_modulator(int argc, char* argv[]) EdiReader ediReader; EdiDecoder::ETIDecoder ediInput(ediReader); - if (edi_max_delay > 0) { - ediInput.setMaxDelay(edi_max_delay); + if (edi_max_delay_ms > 0.0f) { + // setMaxDelay wants number of AF packets, which correspond to 24ms ETI frames + ediInput.setMaxDelay(lroundf(edi_max_delay_ms / 24.0f)); } EdiUdpInput ediUdpInput(ediInput); |