diff options
Diffstat (limited to 'src/fig')
-rw-r--r-- | src/fig/FIG0.cpp | 19 | ||||
-rw-r--r-- | src/fig/FIG0.h | 2 |
2 files changed, 15 insertions, 6 deletions
diff --git a/src/fig/FIG0.cpp b/src/fig/FIG0.cpp index 8393c72..4ac4e5e 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; } } diff --git a/src/fig/FIG0.h b/src/fig/FIG0.h index 59ed1af..3a0113b 100644 --- a/src/fig/FIG0.h +++ b/src/fig/FIG0.h @@ -196,7 +196,7 @@ class FIG0_17 : public IFIG public: FIG0_17(FIGRuntimeInformation* rti); virtual FillStatus fill(uint8_t *buf, size_t max_size); - virtual FIG_rate repetition_rate(void) { return FIG_rate::A_B; } + virtual FIG_rate repetition_rate(void) { return FIG_rate::B; } virtual const int figtype(void) const { return 0; } virtual const int figextension(void) const { return 17; } |