--- multiplexer/splicets.c 2001/03/29 13:27:43 1.2 +++ multiplexer/splicets.c 2001/04/03 21:14:33 1.3 @@ -51,8 +51,8 @@ static prog_descr *prog [MAX_OUTPROG]; static int nextpid; static stream_descr *outs [MAX_STRPERTS]; -static int next_psi_periodic; -static int psi_frequency_msec; +static t_msec next_psi_periodic; +static t_msec psi_frequency_msec; static boolean psi_frequency_changed; boolean splice_init (void) @@ -83,18 +83,6 @@ void splice_setpsifrequency (int freq) psi_frequency_changed = TRUE; } -static prog_descr *openprog (int programnb) -{ - int i; - i = progs; - while (--i >= 0) { - if (prog[i]->program_number == programnb) { - return (prog[i]); - } - } - return (NULL); -} - static int findapid (stream_descr *s) { boolean ok = TRUE; @@ -115,12 +103,24 @@ static int findapid (stream_descr *s) return (nextpid); } +prog_descr *splice_getprog (int programnb) +{ + int i; + i = progs; + while (--i >= 0) { + if (prog[i]->program_number == programnb) { + return (prog[i]); + } + } + return (NULL); +} + prog_descr *splice_openprog (int programnb) { prog_descr *p; int pid; warn (LIMP,"Open prog",ETSC,1,0,programnb); - p = openprog (programnb); + p = splice_getprog (programnb); if (p == NULL) { if (progs < MAX_OUTPROG) { if ((pid = findapid (PMT_STREAM)) > 0) { @@ -150,18 +150,9 @@ prog_descr *splice_openprog (int program void splice_closeprog (prog_descr *p) { int i, n; - stream_descr *s; - file_descr *f; warn (LIMP,"Close prog",ETSC,3,0,p->program_number); while (p->streams > 0) { - s = p->stream[0]; - input_delprog (s,p); - splice_delstream (p,s); - if (s->u.d.progs == 0) { - f = s->fdescr; - input_closestream (s); - input_closefileifunused (f); - } + unlink_streamprog (p->stream[0],p); } n = -1; if (p->pmt_pid >= 0) { @@ -187,11 +178,6 @@ void splice_closeprog (prog_descr *p) warn (LERR,"Close lost prog",ETSC,3,1,progs); } -boolean splice_emptyprog (prog_descr *p) -{ - return (p->streams == 0); -} - int splice_addstream (prog_descr *p, stream_descr *s, boolean force_sid) @@ -201,7 +187,7 @@ int splice_addstream (prog_descr *p, if (p->streams < MAX_STRPERPRG) { if ((pid = findapid (s)) > 0) { if (!force_sid) { - s->stream_id = input_findfreestreamid (p,s->stream_id); + s->stream_id = splice_findfreestreamid (p,s->stream_id); } p->stream[p->streams++] = s; p->changed = TRUE; @@ -284,7 +270,7 @@ static int make_pmtsection (stream_descr *d++ = 0; if (p->pcr_pid < 0) { stream_descr *pcrs; - pcrs = input_findpcrstream (p); + pcrs = splice_findpcrstream (p); if (pcrs == NULL) { pcrs = s; } @@ -356,7 +342,7 @@ stream_descr *process_something (stream_ int l, f, k; int privdata; int adapt_ext_len; - int now; + t_msec now; byte adapt_field_ctrl; byte adapt_flags1, adapt_flags2; warn (LDEB,"Splice TS",ETSC,0,0,s->ctrl.out); @@ -532,9 +518,6 @@ stream_descr *process_something (stream_ *d++ = adapt_flags1; if (adapt_flags1 & TS_ADAPT_PCRFLAG) { clockref pcr; -/* - msec2clockref (c->msecpush + s->u.d.delta,pcr); -*/ msec2cref (&s->u.d.conv,c->msecpush + s->u.d.delta,&pcr); *d++ = (pcr.base >> 25) | (pcr.ba33 << 7); *d++ = pcr.base >> 17;