diff options
Diffstat (limited to 'src/fig')
-rw-r--r-- | src/fig/FIG0.cpp | 19 |
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; } } |