summaryrefslogtreecommitdiff
path: root/zaptel.h
diff options
context:
space:
mode:
authorkpfleming <kpfleming@5390a7c7-147a-4af0-8ec9-7488f05a26cb>2007-02-06 21:57:38 +0000
committerkpfleming <kpfleming@5390a7c7-147a-4af0-8ec9-7488f05a26cb>2007-02-06 21:57:38 +0000
commitb730255a7b8f572a2d6d905c128c7a86b75eca2e (patch)
treeb7f85ebc7a1c02da998e190fdc590f4e961e4abe /zaptel.h
parent7c83bf68acb1c9515cd044de00d86f03953a8958 (diff)
revert transcoder driver to last version that passed PQ testing... improved version will come back once testing has been completed and bugs are found/fixed
git-svn-id: http://svn.digium.com/svn/zaptel/branches/1.2@2092 5390a7c7-147a-4af0-8ec9-7488f05a26cb
Diffstat (limited to 'zaptel.h')
-rw-r--r--zaptel.h76
1 files changed, 42 insertions, 34 deletions
diff --git a/zaptel.h b/zaptel.h
index b58261d..cf786ad 100644
--- a/zaptel.h
+++ b/zaptel.h
@@ -676,19 +676,25 @@ void *data;
#define ZT_TRANSCODE_MAGIC 0x74a9c0de
/* Operations */
-#define ZT_TCOP_ALLOCATE 1 /* Allocate DTE channel */
+#define ZT_TCOP_ALLOCATE 1 /* Allocate/reset DTE channel */
#define ZT_TCOP_TRANSCODE 2 /* Begin transcoding a block */
#define ZT_TCOP_GETINFO 3 /* Get information (use zt_transcode_info) */
#define ZT_TCOP_RELEASE 4 /* Release DTE channel */
#define ZT_TCOP_TEST 5 /* test DTE device */
-struct zt_transcode_info {
- __u32 op;
- __u32 tcnum;
- __u8 name[80];
- __u32 numchannels;
- __u32 srcfmts;
- __u32 dstfmts;
-};
+typedef struct zt_transcode_info {
+ unsigned int op;
+ unsigned int tcnum;
+ char name[80];
+ int numchannels;
+ unsigned int srcfmts;
+ unsigned int dstfmts;
+} ZT_TRANSCODE_INFO;
+
+#define ZT_TCCONF_USETS (1 << 0) /* Use/update timestamp field */
+#define ZT_TCCONF_USESEQ (1 << 1) /* Use/update seqno field */
+
+#define ZT_TCSTAT_DSTRDY (1 << 0) /* Destination data is ready */
+#define ZT_TCSTAT_DSTBUSY (1 << 1) /* Destination data is outstanding */
#define __ZT_TRANSCODE_BUFSIZ 16384
#define ZT_TRANSCODE_HDRLEN 256
@@ -696,23 +702,27 @@ struct zt_transcode_info {
#define ZT_TRANSCODE_DSTOFFSET (((ZT_TRANSCODE_BUFSIZ) / 2) + ZT_TRANSCODE_HDRLEN)
#define ZT_TRANSCODE_SRCOFFSET (((ZT_TRANSCODE_BUFSIZ) / 2) + ZT_TRANSCODE_HDRLEN)
-struct zt_transcode_header {
- __u32 srcfmt; /* See formats.h -- use TCOP_RESET when you change */
- __u32 srcoffset; /* In bytes -- written by user */
- __u32 srclen; /* In bytes -- written by user */
-
- __u32 dstfmt; /* See formats.h -- use TCOP_RESET when you change */
- __u32 dstoffset; /* In bytes -- written by user */
- __u32 dstlen; /* In bytes -- read by user */
- __u32 dstsamples; /* In timestamp units -- read by user */
-
- __u32 magic; /* Magic value -- ZT_TRANSCODE_MAGIC, read by user */
- __u32 config; /* Read/write by user */
- __u32 busy:1; /* Read/write by user */
- __u8 userhdr[ZT_TRANSCODE_HDRLEN - (sizeof(__u32) * 10)]; /* Storage for user parameters */
- __u8 srcdata[ZT_TRANSCODE_BUFSIZ / 2]; /* Storage of source data */
- __u8 dstdata[ZT_TRANSCODE_BUFSIZ / 2]; /* Storage of destination data */
-};
+typedef struct zt_transcode_header {
+ unsigned int srcfmt; /* See formats.h -- use TCOP_RESET when you change */
+ unsigned int srcoffset; /* In bytes -- written by user */
+ unsigned int srclen; /* In bytes -- written by user */
+ unsigned int srctimestamp; /* In samples -- written by user (only used if ZT_TCCONF_USETS is set) */
+ unsigned int srcseqno; /* In units -- written by user (only used if ZT_TCCONF_USESEQ is set) */
+
+ unsigned int dstfmt; /* See formats.h -- use TCOP_RESET when you change */
+ unsigned int dstoffset; /* In bytes -- written by user */
+ unsigned int dsttimestamp; /* In samples -- read by user */
+ unsigned int dstseqno; /* In units -- read by user (only used if ZT_TCCONF_USESEQ is set) */
+ unsigned int dstlen; /* In bytes -- read by user */
+ unsigned int dstsamples; /* In timestamp units -- read by user */
+
+ unsigned int magic; /* Magic value -- ZT_TRANSCODE_MAGIC, read by user */
+ unsigned int config; /* Read/write by user */
+ unsigned int status; /* Read/write by user */
+ unsigned char userhdr[ZT_TRANSCODE_HDRLEN - (sizeof(unsigned int) * 14)]; /* Storage for user parameters */
+ unsigned char srcdata[ZT_TRANSCODE_BUFSIZ / 2]; /* Storage of source data */
+ unsigned char dstdata[ZT_TRANSCODE_BUFSIZ / 2]; /* Storage of destination data */
+} ZT_TRANSCODE_HEADER;
struct zt_ring_cadence {
int ringcadence [ZT_MAX_CADENCE];
@@ -1378,21 +1388,20 @@ struct zt_transcoder_channel {
wait_queue_head_t ready;
int errorstatus;
int offset;
- struct {
- unsigned int chan_built;
- unsigned int busy;
- unsigned int transient;
- unsigned int have_reference;
- } flags;
+ unsigned int chan_built;
unsigned int built_fmts;
+ unsigned int flags;
unsigned int srcfmt;
unsigned int dstfmt;
struct zt_transcode_header *tch;
};
+#define ZT_TC_FLAG_BUSY (1 << 0)
+#define ZT_TC_FLAG_TRANSIENT (1 << 1)
+
+
struct zt_transcoder {
struct zt_transcoder *next;
- struct module *owner;
char name[80];
int numchannels;
unsigned int srcfmts;
@@ -1464,7 +1473,6 @@ int zt_transcoder_unregister(struct zt_transcoder *tc);
/* Alert a transcoder */
int zt_transcoder_alert(struct zt_transcoder_channel *ztc);
-
/* Unregister a span */
int zt_unregister(struct zt_span *span);