int mpegts_input_current_weight ( mpegts_input_t *mi );
void mpegts_table_dispatch
- (mpegts_table_t *mt, const uint8_t *sec, int r);
+ (const uint8_t *sec, size_t r, void *mt);
void mpegts_table_release
(mpegts_table_t *mt);
void mpegts_table_add
for (i = 0; i < len; i++) {
mt = vec[i];
if (!mt->mt_destroyed && mt->mt_pid == pid)
- psi_section_reassemble(&mt->mt_sect, mtf->mtf_tsb, 0, NULL, mt);
+ psi_section_reassemble(&mt->mt_sect, mtf->mtf_tsb, 0,
+ mpegts_table_dispatch, mt);
mpegts_table_release(mt);
}
}
void
mpegts_table_dispatch
- ( mpegts_table_t *mt, const uint8_t *sec, int r )
+ ( const uint8_t *sec, size_t r, void *aux )
{
int tid, len, ret;
+ mpegts_table_t *mt = aux;
int chkcrc = mt->mt_flags & MT_CRC;
if(mt->mt_destroyed)
return -1;
ps->ps_offset = 0;
- cb(ps->ps_data, tsize - (crc ? 4 : 0), opaque);
+ if (cb)
+ cb(ps->ps_data, tsize - (crc ? 4 : 0), opaque);
return len - excess;
}