From b730255a7b8f572a2d6d905c128c7a86b75eca2e Mon Sep 17 00:00:00 2001 From: kpfleming Date: Tue, 6 Feb 2007 21:57:38 +0000 Subject: 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 --- zaptel.h | 76 +++++++++++++++++++++++++++++++++++----------------------------- 1 file changed, 42 insertions(+), 34 deletions(-) (limited to 'zaptel.h') 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); -- cgit v1.2.3