📄 vat.h
字号:
/* * Copyright (c) 1991 Regents of the University of California. * All rights reserved. * * Redistribution and use in source and binary forms are permitted * provided that the above copyright notice and this paragraph are * duplicated in all such forms and that any documentation, * advertising materials, and other materials related to such * distribution and use acknowledge that the software was developed * by the University of California, Lawrence Berkeley Laboratory, * Berkeley, CA. The name of the University may not be used to * endorse or promote products derived from this software without * specific prior written permission. * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. * * @(#) $Header: /net/u4/hgs/multimedia/nevot/nevot/RCS/vat.h,v 1.1 1995/03/08 16:49:26 hgs Exp $ (LBL) * modified for NEVOT by H. Schulzrinne */#ifndef vat_packet_h#define vat_packet_h/* * vat packet header (0 is MSB): * * 0 1 2 3 * 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ * | V | |T| | | | * | e | NSID |S| 0 | Audio | Conference ID | * | r | | | | Format | | * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ * | | * | Time Stamp (in audio samples) | * | | * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ * * protocol version (2 bits) * no. of speaker id's (6 bits) [= 0 if src address should be used as id] * flags (3 bits) * audio format (5 bits) * conference identifier (16 bits) * timestamp [in audio samples] (32 bits) * <0 to 63 4-byte speaker id's> * <audio data> */typedef struct { u_char nsid;#define NSID_MASK 0x3f u_char flags;#define VATHF_NEWTS 0x80 /* set if start of new talkspurt */#define VATHF_FMTMASK 0x1f /* audio format bits */ u_short confid; u_int ts;} vat_hdr_t;/* * Audio formats. * Numbers for 'standard' encodings are assigned 0 upwards. * Numbers for 'experimental' or non-standard encodings are * assigned from 30 downwards. 31 is reserved. The intent * is that the lower numbers will be globally known and widely * implemented & others will be used only between mutually * consenting programs. */typedef enum { VAT_AUDF_MULAW8 = 0, /* 64 kb/s 8KHz mu-law encoded PCM */ VAT_AUDF_CELP = 1, /* 4.8 kb/s FED-STD-1016 CELP */ VAT_AUDF_G721 = 2, /* 32 kb/s CCITT ADPCM */ VAT_AUDF_GSM = 3, /* 13 kb/s GSM */ VAT_AUDF_G723 = 4, /* 24 kb/s CCITT ADPCM */ VAT_AUDF_L16_16 = 26, /* L16, 16000 samples/sec */ VAT_AUDF_L16_44 = 27, /* L16, 44100 samples/sec, 2 channels */ VAT_AUDF_LPC4 = 28, /* 4.8 kb/s LPC, 4 frames */ VAT_AUDF_LPC1 = 29, /* 4.8 kb/s LPC, 1 frame */ VAT_AUDF_IDVI = 30, /* 32 kb/s Intel DVI ADPCM */ VAT_AUDF_UNDEF = 31 /* undefined */} vat_audio_t;/* * Structure of a vat control message (sent to the 'session' port). * All msgs have the same header: * protocol version (2 bits) * flags / misc (6 bits) * msg type (8 bits) * conference id * * An 'ID' message has a null-terminated ascii string giving the * site id string immediately following the header. * * A 'DONE' message has no other information. * * The structure of an IDLIST is described below. */struct CtrlMsgHdr { u_char flags; u_char type; u_short confid;};/* * An IDLIST message contains: * control msg hdr * number of site id's in this msg (8 bits) * audio flags (3 bits) * audio format (5 bits) * audio block size (16 bits) * <site id entries> * Each site id entry consists of a 4 byte site id followed by a * null terminated ascii id string. The string is padded with * nulls to the next 4 byte boundary. */struct IDMsgHdr { struct CtrlMsgHdr h; u_char nsids; u_char ainfo; u_short blksize;};#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -