summaryrefslogtreecommitdiffstats
path: root/src/fig/FIG0.cpp
diff options
context:
space:
mode:
authorNick Piggott <nick@piggott.eu>2016-09-05 10:03:39 +0100
committerMatthias P. Braendli <matthias.braendli@mpb.li>2016-09-09 08:09:29 +0200
commit22c56630b362d6ae54c2ec42157a6d7a8503c71f (patch)
treee332c0657c9cc582f64f15e605e9efd95e37aef9 /src/fig/FIG0.cpp
parentdb32b970403eaf787ad015f242b8177de3f3f37b (diff)
downloaddabmux-22c56630b362d6ae54c2ec42157a6d7a8503c71f.tar.gz
dabmux-22c56630b362d6ae54c2ec42157a6d7a8503c71f.tar.bz2
dabmux-22c56630b362d6ae54c2ec42157a6d7a8503c71f.zip
Update to add EPG Profile information to User Application Bytes
Diffstat (limited to 'src/fig/FIG0.cpp')
-rw-r--r--src/fig/FIG0.cpp19
1 files changed, 14 insertions, 5 deletions
diff --git a/src/fig/FIG0.cpp b/src/fig/FIG0.cpp
index 8393c72..8c26dff 100644
--- a/src/fig/FIG0.cpp
+++ b/src/fig/FIG0.cpp
@@ -950,7 +950,7 @@ FillStatus FIG0_13::fill(uint8_t *buf, size_t max_size)
(*subchannel)->type == subchannel_type_t::Packet &&
(*componentFIG0_13)->packet.appType != 0xffff) {
- const int required_size = 5+2;
+ const int required_size = 5+2+2;
if (fig0 == NULL) {
if (remaining < 2 + required_size) {
@@ -980,10 +980,19 @@ FillStatus FIG0_13::fill(uint8_t *buf, size_t max_size)
FIG0_13_app* app = (FIG0_13_app*)buf;
app->setType((*componentFIG0_13)->packet.appType);
- app->length = 0;
- buf += 2;
- remaining -= 2;
- fig0->Length += 2;
+ if (app->typeLow == FIG0_13_APPTYPE_EPG) {
+ app->length = 2;
+ app->xpad = htons(0x0100);
+ /* xpad used to hold two bytes of EPG profile information
+ 01 = basic profile
+ 00 = list terminator */
+ }
+ else {
+ app->length = 0;
+ }
+ buf += 2 + app->length;
+ remaining -= 2 + app->length;
+ fig0->Length += 2 + app->length;
}
}