--- multiplexer/splicets.c 2001/05/02 16:27:12 1.8 +++ multiplexer/splicets.c 2001/05/03 13:21:45 1.9 @@ -52,11 +52,7 @@ static prog_descr *prog [MAX_OUTPROG]; static int nextpid; static stream_descr *outs [MAX_STRPERTS]; -static t_msec next_psi_periodic; -static t_msec psi_frequency_msec; -static boolean psi_frequency_changed; - -boolean splice_init (void) +boolean splice_specific_init (void) { progs = 0; nextpid = 0; @@ -68,8 +64,6 @@ boolean splice_init (void) psi_size = psi_done = 0; unit_start = TS_UNIT_START; transportstreamid = 0x4227; - psi_frequency_msec = 0; - psi_frequency_changed = FALSE; return (TRUE); } @@ -104,6 +98,19 @@ static int findapid (stream_descr *s) return (nextpid); } +void splice_all_configuration (void) +{ + int i; + if (configuration_on && configuration_changed) { + i = progs; + fprintf (stderr, configuration_total, i); + while (--i >= 0) { + splice_one_configuration (prog[i]); + } + configuration_changed = FALSE; + } +} + prog_descr *splice_getprog (int programnb) { int i; @@ -136,6 +143,7 @@ prog_descr *splice_openprog (int program p->streams = 0; prog[progs++] = p; changed_pat = TRUE; + configuration_changed = TRUE; } else { outs[pid] = NULL; warn (LERR,"Open prog",ETSC,1,1,0); @@ -152,6 +160,7 @@ void splice_closeprog (prog_descr *p) { int i, n; warn (LIMP,"Close prog",ETSC,3,0,p->program_number); + configuration_changed = TRUE; while (p->streams > 0) { unlink_streamprog (p->stream[0],p); } @@ -193,6 +202,7 @@ int splice_addstream (prog_descr *p, p->stream[p->streams++] = s; p->changed = TRUE; s->u.d.pid = pid; + configuration_changed = TRUE; } } return (pid); @@ -203,6 +213,7 @@ boolean splice_delstream (prog_descr *p, { int i; warn (LIMP,"Del stream",ETSC,5,0,s->u.d.pid); + configuration_changed = TRUE; i = p->streams; while (--i >= 0) { if (p->stream[i] == s) { @@ -283,6 +294,7 @@ static int make_pmtsection (stream_descr pcrs->u.d.has_clockref = TRUE; pcrs->u.d.next_clockref = msec_now () - MAX_MSEC_PCRDIST; p->pcr_pid = pcrs->u.d.pid; + configuration_changed = TRUE; } i = p->pcr_pid; *d++ = 0xE0 | (i >> 8);