mpegts: update AVProgram after pmt change
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:

committed by
Michael Niedermayer
parent
928727f951
commit
4c41fc88df
@@ -182,10 +182,25 @@ typedef struct PESContext {
|
|||||||
|
|
||||||
extern AVInputFormat ff_mpegts_demuxer;
|
extern AVInputFormat ff_mpegts_demuxer;
|
||||||
|
|
||||||
|
static void clear_avprogram(MpegTSContext *ts, unsigned int programid)
|
||||||
|
{
|
||||||
|
AVProgram *prg = NULL;
|
||||||
|
int i;
|
||||||
|
for(i=0; i<ts->stream->nb_programs; i++)
|
||||||
|
if(ts->stream->programs[i]->id == programid){
|
||||||
|
prg = ts->stream->programs[i];
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (!prg)
|
||||||
|
return;
|
||||||
|
prg->nb_stream_indexes = 0;
|
||||||
|
}
|
||||||
|
|
||||||
static void clear_program(MpegTSContext *ts, unsigned int programid)
|
static void clear_program(MpegTSContext *ts, unsigned int programid)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
|
clear_avprogram(ts, programid);
|
||||||
for(i=0; i<ts->nb_prg; i++)
|
for(i=0; i<ts->nb_prg; i++)
|
||||||
if(ts->prg[i].id == programid)
|
if(ts->prg[i].id == programid)
|
||||||
ts->prg[i].nb_pids = 0;
|
ts->prg[i].nb_pids = 0;
|
||||||
@@ -193,6 +208,9 @@ 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;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user