From dd11d0dbbb7e39137f5e3bd9fae69f273340a5a2 Mon Sep 17 00:00:00 2001 From: Cosimo Tribe Date: Wed, 28 Sep 2022 10:06:00 +0200 Subject: [PATCH 1/3] Don't delay DLS transmission on overlap --- src/odr-padenc.cpp | 22 +++++++++++++++------- src/odr-padenc.h | 1 + 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/src/odr-padenc.cpp b/src/odr-padenc.cpp index 76439e7..9dd0c29 100644 --- a/src/odr-padenc.cpp +++ b/src/odr-padenc.cpp @@ -456,13 +456,20 @@ int PadEncoder::EncodeSlide() { int PadEncoder::EncodeLabel() { // skip insertion, if previous one not yet finished if (pad_packetizer.QueueContainsDG(DLSEncoder::APPTYPE_START)) { - fprintf(stderr, "ODR-PadEnc Warning: skipping label insertion, as previous one still in transmission!\n"); + if(!label_warn_shown) { + fprintf(stderr, "ODR-PadEnc Warning: there is a label already in transmission, delaying until the previous one ends.\n"); + label_warn_shown = true; + } + return 0; } else { + if(label_warn_shown) { + fprintf(stderr, "Previous label ended transmission, sending the new one.\n"); + label_warn_shown = false; + } dls_encoder.encodeLabel(options.dls_files[curr_dls_file], options.item_state_file, options.dl_params); + return 1; } - - return 0; } @@ -533,12 +540,13 @@ int PadEncoder::Encode(PadInterface& intf) { if (pad_timeline >= next_label_insertion) { // encode label - result = EncodeLabel(); - next_label_insertion += std::chrono::milliseconds(options.label_insertion); + int label_encode_result = 0; + label_encode_result = EncodeLabel(); + if(label_encode_result > 0) { + next_label_insertion += std::chrono::milliseconds(options.label_insertion); + } } } - if (result) - return result; // flush one PAD (considering X-PAD output interval) auto pad = pad_packetizer.GetNextPAD(xpad_interval_counter == 0); diff --git a/src/odr-padenc.h b/src/odr-padenc.h index c493d95..6a48516 100644 --- a/src/odr-padenc.h +++ b/src/odr-padenc.h @@ -82,6 +82,7 @@ class PadEncoder { SLSEncoder sls_encoder; SlideStore slides; bool slides_success; + bool label_warn_shown; int curr_dls_file; steady_clock::time_point next_slide; steady_clock::time_point next_label; From f472a7de8b6e4c8f9848963118b7bbad193fb8cc Mon Sep 17 00:00:00 2001 From: Cosimo Tribe Date: Wed, 28 Sep 2022 18:33:31 +0200 Subject: [PATCH 2/3] Uniform logging --- src/odr-padenc.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/odr-padenc.cpp b/src/odr-padenc.cpp index 9dd0c29..ead0473 100644 --- a/src/odr-padenc.cpp +++ b/src/odr-padenc.cpp @@ -464,7 +464,7 @@ int PadEncoder::EncodeLabel() { } else { if(label_warn_shown) { - fprintf(stderr, "Previous label ended transmission, sending the new one.\n"); + fprintf(stderr, "ODR-PadEnc Previous label ended transmission, sending the new one.\n"); label_warn_shown = false; } dls_encoder.encodeLabel(options.dls_files[curr_dls_file], options.item_state_file, options.dl_params); From 42bba9781feb5bf2a299a505abab32d92bf5fc10 Mon Sep 17 00:00:00 2001 From: Cosimo Tribe Date: Wed, 28 Sep 2022 18:33:55 +0200 Subject: [PATCH 3/3] Fix comment --- src/odr-padenc.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/odr-padenc.cpp b/src/odr-padenc.cpp index ead0473..49f48b2 100644 --- a/src/odr-padenc.cpp +++ b/src/odr-padenc.cpp @@ -454,7 +454,7 @@ int PadEncoder::EncodeSlide() { } int PadEncoder::EncodeLabel() { - // skip insertion, if previous one not yet finished + // delay insertion, if previous one not yet finished if (pad_packetizer.QueueContainsDG(DLSEncoder::APPTYPE_START)) { if(!label_warn_shown) { fprintf(stderr, "ODR-PadEnc Warning: there is a label already in transmission, delaying until the previous one ends.\n");