summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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;
}
}