File:  [DVB] / multiplexer / init.c
Revision 1.4: download - view: text, annotated - select for diffs
Mon May 14 19:29:17 2001 UTC (23 years ago) by oskar
Branches: MAIN
CVS tags: HEAD
Use memmove in command processing
Add tiny tool 'repeatts' to allow sending a TS-file (containing e.g. DSMCC)
repeatedly and with a simple timing. The tool also allows changing the current
file on the fly by giving a new command to stdin. See man page for details.

/*
 * ISO 13818 stream multiplexer
 * Copyright (C) 2001 Convergence Integrated Media GmbH Berlin
 * Author: Oskar Schirmer (oskar@convergence.de)
 */

/*
 * Module:  Init
 * Purpose: Initialization and start the dispatcher loop.
 */

#include "global.h"
#include "crc.h"
#include "error.h"
#include "input.h"
#include "output.h"
#include "splice.h"
#include "command.h"
#include "dispatch.h"

int main (int argc,
    char *argv[])
{
  int a;
  global_init ();
  a = msec_now ();
  gen_crc_table ();
  if (input_init ()) {
    if (output_init ()) {
      if (splice_init ()) {
        if (dispatch_init ()) {
          if (command_init (argc,&argv[0])) {
            dispatch ();
#ifdef DEBUG_TIMEPOLL
            warn (LDEB,"Global delta",EINI,0,0,global_delta);
            warn (LERR,"(msec) Exit Time ",EINI,0,0,
              msec_now () - a);
            warn (LERR,"(msec) Exit Clock",EINI,0,0,
              clock ()/(CLOCKS_PER_SEC/1000));
#endif
          }
          exit (EXIT_SUCCESS);
        } else {
          warn (LERR,"Dispatch Fail",EINI,0,6,0);
        }
      } else {
        warn (LERR,"Splice Fail",EINI,0,5,0);
      }
    } else {
      warn (LERR,"Output Fail",EINI,0,4,0);
    }
  } else {
    warn (LERR,"Input Fail",EINI,0,3,0);
  }
  exit (EXIT_FAILURE);
}


LinuxTV legacy CVS <linuxtv.org/cvs>