Diff for /multiplexer/global.h between versions 1.3 and 1.4

version 1.3, 2001/03/29 13:27:43 version 1.4, 2001/04/03 21:14:33
Line 30 Line 30
 #define MAX_DATA_COMB 512  #define MAX_DATA_COMB 512
 #define HIGHWATER_COM 8  #define HIGHWATER_COM 8
   
 #define BUFSIZ_FACTOR 32 * 2  #define MAX_CTRL_OUTB (1 << 11)
   #define MAX_DATA_OUTB (MAX_CTRL_OUTB << 7)
 #define MAX_CTRL_OUTB 32 * BUFSIZ_FACTOR  
 #define MAX_DATA_OUTB 4096 * BUFSIZ_FACTOR  
 #define HIGHWATER_OUT 512  #define HIGHWATER_OUT 512
 #define MAX_WRITE_OUT (128 * 188)  #define MAX_WRITE_OUT (128 * 188)
 #define OUT_TRIGCOND  (MAX_DATA_OUTB / 2)  
   
 #define MAX_CTRL_INB  32 * BUFSIZ_FACTOR  #define MAX_CTRL_INB  (1 << 8)
 #define MAX_DATA_INB  4096 * BUFSIZ_FACTOR  #define MAX_DATA_INBV (MAX_CTRL_INB << 10)
 #define HIGHWATER_IN  (512 * 4 * 8)  #define MAX_DATA_INBA (MAX_CTRL_INB << 9)
 #define IN_TRIGCOND   (MAX_DATA_INB / 2)  #define MAX_DATA_INB  (MAX_CTRL_INB << 9)
   #define HIGHWATER_IN  (16 * 1024)
 #define MAX_DATA_RAWB 4096 * BUFSIZ_FACTOR  
 #define HIGHWATER_RAW (512 * 4 * 8)  #define MAX_DATA_RAWB (1 << 18)
 #define MAX_READ_IN   (1024 * 8)  #define HIGHWATER_RAW (16 * 1024)
   #define MAX_READ_IN   (8 * 1024)
   
 #define MAX_INSTREAM  64 /* ? */  #define MAX_INSTREAM  64 /* ? */
 #define MAX_INFILE    8  /* ? */  #define MAX_INFILE    8  /* ? */
Line 79 Line 77
 #define TRUE    1  #define TRUE    1
   
 #define byte __u8  #define byte __u8
   #define t_msec __s32
   
 typedef struct {  typedef struct {
   unsigned long base;    __u32 base;
   unsigned short ext;    __u16 ext;
   byte ba33;    byte ba33;
   boolean valid;    boolean valid;
 } clockref;  } clockref;
   
 typedef struct {  typedef struct {
   unsigned long base;    __u32 base;
   int msec;    t_msec msec;
 } conversion_base;  } conversion_base;
   
 typedef struct {  typedef struct {
   int index;    int index;
   int length;    int length;
   int sequence;    int sequence;
   int scramble;    t_msec msecread;
   int msecread;    t_msec msecpush;
   int msecpush;  
   clockref pcr;    clockref pcr;
   clockref opcr;    clockref opcr;
     byte scramble;
 } ctrl_buffer;  } ctrl_buffer;
   
 typedef struct {  typedef struct {
Line 141  typedef struct { Line 140  typedef struct {
 #define list_full(refr) \  #define list_full(refr) \
   (list_free(refr) == 0)    (list_free(refr) == 0)
   
   #define list_halffull(refr) \
     (list_size(refr) > ((refr).mask >> 1))
   
 #define list_incr(var,refr,incr) \  #define list_incr(var,refr,incr) \
   ((var) = (((var) + (incr)) & (refr).mask))    ((var) = (((var) + (incr)) & (refr).mask))
   
 /*  
 #define clockref2msec(cref) \  
   ((cref).base / 90)  
   
 #define msec2clockref(msec,cref) \  
   (((cref).base = (msec) * 90), ((cref).ext = 0), ((cref).ba33 = 0))  
 */  
   
 #define marker_check(data,val,mask) \  #define marker_check(data,val,mask) \
   (((data & mask) != val) ? \    (((data & mask) != val) ? \
     warn(LWAR,"Marker bit",EGLO,2,data,mask), TRUE : FALSE)      warn(LWAR,"Marker bit",EGLO,2,data,mask), TRUE : FALSE)
Line 166  typedef struct { Line 160  typedef struct {
   (malloc (sizeof(typ)-sizeof(((typ*)0)->u)+sizeof(((typ*)0)->u.fld)))    (malloc (sizeof(typ)-sizeof(((typ*)0)->u)+sizeof(((typ*)0)->u.fld)))
   
 typedef struct {  typedef struct {
   int sourceid;  
   int programnumber;    int programnumber;
     short sourceid;
   byte version;    byte version;
   byte *elemdnew[NUMBER_ELEMD];    byte *elemdnew[NUMBER_ELEMD];
 } mapreference;  } mapreference;
Line 177  typedef struct pmtdescr { Line 171  typedef struct pmtdescr {
   short pat_section;    short pat_section;
   byte pmt_version;    byte pmt_version;
   int programnumber;    int programnumber;
   int pcr_pid;    short pcr_pid;
   int pmt_pid;    short pmt_pid;
   int streams;    short streams;
   short stream[MAX_PMTSTREAMS];    short stream[MAX_PMTSTREAMS];
   byte streamtype[MAX_PMTSTREAMS];    byte streamtype[MAX_PMTSTREAMS];
   int descrlen;    short descrlen;
   byte elemdescr[MAX_PSI_SIZE];    byte elemdescr[MAX_PSI_SIZE];
 } pmt_descr;  } pmt_descr;
   
Line 202  typedef struct { Line 196  typedef struct {
   refr_data data;    refr_data data;
   char *name;    char *name;
   int handle;    int handle;
   struct stat stat;    int st_mode;
   struct pollfd *ufds;    struct pollfd *ufds;
   int skipped; /* undesired bytes skipped, total */    int skipped; /* undesired bytes skipped, total */
   int payload; /* split payload used total */    int payload; /* split payload used total */
   int total; /* split total (skipped, used, wasted) */    int total; /* split total (skipped, used, wasted) */
   int sequence; /* source counter for PES sequence */    int sequence; /* source counter for PES sequence */
   int opendatastreams;    short opendatastreams;
   int openmapstreams;    short openmapstreams;
   byte endaction;    byte endaction;
   boolean automatic; /* extract'o'use */    boolean automatic; /* extract'o'use */
   int repeatitions;    int repeatitions;
Line 222  typedef struct { Line 216  typedef struct {
     struct {      struct {
       struct {        struct {
         clockref scr;          clockref scr;
         long muxrate;          __u32 muxrate;
       } ph;        } ph;
       struct {        struct {
         long ratebound;          __u32 ratebound;
         int audiobound;          byte audiobound;
         int videobound;          byte videobound;
         boolean csps_flag;          boolean csps_flag;
         boolean fixed_flag;          boolean fixed_flag;
         boolean system_video_lock_flag;          boolean system_video_lock_flag;
Line 242  typedef struct { Line 236  typedef struct {
       struct streamdescr *stream[MAX_STRPERPS];        struct streamdescr *stream[MAX_STRPERPS];
     } ps;      } ps;
     struct {      struct {
       int transportstreamid;        __u16 transportstreamid;
       byte pat_version;        byte pat_version;
       byte newpat_version;        byte newpat_version;
       pmt_descr *pat;        pmt_descr *pat;
Line 256  typedef struct { Line 250  typedef struct {
   
 typedef struct {  typedef struct {
   int program_number;    int program_number;
   int pcr_pid;    short pcr_pid;
   int pmt_pid;    short pmt_pid;
   byte pmt_conticnt;    byte pmt_conticnt;
   byte pmt_version;    byte pmt_version;
   boolean changed;    boolean changed;
   int pat_section;    short pat_section;
   int streams;    short streams;
   struct streamdescr *stream[MAX_STRPERPRG];    struct streamdescr *stream[MAX_STRPERPRG];
 } prog_descr;  } prog_descr;
   
 typedef struct streamdescr {  typedef struct streamdescr {
   refr_ctrl ctrl;    refr_ctrl ctrl;
   refr_data data;    refr_data data;
   int sourceid; /* index into fdescr->u.xx.stream[] */    file_descr *fdescr;
     short sourceid; /* index into fdescr->u.xx.stream[] */
   byte stream_id; /* elementary stream id, table 2-35, etc */    byte stream_id; /* elementary stream id, table 2-35, etc */
   byte stream_type;    byte stream_type;
   byte version;    byte version;
     byte conticnt;
     byte endaction;
   byte *elemdvld[NUMBER_ELEMD]; /* as valid for out */    byte *elemdvld[NUMBER_ELEMD]; /* as valid for out */
   byte elemdescr[MAX_PSI_SIZE];    byte elemdescr[MAX_PSI_SIZE];
 /*what if a stream is leftupper corner in one prog, but elsewhere in another?*/  /*what if a stream is leftupper corner in one prog, but elsewhere in another?*/
   file_descr *fdescr;  
   byte conticnt;  
   byte endaction;  
   boolean isamap;    boolean isamap;
   union {    union {
     struct {      struct {
       int pid; /* splicets: 0010..1FFE, spliceps: ...FF */  
       struct streamdescr *mapstream;        struct streamdescr *mapstream;
         t_msec next_clockref;
         t_msec delta;
         conversion_base conv;
         t_msec lasttime;
         short pid; /* splicets: 0010..1FFE, spliceps: ...FF */
       boolean discontinuity;        boolean discontinuity;
       boolean trigger;        boolean trigger;
       boolean mention;        boolean mention;
       boolean has_clockref; /* in output */        boolean has_clockref; /* in output */
       int next_clockref;        short progs;
       int delta;  
       conversion_base conv;  
       int lasttime;  
       int progs;  
       prog_descr *pdescr[MAX_PRGFORSTR];        prog_descr *pdescr[MAX_PRGFORSTR];
     } d;      } d;
     struct {      struct {
       int msectime;        t_msec msectime;
       conversion_base conv;        conversion_base conv;
       int psi_length;        int psi_length;
       byte psi_data[MAX_PSI_SIZE+TS_PACKET_SIZE];        byte psi_data[MAX_PSI_SIZE+TS_PACKET_SIZE];
Line 307  typedef struct streamdescr { Line 301  typedef struct streamdescr {
   
 extern boolean timed_io;  extern boolean timed_io;
 extern boolean accept_weird_scr;  extern boolean accept_weird_scr;
 extern int global_delta;  extern t_msec global_delta;
 extern int psi_frequency_msec;  extern t_msec psi_frequency_msec;
 extern boolean psi_frequency_changed;  extern boolean psi_frequency_changed;
   
 int msec_now (void);  t_msec msec_now (void);
   
 void cref2msec (conversion_base *b,  void cref2msec (conversion_base *b,
     clockref c,      clockref c,
     int *m);      t_msec *m);
   
 void msec2cref (conversion_base *b,  void msec2cref (conversion_base *b,
     int m,      t_msec m,
     clockref *c);      clockref *c);
   
 void global_init (void);  void global_init (void);
Line 330  void global_init (void); Line 324  void global_init (void);
   
 typedef struct {  typedef struct {
   struct timeval tv;    struct timeval tv;
   int msec_now;    t_msec msec_now;
   int usec;    int usec;
   int tmo;    int tmo;
   int sr, si, so;    int sr, si, so;

Removed from v.1.3  
changed lines
  Added in v.1.4


LinuxTV legacy CVS <linuxtv.org/cvs>