summaryrefslogtreecommitdiff
path: root/linux/drivers/media/dvb/dvb-core
diff options
context:
space:
mode:
authorHolger Waechtler <devnull@localhost>2002-10-17 18:19:04 +0000
committerHolger Waechtler <devnull@localhost>2002-10-17 18:19:04 +0000
commita374726664cb059a2e249a42d2c255697d3742f5 (patch)
tree7eb9e17739a36bc11c9b5a3ee242cc2c9873e5b6 /linux/drivers/media/dvb/dvb-core
parent159216924d61b459ce9a843f94fad81513eb25cf (diff)
downloadmediapointer-dvb-s2-a374726664cb059a2e249a42d2c255697d3742f5.tar.gz
mediapointer-dvb-s2-a374726664cb059a2e249a42d2c255697d3742f5.tar.bz2
s/weißnichwas/durch_weißnichwas/g
Diffstat (limited to 'linux/drivers/media/dvb/dvb-core')
-rw-r--r--linux/drivers/media/dvb/dvb-core/dvb_demux.c122
-rw-r--r--linux/drivers/media/dvb/dvb-core/dvb_demux.h41
2 files changed, 81 insertions, 82 deletions
diff --git a/linux/drivers/media/dvb/dvb-core/dvb_demux.c b/linux/drivers/media/dvb/dvb-core/dvb_demux.c
index 4920d3f6f..c49cb0f6a 100644
--- a/linux/drivers/media/dvb/dvb-core/dvb_demux.c
+++ b/linux/drivers/media/dvb/dvb-core/dvb_demux.c
@@ -182,7 +182,7 @@ void dvb_set_crc32(u8 *data, int length)
******************************************************************************/
static inline int
-dvb_dmx_swfilter_payload(dvb_demux_feed_t *dvbdmxfeed, const u8 *buf)
+dvb_dmx_swfilter_payload(struct dvb_demux_feed *dvbdmxfeed, const u8 *buf)
{
int p, count;
//int ccok;
@@ -208,8 +208,8 @@ dvb_dmx_swfilter_payload(dvb_demux_feed_t *dvbdmxfeed, const u8 *buf)
static int
-dvb_dmx_swfilter_sectionfilter(dvb_demux_feed_t *dvbdmxfeed,
- dvb_demux_filter_t *f)
+dvb_dmx_swfilter_sectionfilter(struct dvb_demux_feed *dvbdmxfeed,
+ struct dvb_demux_filter *f)
{
dmx_section_filter_t *filter=&f->filter;
int i;
@@ -229,10 +229,10 @@ dvb_dmx_swfilter_sectionfilter(dvb_demux_feed_t *dvbdmxfeed,
}
static inline int
-dvb_dmx_swfilter_section_feed(dvb_demux_feed_t *dvbdmxfeed)
+dvb_dmx_swfilter_section_feed(struct dvb_demux_feed *dvbdmxfeed)
{
u8 *buf=dvbdmxfeed->secbuf;
- dvb_demux_filter_t *f;
+ struct dvb_demux_filter *f;
if (dvbdmxfeed->secbufp!=dvbdmxfeed->seclen)
return -1;
@@ -251,7 +251,7 @@ dvb_dmx_swfilter_section_feed(dvb_demux_feed_t *dvbdmxfeed)
}
static inline int
-dvb_dmx_swfilter_section_packet(dvb_demux_feed_t *dvbdmxfeed, const u8 *buf)
+dvb_dmx_swfilter_section_packet(struct dvb_demux_feed *dvbdmxfeed, const u8 *buf)
{
int p, count;
int ccok, rest;
@@ -346,7 +346,7 @@ dvb_dmx_swfilter_section_packet(dvb_demux_feed_t *dvbdmxfeed, const u8 *buf)
}
static inline void
-dvb_dmx_swfilter_packet_type(dvb_demux_feed_t *dvbdmxfeed, const u8 *buf)
+dvb_dmx_swfilter_packet_type(struct dvb_demux_feed *dvbdmxfeed, const u8 *buf)
{
switch(dvbdmxfeed->type) {
case DMX_TYPE_TS:
@@ -378,9 +378,9 @@ dvb_dmx_swfilter_packet_type(dvb_demux_feed_t *dvbdmxfeed, const u8 *buf)
}
void inline
-dvb_dmx_swfilter_packet(dvb_demux_t *dvbdmx, const u8 *buf)
+dvb_dmx_swfilter_packet(struct dvb_demux *dvbdmx, const u8 *buf)
{
- dvb_demux_feed_t *dvbdmxfeed;
+ struct dvb_demux_feed *dvbdmxfeed;
if (!(dvbdmxfeed=dvbdmx->pid2feed[ts_pid(buf)]))
return;
@@ -388,9 +388,9 @@ dvb_dmx_swfilter_packet(dvb_demux_t *dvbdmx, const u8 *buf)
}
void
-dvb_dmx_swfilter_packets(dvb_demux_t *dvbdmx, const u8 *buf, int count)
+dvb_dmx_swfilter_packets(struct dvb_demux *dvbdmx, const u8 *buf, int count)
{
- dvb_demux_feed_t *dvbdmxfeed;
+ struct dvb_demux_feed *dvbdmxfeed;
spin_lock(&dvbdmx->lock);
if ((dvbdmxfeed=dvbdmx->pid2feed[0x2000]))
@@ -405,7 +405,7 @@ dvb_dmx_swfilter_packets(dvb_demux_t *dvbdmx, const u8 *buf, int count)
}
static inline void
-dvb_dmx_swfilter(dvb_demux_t *dvbdmx, const u8 *buf, size_t count)
+dvb_dmx_swfilter(struct dvb_demux *dvbdmx, const u8 *buf, size_t count)
{
int p=0,i, j;
@@ -444,8 +444,8 @@ dvb_dmx_swfilter(dvb_demux_t *dvbdmx, const u8 *buf, size_t count)
******************************************************************************
******************************************************************************/
-static dvb_demux_filter_t *
-dvb_dmx_filter_alloc(dvb_demux_t *dvbdmx)
+static struct dvb_demux_filter *
+dvb_dmx_filter_alloc(struct dvb_demux *dvbdmx)
{
int i;
@@ -458,8 +458,8 @@ dvb_dmx_filter_alloc(dvb_demux_t *dvbdmx)
return &dvbdmx->filter[i];
}
-static dvb_demux_feed_t *
-dvb_dmx_feed_alloc(dvb_demux_t *dvbdmx)
+static struct dvb_demux_feed *
+dvb_dmx_feed_alloc(struct dvb_demux *dvbdmx)
{
int i;
@@ -478,10 +478,10 @@ dvb_dmx_feed_alloc(dvb_demux_t *dvbdmx)
******************************************************************************/
static int
-dmx_pid_set(u16 pid, dvb_demux_feed_t *dvbdmxfeed)
+dmx_pid_set(u16 pid, struct dvb_demux_feed *dvbdmxfeed)
{
- dvb_demux_t *dvbdmx=dvbdmxfeed->demux;
- dvb_demux_feed_t **pid2feed=dvbdmx->pid2feed;
+ struct dvb_demux *dvbdmx=dvbdmxfeed->demux;
+ struct dvb_demux_feed **pid2feed=dvbdmx->pid2feed;
if (pid>DMX_MAX_PID)
return -EINVAL;
@@ -510,8 +510,8 @@ dmx_ts_feed_set(struct dmx_ts_feed_s* feed,
struct timespec timeout
)
{
- dvb_demux_feed_t *dvbdmxfeed=(dvb_demux_feed_t *) feed;
- dvb_demux_t *dvbdmx=dvbdmxfeed->demux;
+ struct dvb_demux_feed *dvbdmxfeed=(struct dvb_demux_feed *) feed;
+ struct dvb_demux *dvbdmx=dvbdmxfeed->demux;
int ret;
if (down_interruptible (&dvbdmx->mutex))
@@ -576,8 +576,8 @@ dmx_ts_feed_set(struct dmx_ts_feed_s* feed,
static int
dmx_ts_feed_start_filtering(struct dmx_ts_feed_s* feed)
{
- dvb_demux_feed_t *dvbdmxfeed=(dvb_demux_feed_t *) feed;
- dvb_demux_t *dvbdmx=dvbdmxfeed->demux;
+ struct dvb_demux_feed *dvbdmxfeed=(struct dvb_demux_feed *) feed;
+ struct dvb_demux *dvbdmx=dvbdmxfeed->demux;
int ret;
if (down_interruptible (&dvbdmx->mutex))
@@ -608,8 +608,8 @@ dmx_ts_feed_start_filtering(struct dmx_ts_feed_s* feed)
static int
dmx_ts_feed_stop_filtering(struct dmx_ts_feed_s* feed)
{
- dvb_demux_feed_t *dvbdmxfeed=(dvb_demux_feed_t *) feed;
- dvb_demux_t *dvbdmx=dvbdmxfeed->demux;
+ struct dvb_demux_feed *dvbdmxfeed=(struct dvb_demux_feed *) feed;
+ struct dvb_demux *dvbdmx=dvbdmxfeed->demux;
int ret;
if (down_interruptible (&dvbdmx->mutex))
@@ -637,8 +637,8 @@ static int dvbdmx_allocate_ts_feed(dmx_demux_t *demux,
dmx_ts_feed_t **feed,
dmx_ts_cb callback)
{
- dvb_demux_t *dvbdmx=(dvb_demux_t *) demux;
- dvb_demux_feed_t *dvbdmxfeed;
+ struct dvb_demux *dvbdmx=(struct dvb_demux *) demux;
+ struct dvb_demux_feed *dvbdmxfeed;
if (down_interruptible (&dvbdmx->mutex))
return -ERESTARTSYS;
@@ -679,8 +679,8 @@ static int dvbdmx_allocate_ts_feed(dmx_demux_t *demux,
static int dvbdmx_release_ts_feed(dmx_demux_t *demux, dmx_ts_feed_t *feed)
{
- dvb_demux_t *dvbdmx=(dvb_demux_t *) demux;
- dvb_demux_feed_t *dvbdmxfeed=(dvb_demux_feed_t *) feed;
+ struct dvb_demux *dvbdmx=(struct dvb_demux *) demux;
+ struct dvb_demux_feed *dvbdmxfeed=(struct dvb_demux_feed *) feed;
if (down_interruptible (&dvbdmx->mutex))
return -ERESTARTSYS;
@@ -715,9 +715,9 @@ static int
dmx_section_feed_allocate_filter(struct dmx_section_feed_s* feed,
dmx_section_filter_t** filter)
{
- dvb_demux_feed_t *dvbdmxfeed=(dvb_demux_feed_t *) feed;
- dvb_demux_t *dvbdemux=dvbdmxfeed->demux;
- dvb_demux_filter_t *dvbdmxfilter;
+ struct dvb_demux_feed *dvbdmxfeed=(struct dvb_demux_feed *) feed;
+ struct dvb_demux *dvbdemux=dvbdmxfeed->demux;
+ struct dvb_demux_filter *dvbdmxfilter;
if (down_interruptible (&dvbdemux->mutex))
return -ERESTARTSYS;
@@ -747,8 +747,8 @@ dmx_section_feed_set(struct dmx_section_feed_s* feed,
u16 pid, size_t circular_buffer_size,
int descramble, int check_crc)
{
- dvb_demux_feed_t *dvbdmxfeed=(dvb_demux_feed_t *) feed;
- dvb_demux_t *dvbdmx=dvbdmxfeed->demux;
+ struct dvb_demux_feed *dvbdmxfeed=(struct dvb_demux_feed *) feed;
+ struct dvb_demux *dvbdmx=dvbdmxfeed->demux;
if (pid>0x1fff)
return -EINVAL;
@@ -789,11 +789,11 @@ dmx_section_feed_set(struct dmx_section_feed_s* feed,
return 0;
}
-static void prepare_secfilters(dvb_demux_feed_t *dvbdmxfeed)
+static void prepare_secfilters(struct dvb_demux_feed *dvbdmxfeed)
{
int i;
dmx_section_filter_t *sf;
- dvb_demux_filter_t *f;
+ struct dvb_demux_filter *f;
u8 mask, mode, doneq;
if (!(f=dvbdmxfeed->filter))
@@ -815,8 +815,8 @@ static void prepare_secfilters(dvb_demux_feed_t *dvbdmxfeed)
static int
dmx_section_feed_start_filtering(dmx_section_feed_t *feed)
{
- dvb_demux_feed_t *dvbdmxfeed=(dvb_demux_feed_t *) feed;
- dvb_demux_t *dvbdmx=dvbdmxfeed->demux;
+ struct dvb_demux_feed *dvbdmxfeed=(struct dvb_demux_feed *) feed;
+ struct dvb_demux *dvbdmx=dvbdmxfeed->demux;
int ret;
if (down_interruptible (&dvbdmx->mutex))
@@ -854,8 +854,8 @@ dmx_section_feed_start_filtering(dmx_section_feed_t *feed)
static int
dmx_section_feed_stop_filtering(struct dmx_section_feed_s* feed)
{
- dvb_demux_feed_t *dvbdmxfeed=(dvb_demux_feed_t *) feed;
- dvb_demux_t *dvbdmx=dvbdmxfeed->demux;
+ struct dvb_demux_feed *dvbdmxfeed=(struct dvb_demux_feed *) feed;
+ struct dvb_demux *dvbdmx=dvbdmxfeed->demux;
int ret;
if (down_interruptible (&dvbdmx->mutex))
@@ -878,9 +878,9 @@ static int
dmx_section_feed_release_filter(dmx_section_feed_t *feed,
dmx_section_filter_t* filter)
{
- dvb_demux_filter_t *dvbdmxfilter=(dvb_demux_filter_t *) filter, *f;
- dvb_demux_feed_t *dvbdmxfeed=(dvb_demux_feed_t *) feed;
- dvb_demux_t *dvbdmx=dvbdmxfeed->demux;
+ struct dvb_demux_filter *dvbdmxfilter=(struct dvb_demux_filter *) filter, *f;
+ struct dvb_demux_feed *dvbdmxfeed=(struct dvb_demux_feed *) feed;
+ struct dvb_demux *dvbdmx=dvbdmxfeed->demux;
if (down_interruptible (&dvbdmx->mutex))
return -ERESTARTSYS;
@@ -911,8 +911,8 @@ static int dvbdmx_allocate_section_feed(dmx_demux_t *demux,
dmx_section_feed_t **feed,
dmx_section_cb callback)
{
- dvb_demux_t *dvbdmx=(dvb_demux_t *) demux;
- dvb_demux_feed_t *dvbdmxfeed;
+ struct dvb_demux *dvbdmx=(struct dvb_demux *) demux;
+ struct dvb_demux_feed *dvbdmxfeed;
if (down_interruptible (&dvbdmx->mutex))
return -ERESTARTSYS;
@@ -946,8 +946,8 @@ static int dvbdmx_allocate_section_feed(dmx_demux_t *demux,
static int dvbdmx_release_section_feed(dmx_demux_t *demux,
dmx_section_feed_t *feed)
{
- dvb_demux_feed_t *dvbdmxfeed=(dvb_demux_feed_t *) feed;
- dvb_demux_t *dvbdmx=(dvb_demux_t *) demux;
+ struct dvb_demux_feed *dvbdmxfeed=(struct dvb_demux_feed *) feed;
+ struct dvb_demux *dvbdmx=(struct dvb_demux *) demux;
if (down_interruptible (&dvbdmx->mutex))
return -ERESTARTSYS;
@@ -977,7 +977,7 @@ static int dvbdmx_release_section_feed(dmx_demux_t *demux,
static int dvbdmx_open(dmx_demux_t *demux)
{
- dvb_demux_t *dvbdemux=(dvb_demux_t *) demux;
+ struct dvb_demux *dvbdemux=(struct dvb_demux *) demux;
if (dvbdemux->users>=MAX_DVB_DEMUX_USERS)
return -EUSERS;
@@ -987,7 +987,7 @@ static int dvbdmx_open(dmx_demux_t *demux)
static int dvbdmx_close(struct dmx_demux_s *demux)
{
- dvb_demux_t *dvbdemux=(dvb_demux_t *) demux;
+ struct dvb_demux *dvbdemux=(struct dvb_demux *) demux;
if (dvbdemux->users==0)
return -ENODEV;
@@ -998,7 +998,7 @@ static int dvbdmx_close(struct dmx_demux_s *demux)
static int dvbdmx_write(dmx_demux_t *demux, const char *buf, size_t count)
{
- dvb_demux_t *dvbdemux=(dvb_demux_t *) demux;
+ struct dvb_demux *dvbdemux=(struct dvb_demux *) demux;
if ((!demux->frontend) ||
(demux->frontend->source!=DMX_MEMORY_FE))
@@ -1016,7 +1016,7 @@ static int dvbdmx_write(dmx_demux_t *demux, const char *buf, size_t count)
static int dvbdmx_add_frontend(dmx_demux_t *demux,
dmx_frontend_t *frontend)
{
- dvb_demux_t *dvbdemux=(dvb_demux_t *) demux;
+ struct dvb_demux *dvbdemux=(struct dvb_demux *) demux;
struct list_head *pos, *head=&dvbdemux->frontend_list;
if (!(frontend->id && frontend->vendor && frontend->model))
@@ -1035,7 +1035,7 @@ static int
dvbdmx_remove_frontend(dmx_demux_t *demux,
dmx_frontend_t *frontend)
{
- dvb_demux_t *dvbdemux=(dvb_demux_t *) demux;
+ struct dvb_demux *dvbdemux=(struct dvb_demux *) demux;
struct list_head *pos, *n, *head=&dvbdemux->frontend_list;
list_for_each_safe (pos, n, head)
@@ -1052,7 +1052,7 @@ dvbdmx_remove_frontend(dmx_demux_t *demux,
static struct list_head *
dvbdmx_get_frontends(dmx_demux_t *demux)
{
- dvb_demux_t *dvbdemux=(dvb_demux_t *) demux;
+ struct dvb_demux *dvbdemux=(struct dvb_demux *) demux;
if (list_empty(&dvbdemux->frontend_list))
return NULL;
@@ -1062,7 +1062,7 @@ dvbdmx_get_frontends(dmx_demux_t *demux)
static int dvbdmx_connect_frontend(dmx_demux_t *demux,
dmx_frontend_t *frontend)
{
- dvb_demux_t *dvbdemux=(dvb_demux_t *) demux;
+ struct dvb_demux *dvbdemux=(struct dvb_demux *) demux;
if (demux->frontend)
return -EINVAL;
@@ -1077,7 +1077,7 @@ static int dvbdmx_connect_frontend(dmx_demux_t *demux,
static int dvbdmx_disconnect_frontend(dmx_demux_t *demux)
{
- dvb_demux_t *dvbdemux=(dvb_demux_t *) demux;
+ struct dvb_demux *dvbdemux=(struct dvb_demux *) demux;
if (down_interruptible (&dvbdemux->mutex))
return -ERESTARTSYS;
@@ -1089,24 +1089,24 @@ static int dvbdmx_disconnect_frontend(dmx_demux_t *demux)
static int dvbdmx_get_pes_pids(dmx_demux_t *demux, u16 *pids)
{
- dvb_demux_t *dvbdemux=(dvb_demux_t *) demux;
+ struct dvb_demux *dvbdemux=(struct dvb_demux *) demux;
memcpy(pids, dvbdemux->pids, 5*sizeof(u16));
return 0;
}
int
-dvb_dmx_init(dvb_demux_t *dvbdemux)
+dvb_dmx_init(struct dvb_demux *dvbdemux)
{
int i;
dmx_demux_t *dmx=&dvbdemux->dmx;
dvbdemux->users=0;
- dvbdemux->filter=vmalloc(dvbdemux->filternum*sizeof(dvb_demux_filter_t));
+ dvbdemux->filter=vmalloc(dvbdemux->filternum*sizeof(struct dvb_demux_filter));
if (!dvbdemux->filter)
return -ENOMEM;
- dvbdemux->feed=vmalloc(dvbdemux->feednum*sizeof(dvb_demux_feed_t));
+ dvbdemux->feed=vmalloc(dvbdemux->feednum*sizeof(struct dvb_demux_feed));
if (!dvbdemux->feed) {
vfree(dvbdemux->filter);
return -ENOMEM;
@@ -1125,7 +1125,7 @@ dvb_dmx_init(dvb_demux_t *dvbdemux)
dvbdemux->pids[i]=0xffff;
}
dvbdemux->playing=dvbdemux->recording=0;
- memset(dvbdemux->pid2feed, 0, (DMX_MAX_PID+1)*sizeof(dvb_demux_feed_t *));
+ memset(dvbdemux->pid2feed, 0, (DMX_MAX_PID+1)*sizeof(struct dvb_demux_feed *));
dvbdemux->tsbufp=0;
dmx->frontend=0;
@@ -1159,7 +1159,7 @@ dvb_dmx_init(dvb_demux_t *dvbdemux)
}
int
-dvb_dmx_release(dvb_demux_t *dvbdemux)
+dvb_dmx_release(struct dvb_demux *dvbdemux)
{
dmx_demux_t *dmx=&dvbdemux->dmx;
diff --git a/linux/drivers/media/dvb/dvb-core/dvb_demux.h b/linux/drivers/media/dvb/dvb-core/dvb_demux.h
index 2c4b0f175..cd8d437be 100644
--- a/linux/drivers/media/dvb/dvb-core/dvb_demux.h
+++ b/linux/drivers/media/dvb/dvb-core/dvb_demux.h
@@ -39,14 +39,14 @@
#define DVB_DEMUX_MASK_MAX 18
-typedef struct dvb_demux_filter_s {
+struct dvb_demux_filter {
dmx_section_filter_t filter;
u8 maskandmode [DMX_MAX_FILTER_SIZE];
u8 maskandnotmode [DMX_MAX_FILTER_SIZE];
int doneq;
- struct dvb_demux_filter_s *next;
- struct dvb_demux_feed_s *feed;
+ struct dvb_demux_filter *next;
+ struct dvb_demux_feed *feed;
int index;
int state;
int type;
@@ -56,11 +56,10 @@ typedef struct dvb_demux_filter_s {
u16 hw_handle;
struct timer_list timer;
int ts_state;
+};
- //u16 pid; //to be removed
-} dvb_demux_filter_t;
-typedef struct dvb_demux_feed_s {
+struct dvb_demux_feed {
union {
dmx_ts_feed_t ts;
dmx_section_feed_t sec;
@@ -71,7 +70,7 @@ typedef struct dvb_demux_feed_s {
dmx_section_cb sec;
} cb;
- struct dvb_demux_s *demux;
+ struct dvb_demux *demux;
int type;
int state;
u16 pid;
@@ -81,7 +80,7 @@ typedef struct dvb_demux_feed_s {
int check_crc;
struct timespec timeout;
- dvb_demux_filter_t *filter;
+ struct dvb_demux_filter *filter;
int cb_length;
int ts_type;
@@ -93,42 +92,42 @@ typedef struct dvb_demux_feed_s {
int cc;
u16 peslen;
-} dvb_demux_feed_t;
+};
-typedef struct dvb_demux_s {
+struct dvb_demux {
dmx_demux_t dmx;
void *priv;
int filternum;
int feednum;
- int (*start_feed)(dvb_demux_feed_t *);
- int (*stop_feed)(dvb_demux_feed_t *);
- int (*write_to_decoder)(dvb_demux_feed_t *, u8 *, size_t);
+ int (*start_feed)(struct dvb_demux_feed *);
+ int (*stop_feed)(struct dvb_demux_feed *);
+ int (*write_to_decoder)(struct dvb_demux_feed *, u8 *, size_t);
int users;
#define MAX_DVB_DEMUX_USERS 10
- dvb_demux_filter_t *filter;
- dvb_demux_feed_t *feed;
+ struct dvb_demux_filter *filter;
+ struct dvb_demux_feed *feed;
struct list_head frontend_list;
- dvb_demux_feed_t *pesfilter[DMX_TS_PES_OTHER];
+ struct dvb_demux_feed *pesfilter[DMX_TS_PES_OTHER];
u16 pids[DMX_TS_PES_OTHER];
int playing;
int recording;
#define DMX_MAX_PID 0x2000
- dvb_demux_feed_t *pid2feed[DMX_MAX_PID+1];
+ struct dvb_demux_feed *pid2feed[DMX_MAX_PID+1];
u8 tsbuf[188];
int tsbufp;
struct semaphore mutex;
spinlock_t lock;
-} dvb_demux_t;
+};
-int dvb_dmx_init(dvb_demux_t *dvbdemux);
-int dvb_dmx_release(dvb_demux_t *dvbdemux);
-void dvb_dmx_swfilter_packets(dvb_demux_t *dvbdmx, const u8 *buf, int count);
+int dvb_dmx_init(struct dvb_demux *dvbdemux);
+int dvb_dmx_release(struct dvb_demux *dvbdemux);
+void dvb_dmx_swfilter_packets(struct dvb_demux *dvbdmx, const u8 *buf, int count);
#endif /* _DVB_DEMUX_H_ */