|
|
@ -209,9 +209,6 @@ static void clear_program(MpegTSContext *ts, unsigned int programid) |
|
|
|
|
|
|
|
|
|
|
|
static void clear_programs(MpegTSContext *ts) |
|
|
|
static void clear_programs(MpegTSContext *ts) |
|
|
|
{ |
|
|
|
{ |
|
|
|
int i; |
|
|
|
|
|
|
|
for(i=0; i<ts->nb_prg; i++) |
|
|
|
|
|
|
|
clear_avprogram(ts, ts->prg[i].id); |
|
|
|
|
|
|
|
av_freep(&ts->prg); |
|
|
|
av_freep(&ts->prg); |
|
|
|
ts->nb_prg=0; |
|
|
|
ts->nb_prg=0; |
|
|
|
} |
|
|
|
} |
|
|
@ -1638,6 +1635,17 @@ static void pat_cb(MpegTSFilter *filter, const uint8_t *section, int section_len |
|
|
|
add_pid_to_pmt(ts, sid, pmt_pid); |
|
|
|
add_pid_to_pmt(ts, sid, pmt_pid); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (sid < 0) { |
|
|
|
|
|
|
|
int i,j; |
|
|
|
|
|
|
|
for (j=0; j<ts->stream->nb_programs; j++) { |
|
|
|
|
|
|
|
for (i=0; i<ts->nb_prg; i++) |
|
|
|
|
|
|
|
if (ts->prg[i].id == ts->stream->programs[j]->id) |
|
|
|
|
|
|
|
break; |
|
|
|
|
|
|
|
if (i==ts->nb_prg) |
|
|
|
|
|
|
|
clear_avprogram(ts, ts->stream->programs[j]->id); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
static void sdt_cb(MpegTSFilter *filter, const uint8_t *section, int section_len) |
|
|
|
static void sdt_cb(MpegTSFilter *filter, const uint8_t *section, int section_len) |
|
|
|