Commit 357cbbca authored by Christophe Massiot's avatar Christophe Massiot

* src/dvbpsi.c: Fixed a long-standing issue in the section gathering. The

   code assumed that no more than 2 sections could be present in a TS
   packet, this is wrong. Consequently on some rare transponders (Hotbird
   11785 H), some PMT sections may be lost. This is a MAJOR bug of
   libdvbpsi and we should release a new version immediately.
parent ba10fd85
...@@ -223,6 +223,12 @@ void dvbpsi_PushPacket(dvbpsi_handle h_dvbpsi, uint8_t* p_data) ...@@ -223,6 +223,12 @@ void dvbpsi_PushPacket(dvbpsi_handle h_dvbpsi, uint8_t* p_data)
h_dvbpsi->p_current_section = NULL; h_dvbpsi->p_current_section = NULL;
} }
/* A TS packet may contain any number of sections, only the first
* new one is flagged by the pointer_field. If the next payload
* byte isn't 0xff then a new section starts. */
if(p_new_pos == NULL && i_available && *p_payload_pos != 0xff)
p_new_pos = p_payload_pos;
/* If there is a new section not being handled then go forward /* If there is a new section not being handled then go forward
in the packet */ in the packet */
if(p_new_pos) if(p_new_pos)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment