diff options
| -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;          }      } | 
