summaryrefslogtreecommitdiffstats
path: root/src/fig
diff options
context:
space:
mode:
authorMatthias P. Braendli <matthias.braendli@mpb.li>2017-06-09 10:52:52 +0200
committerMatthias P. Braendli <matthias.braendli@mpb.li>2017-06-09 10:52:52 +0200
commitddb7034211898f7a123777db312073b2fbf9fb1b (patch)
tree2b9f298f29bc3187eb197604992005868fd298c8 /src/fig
parentf1832dd977078a60b343673c60092d3d5d030398 (diff)
downloaddabmux-ddb7034211898f7a123777db312073b2fbf9fb1b.tar.gz
dabmux-ddb7034211898f7a123777db312073b2fbf9fb1b.tar.bz2
dabmux-ddb7034211898f7a123777db312073b2fbf9fb1b.zip
Properly insert FIG0/24 and set correct repetition rate
Diffstat (limited to 'src/fig')
-rw-r--r--src/fig/FIG0_24.cpp15
-rw-r--r--src/fig/FIG0_24.h2
2 files changed, 12 insertions, 5 deletions
diff --git a/src/fig/FIG0_24.cpp b/src/fig/FIG0_24.cpp
index af3f043..a790440 100644
--- a/src/fig/FIG0_24.cpp
+++ b/src/fig/FIG0_24.cpp
@@ -27,7 +27,13 @@
#include "fig/FIG0_24.h"
#include "utils.h"
-#warning "fig0/24 rate"
+/* FIG0/24 allows us to announce if a service is available in another ensemble.
+ * Things we do not support:
+ *
+ * - The CEI using length=0, because this information is not available in the
+ * remote control, and there is no runtime changes.
+ * - Announcing information about other ensembles (OE=1)
+ */
namespace FIC {
@@ -55,7 +61,7 @@ FIG0_24::FIG0_24(FIGRuntimeInformation *rti) :
FillStatus FIG0_24::fill(uint8_t *buf, size_t max_size)
{
-#define FIG0_24_TRACE debug
+#define FIG0_24_TRACE discard
using namespace std;
FillStatus fs;
@@ -109,10 +115,11 @@ FillStatus FIG0_24::fill(uint8_t *buf, size_t max_size)
fig0->FIGtypeNumber = 0;
fig0->Length = 1;
- fig0->CN = 0;
+ // CN according to ETSI TS 103 176, Clause 5.3.4.1
+ fig0->CN = (serviceFIG0_24 == ensemble->services.begin() ? 0 : 1);
fig0->OE = 0;
fig0->PD = isProgramme ? 0 : 1;
- fig0->Extension = 2;
+ fig0->Extension = 24;
buf += 2;
remaining -= 2;
}
diff --git a/src/fig/FIG0_24.h b/src/fig/FIG0_24.h
index 0faa3b9..4ccbd0c 100644
--- a/src/fig/FIG0_24.h
+++ b/src/fig/FIG0_24.h
@@ -38,7 +38,7 @@ class FIG0_24 : public IFIG
public:
FIG0_24(FIGRuntimeInformation* rti);
virtual FillStatus fill(uint8_t *buf, size_t max_size);
- virtual FIG_rate repetition_rate(void) { return FIG_rate::A; }
+ virtual FIG_rate repetition_rate(void) { return FIG_rate::E; }
virtual const int figtype(void) const { return 0; }
virtual const int figextension(void) const { return 24; }