diff -Nupr tuxbox-cvs-checkouted/cdk/configure.ac tuxbox-dvbshout-notcompiled/cdk/configure.ac
--- tuxbox-cvs-checkouted/cdk/configure.ac	2009-01-09 18:42:47.000000000 +0200
+++ tuxbox-dvbshout-notcompiled/cdk/configure.ac	2009-02-08 01:21:21.000000000 +0200
@@ -386,6 +386,8 @@ TUXBOX_RULES_MAKE(libcrypto)
 TUXBOX_RULES_MAKE(libcurl)
 TUXBOX_RULES_MAKE(libdb2)
 TUXBOX_RULES_MAKE(libdvbpsi)
+TUXBOX_RULES_MAKE(libshout)
+TUXBOX_RULES_MAKE(libortp)
 TUXBOX_RULES_MAKE(libevent)
 TUXBOX_RULES_MAKE(libffi)
 TUXBOX_RULES_MAKE(libfreetype)
@@ -482,6 +484,7 @@ TUXBOX_RULES_MAKE(dvbstream)
 TUXBOX_RULES_MAKE(dvbtext)
 TUXBOX_RULES_MAKE(dvbtune)
 TUXBOX_RULES_MAKE(vls)
+TUXBOX_RULES_MAKE(dvbshout)
 
 #
 # Database
diff -Nupr tuxbox-cvs-checkouted/cdk/Makefile.am tuxbox-dvbshout-notcompiled/cdk/Makefile.am
--- tuxbox-cvs-checkouted/cdk/Makefile.am	2009-01-11 17:41:27.000000000 +0200
+++ tuxbox-dvbshout-notcompiled/cdk/Makefile.am	2009-02-08 14:29:48.000000000 +0200
@@ -412,7 +412,7 @@ OPTIONAL_LIBCRYPTO = .libcrypto
 endif
 
 libs: \
-	$(OPTIONAL_LIBCRYPTO) .libcurl .libdvbpsi .libffi .libfreetype .libjpeg \
+	$(OPTIONAL_LIBCRYPTO) .libcurl .libdvbpsi .libshout .libortp .libffi .libfreetype .libjpeg \
 	.libmad .libid3tag .libncurses .libpng .libreadline .libsdl .libsigc .libz .libvorbisidec
 
 libs_optional: \
@@ -495,6 +495,44 @@ libs_optional: \
 	@CLEANUP_libdvbpsi@
 	touch $@
 
+.libshout: .bootstrap @DEPENDS_libshout@
+	@PREPARE_libshout@
+	cd @DIR_libshout@ && \
+		aclocal -I m4 && \
+		autoheader && \
+		libtoolize --automake --force && \
+		autoconf && \
+		automake --add-missing --force-missing && \
+		$(BUILDENV) \
+		./configure \
+			--build=$(build) \
+			--host=$(target) \
+			--with-pic \
+			--prefix= && \
+		$(MAKE) all && \
+		@INSTALL_libshout@
+	@CLEANUP_libshout@
+	touch $@
+
+.libortp: .bootstrap @DEPENDS_libortp@
+	@PREPARE_libortp@
+	cd @DIR_libortp@ && \
+		aclocal -I . && \
+		autoheader && \
+		libtoolize --automake --force && \
+		autoconf && \
+		automake --add-missing --force-missing && \
+		$(BUILDENV) \
+		./configure \
+			--build=$(build) \
+			--host=$(target) \
+			--with-pic \
+			--prefix= && \
+		$(MAKE) all && \
+		@INSTALL_libortp@
+	@CLEANUP_libortp@
+	touch $@
+
 .libevent: .bootstrap @DEPENDS_libevent@
 	@PREPARE_libevent@
 	cd @DIR_libevent@ && \
@@ -1753,7 +1791,7 @@ fun: .gnuboy .scummvm .sdldoom
 #  DVB apps
 #
 
-dvb_apps: .dvbdate .dvbstream .dvbtext .dvbtune .vls
+dvb_apps: .dvbdate .dvbstream .dvbtext .dvbtune .vls .dvbshout
 
 .dvbdate: .bootstrap @DEPENDS_dvbdate@
 	@PREPARE_dvbdate@
@@ -1815,6 +1853,26 @@ dvb_apps: .dvbdate .dvbstream .dvbtext .
 	@CLEANUP_vls@
 	touch $@
 
+.dvbshout: .bootstrap .libshout .libortp @DEPENDS_dvbshout@
+	@PREPARE_dvbshout@
+	cd @DIR_dvbshout@ && \
+		aclocal  -I . && \
+		autoheader && \
+		libtoolize --automake && \
+		automake --add-missing --force-missing&& \
+		autoconf && \
+		$(BUILDENV) \
+		CFLAGS="-I$(driverdir)/include" \
+		LDFLAGS="$(TARGET_LDFLAGS)" \
+		./configure \
+			--build=$(build) \
+			--host=$(target) \
+			--prefix= && \
+		$(MAKE) all && \
+		@INSTALL_dvbshout@
+	@CLEANUP_dvbshout@
+	touch $@
+
 #######################
 #
 #   own kernel
@@ -2130,6 +2188,9 @@ $(flashprefix)/.part_dvb_tools: $(flashp
 	@if [ -e $(targetprefix)/bin/dvbnet ] ; then \
 		$(INSTALL) $(targetprefix)/bin/dvbnet $(flashprefix)/root/bin; \
 	fi
+	@if [ -e $(targetprefix)/bin/dvbshout ] ; then \
+		$(INSTALL) $(targetprefix)/bin/dvbshout $(flashprefix)/root/bin; \
+	fi
 	@touch $@
 
 flash-misc-tools: $(flashprefix)/.part_misc_tools
@@ -2918,7 +2979,7 @@ distclean-local:
 	-rm .bootstrap
 	-rm .directories .linuxdir .binutils .glibc .gcc .rpcgen
 	-rm .root .busybox .ftpd .modutils .procps .procps3 .watchdog .mrouted
-	-rm .libboost .libcommoncplusplus .libcrypto .libcurl .libdb2 .libdvbpsi .libevent .libffi .libfreetype
+	-rm .libboost .libcommoncplusplus .libcrypto .libcurl .libdb2 .libdvbpsi .libshout .libortp .libevent .libffi .libfreetype
 	-rm .libncurses .libfribidi .libjpeg .libmad .libid3tag .libnet .libnids .libpcap .libpng .libpopt
 	-rm .libreadline .libsdl .libsigc .libungif .libupnp .libxml2 .libxmlwrapp .libz .libvorbisidec .libgmp
 	-rm .cabextract
@@ -2929,7 +2990,7 @@ distclean-local:
 	-rm .dvbsnoop .enigma .lcars .lcdmenu .neutrino .stream .zapit
 	-rm .console_data .console_tools .dropbear .dsniff .fbset .lirc 
 	-rm .polipo .pump .ssh .tcpdump .tor .ushare .xrc .thttpd
-	-rm .dvbdate .dvbstream .dvbtext .dvbtune .vls .sqlite
+	-rm .dvbdate .dvbstream .dvbtext .dvbtune .vls .dvbshout .sqlite
 	-rm .misc_libs .misc_tools .plugins .libtuxbox .tuxbox_libs .tuxbox_tools .tuxbox_tools_all
 	-rm -rf $(targetprefix)
 	-rm -rf $(hostprefix)
diff -Nupr tuxbox-cvs-checkouted/cdk/Patches/dvbshout.diff tuxbox-dvbshout-notcompiled/cdk/Patches/dvbshout.diff
--- tuxbox-cvs-checkouted/cdk/Patches/dvbshout.diff	1970-01-01 03:00:00.000000000 +0300
+++ tuxbox-dvbshout-notcompiled/cdk/Patches/dvbshout.diff	2009-02-08 18:18:11.000000000 +0200
@@ -0,0 +1,454 @@
+diff -upr dvbshout/src/dvbshout.c dvbshout-new/src/dvbshout.c
+--- dvbshout/src/dvbshout.c	2009-02-07 22:23:50.000000000 +0200
++++ dvbshout-new/src/dvbshout.c	2009-02-08 14:55:44.000000000 +0200
+@@ -50,9 +50,10 @@ dvbshout_channel_t *channels[MAX_CHANNEL
+ dvbshout_server_t dvbshout_server;
+ dvbshout_rtp_t dvbshout_rtp;
+ 
+-char* frontenddev[4]={"/dev/dvb/adapter0/frontend0","/dev/dvb/adapter1/frontend0","/dev/dvb/adapter2/frontend0","/dev/dvb/adapter3/frontend0"};
+-char* dvrdev[4]={"/dev/dvb/adapter0/dvr0","/dev/dvb/adapter1/dvr0","/dev/dvb/adapter2/dvr0","/dev/dvb/adapter3/dvr0"};
+-char* demuxdev[4]={"/dev/dvb/adapter0/demux0","/dev/dvb/adapter1/demux0","/dev/dvb/adapter2/demux0","/dev/dvb/adapter3/demux0"};
++char* frontenddev[4]={"/dev/dvb/card0/frontend0","/dev/dvb/card1/frontend0","/dev/dvb/card2/frontend0","/dev/dvb/card3/frontend0"};
++char* secdev[4]={"/dev/dvb/card0/sec0","/dev/dvb/card1/sec0","/dev/dvb/card2/sec0","/dev/dvb/card3/sec0"};
++char* dvrdev[4]={"/dev/dvb/card0/dvr0","/dev/dvb/card1/dvr0","/dev/dvb/card2/dvr0","/dev/dvb/card3/dvr0"};
++char* demuxdev[4]={"/dev/dvb/card0/demux0","/dev/dvb/card1/demux0","/dev/dvb/card2/demux0","/dev/dvb/card3/demux0"};
+ 
+ 
+ // RTP Payload Type for MPEG Audio
+@@ -83,7 +84,7 @@ static void signal_handler(int signum)
+ 
+ static void set_ts_filters()
+ {
+-	struct dmx_pes_filter_params pesFilterParams;
++	struct dmxPesFilterParams pesFilterParams;
+ 	int i;
+ 	
+ 	fprintf(stderr,"Setting %d PID filters:\n", channel_count);
+@@ -94,7 +95,7 @@ static void set_ts_filters()
+ 		pesFilterParams.pid     = channels[i]->pid;
+ 		pesFilterParams.input   = DMX_IN_FRONTEND;
+ 		pesFilterParams.output  = DMX_OUT_TS_TAP;
+-		pesFilterParams.pes_type = DMX_PES_OTHER;
++		pesFilterParams.pesType = DMX_PES_OTHER;
+ 		pesFilterParams.flags   = DMX_IMMEDIATE_START;
+ 		
+ 		if (ioctl(channels[i]->fd, DMX_SET_PES_FILTER, &pesFilterParams) < 0)  {
+@@ -543,6 +544,7 @@ void process_ts_packets( int fd_dvr )
+ int main(int argc, char **argv)
+ {
+ 	int fd_frontend=-1;
++	int fd_sec=-1;
+ 	int fd_dvr=-1;
+ 	int i;
+ 	
+@@ -589,10 +591,14 @@ int main(int argc, char **argv)
+ 		perror("Failed to open frontend device");
+ 		return -1;
+ 	}
++	if((fd_sec = open(secdev[dvbshout_tuning->card],O_RDWR)) < 0){
++		perror("Failed to open sec device");
++		return -1;
++	}
+ 
+ 	// Tune in the frontend
+ 	if (dvbshout_tuning->frequency!=0) {
+-		int err =tune_it(fd_frontend, dvbshout_tuning);
++		int err =tune_it(fd_frontend, fd_sec, dvbshout_tuning);
+ 		if (err<0) { exit(err); }
+ 	} else {
+ 		fprintf(stderr,"Not tuning-in frontend.\n");
+@@ -645,6 +651,7 @@ int main(int argc, char **argv)
+ 		free( channels[i] );
+ 	}
+ 	close(fd_dvr);
++	close(fd_sec);
+ 	close(fd_frontend);
+ 	if (dvbshout_tuning) free( dvbshout_tuning );
+ 
+diff -upr dvbshout/src/dvbshout.h dvbshout-new/src/dvbshout.h
+--- dvbshout/src/dvbshout.h	2009-02-07 22:23:50.000000000 +0200
++++ dvbshout-new/src/dvbshout.h	2009-02-08 14:57:11.000000000 +0200
+@@ -24,8 +24,8 @@
+ 
+ 
+ // DVB includes:
+-#include <linux/dvb/dmx.h>
+-#include <linux/dvb/frontend.h>
++#include <ost/dmx.h>
++#include <ost/frontend.h>
+ 
+ // Libshout include
+ #include <shout/shout.h>
+@@ -251,15 +251,15 @@ typedef struct dvbshout_tuning_s {
+ 	unsigned int diseqc;
+ 	int tone;					// 22kHz tone (-1 = auto)
+ 	
+-	fe_spectral_inversion_t  inversion;
+-	fe_bandwidth_t  bandwidth;
+-	fe_code_rate_t  code_rate_hp;
+-	fe_code_rate_t  code_rate_lp;
+-	fe_code_rate_t  fec_inner;
+-	fe_modulation_t  modulation;
+-	fe_hierarchy_t  hierarchy;
+-	fe_transmit_mode_t  transmission_mode;
+-	fe_guard_interval_t  guard_interval;
++	SpectralInversion  inversion;
++	BandWidth  bandwidth;
++	CodeRate  code_rate_hp;
++	CodeRate  code_rate_lp;
++	CodeRate  fec_inner;
++	Modulation  modulation;
++	Hierarchy  hierarchy;
++	TransmitMode  transmission_mode;
++	GuardInterval  guard_interval;
+ 	
+ 
+ } dvbshout_tuning_t;
+@@ -277,7 +277,7 @@ extern dvbshout_rtp_t dvbshout_rtp;
+ 
+ 
+ /* In tune.c */
+-int tune_it(int fd_frontend, dvbshout_tuning_t *set);
++int tune_it(int fd_frontend, int fd_sec, dvbshout_tuning_t *set);
+ dvbshout_tuning_t * init_tuning_defaults();
+ 
+ /* In pes.c */
+diff -upr dvbshout/src/parse_config.c dvbshout-new/src/parse_config.c
+--- dvbshout/src/parse_config.c	2009-02-07 22:23:50.000000000 +0200
++++ dvbshout-new/src/parse_config.c	2009-02-08 14:26:35.000000000 +0200
+@@ -205,8 +205,6 @@ static void process_statement_tuning( ch
+ 			dvbshout_tuning->hierarchy=HIERARCHY_2;
+ 		} else if (!strcmp(value,"3")) {
+ 			dvbshout_tuning->hierarchy=HIERARCHY_4;
+-		} else if (!strcmp(value,"auto")) {
+-			dvbshout_tuning->hierarchy=HIERARCHY_AUTO;
+ 		} else {
+ 			fprintf(stderr,"Error parsing configuation line %d: invalid hierarchy mode\n", line_num);
+ 			exit(-1);
+diff -upr dvbshout/src/tune.c dvbshout-new/src/tune.c
+--- dvbshout/src/tune.c	2009-02-07 22:23:50.000000000 +0200
++++ dvbshout-new/src/tune.c	2009-02-08 17:19:58.000000000 +0200
+@@ -30,19 +30,19 @@
+ #include <error.h>
+ #include <errno.h>
+ 
+-#include <linux/dvb/dmx.h>
+-#include <linux/dvb/frontend.h>
++#include <ost/dmx.h> 
++#include <ost/frontend.h> 
++#include <ost/sec.h> 
+ 
+ #include "dvbshout.h"
+ 
+ 
+ 
+ static void
+-print_status (FILE * fd, fe_status_t festatus)
++print_status (FILE * fd, FrontendStatus festatus)
+ {
+ 	fprintf (fd, "Frontend Status:");
+ 	if (festatus & FE_HAS_SIGNAL)	fprintf (fd, " FE_HAS_SIGNAL");
+-	if (festatus & FE_TIMEDOUT)		fprintf (fd, " FE_TIMEDOUT");
+ 	if (festatus & FE_HAS_LOCK)		fprintf (fd, " FE_HAS_LOCK");
+ 	if (festatus & FE_HAS_CARRIER)	fprintf (fd, " FE_HAS_CARRIER");
+ 	if (festatus & FE_HAS_VITERBI)	fprintf (fd, " FE_HAS_VITERBI");
+@@ -50,59 +50,52 @@ print_status (FILE * fd, fe_status_t fes
+ 	fprintf (fd, "\n");
+ }
+ 
+-struct diseqc_cmd
+-{
+-	struct dvb_diseqc_master_cmd cmd;
+-	uint32_t wait;
+-};
+-
+-static void
+-diseqc_send_msg (int fd, fe_sec_voltage_t v, struct diseqc_cmd *cmd,
+-		 fe_sec_tone_mode_t t, fe_sec_mini_cmd_t b)
+-{
+-	ioctl (fd, FE_SET_TONE, SEC_TONE_OFF);
+-	ioctl (fd, FE_SET_VOLTAGE, v);
+-	usleep (15 * 1000);
+-	ioctl (fd, FE_DISEQC_SEND_MASTER_CMD, &cmd->cmd);
+-	usleep (cmd->wait * 1000);
+-	usleep (15 * 1000);
+-	ioctl (fd, FE_DISEQC_SEND_BURST, b);
+-	usleep (15 * 1000);
+-	ioctl (fd, FE_SET_TONE, t);
+-}
+-
+-
+-
+-
+ /* digital satellite equipment control,
+  * specification is available from http://www.eutelsat.com/ 
+  */
+ static int
+-do_diseqc (int secfd, int sat_no, int pol, int hi_lo)
++do_diseqc (int fd_sec, int sat_no, int pol, int hi_lo)
+ {
+-	struct diseqc_cmd cmd = { {{0xe0, 0x10, 0x38, 0xf0, 0x00, 0x00}, 4}, 0 };
++	struct secCommand sSCmd;
++	struct secCmdSequence sSCmdSeq;
++	
++	
+ 	
+-	/* param: high nibble: reset bits, low nibble set bits,
+-	* bits are: option, position, polarizaion, band
+-	*/
+-	cmd.cmd.msg[3] =
+-	0xf0 | (((sat_no * 4) & 0x0f) | (hi_lo ? 1 : 0) | (pol ? 0 : 2));
+ 	
+-	diseqc_send_msg (secfd, pol,
+-			&cmd, hi_lo, (sat_no / 4) % 2 ? SEC_MINI_B : SEC_MINI_A);
++	sSCmdSeq.continuousTone = (hi_lo) ? SEC_TONE_OFF : SEC_TONE_ON;
++	
++	sSCmdSeq.voltage = (pol) ? SEC_VOLTAGE_18 : SEC_VOLTAGE_13;
++	
++	sSCmd.type = 0;
++	sSCmd.u.diseqc.addr = 0x10;
++	sSCmd.u.diseqc.cmd = 0x38;
++	sSCmd.u.diseqc.numParams = 1;
++	sSCmd.u.diseqc.params[0] =   0xF0
++	                    | ((sat_no * 4) & 0x0F)
++	                    | (sSCmdSeq.continuousTone == SEC_TONE_ON ? 1 : 0)
++	                    | (sSCmdSeq.voltage == SEC_VOLTAGE_18 ? 2 : 0);
++	
++	sSCmdSeq.miniCommand = SEC_MINI_NONE;
++	sSCmdSeq.numCommands = 1;
++	sSCmdSeq.commands = &sSCmd;
++	
++	if(ioctl(fd_sec, SEC_SEND_SEQUENCE, &sSCmdSeq) < 0) {
++		perror ("ERROR set diseqc\n");
++		return -1;
++	}
+ 	
+ 	return 1;
+ }
+ 
+ 
+ static int
+-check_status (int fd_frontend, struct dvb_frontend_parameters *feparams,
++check_status (int fd_frontend, FrontendParameters *feparams,
+ 	      int tone)
+ {
+ 	int32_t strength;
+-	fe_status_t festatus;
+-	struct dvb_frontend_info fe_info;
+-	struct dvb_frontend_event event;
++	FrontendStatus festatus;
++	FrontendInfo fe_info;
++	FrontendEvent event;
+ 	struct pollfd pfd[1];
+ 	int status;
+ 	
+@@ -120,10 +113,9 @@ check_status (int fd_frontend, struct dv
+ 		perror ("FE_GET_INFO: ");
+ 		return -1;
+ 	}
+-
+-	event.status = 0;
+-	while (((event.status & FE_TIMEDOUT) == 0)
+-			&& ((event.status & FE_HAS_LOCK) == 0))
++	
++	event.type = 0;
++	while ((event.type & FE_COMPLETION_EV) == 0)
+ 	{
+ 		//fprintf (stderr, "Polling....\n");
+ 		if (poll (pfd, 1, 10000))
+@@ -133,7 +125,7 @@ check_status (int fd_frontend, struct dv
+ 				//fprintf (stderr, "Getting frontend event\n");
+ 				if ((status = ioctl (fd_frontend, FE_GET_EVENT, &event)) < 0)
+ 				{
+-					if (errno != EOVERFLOW) {
++					if (errno != EBUFFEROVERFLOW) {
+ 						perror ("FE_GET_EVENT");
+ 						fprintf (stderr, "  status = %d\n", status);
+ 						fprintf (stderr, "  errno = %d\n", errno);
+@@ -146,13 +138,13 @@ check_status (int fd_frontend, struct dv
+ 				}
+ 				
+ 			}
+-				
+-			print_status (stderr, event.status);
++			
++			print_status (stderr, event.u.failureEvent);
+ 		}
+ 	}
+ 	
+ 
+-	if (event.status & FE_HAS_LOCK)
++	if (event.type & FE_COMPLETION_EV)
+ 	{
+ 
+ 		fprintf (stderr, "Gained lock:\n");
+@@ -161,25 +153,25 @@ check_status (int fd_frontend, struct dv
+ 			// DVB-T
+ 			case FE_OFDM:
+ 				fprintf (stderr, "  Frontend Type: OFDM\n");
+-				fprintf (stderr, "  Frequency: %d Hz\n", event.parameters.frequency);
++				fprintf (stderr, "  Frequency: %d Hz\n", event.u.completionEvent.Frequency);
+ 				break;
+ 			
+ 			// DVB-S
+ 			case FE_QPSK:
+ 				fprintf (stderr, "  Frontend Type: QPSK\n");
+ 				fprintf (stderr, "  Frequency: %d kHz\n",
+-				   (unsigned int) ((event.parameters.frequency) +
++				   (unsigned int) ((event.u.completionEvent.Frequency) +
+ 						   (tone == SEC_TONE_OFF ? LOF1 : LOF2)));
+-				fprintf (stderr, "  SymbolRate: %d\n", event.parameters.u.qpsk.symbol_rate);
+-				fprintf (stderr, "  FEC Inner: %d\n", event.parameters.u.qpsk.fec_inner);
++				fprintf (stderr, "  SymbolRate: %d\n", event.u.completionEvent.u.qpsk.SymbolRate);
++				fprintf (stderr, "  FEC Inner: %d\n", event.u.completionEvent.u.qpsk.FEC_inner);
+ 				break;
+ 				
+ 			// DVB-C
+ 			case FE_QAM:
+ 				fprintf (stderr, "  Frontend Type: QAM\n");
+-				fprintf (stderr, "  Frequency: %d Hz\n", event.parameters.frequency);
+-				fprintf (stderr, "  SymbolRate: %d\n", event.parameters.u.qam.symbol_rate);
+-				fprintf (stderr, "  FEC Inner: %d\n", event.parameters.u.qam.fec_inner);
++				fprintf (stderr, "  Frequency: %d Hz\n", event.u.completionEvent.Frequency);
++				fprintf (stderr, "  SymbolRate: %d\n", event.u.completionEvent.u.qam.SymbolRate);
++				fprintf (stderr, "  FEC Inner: %d\n", event.u.completionEvent.u.qam.FEC_inner);
+ 				break;
+ 			default:
+ 				fprintf (stderr, "  Frontend Type: Unknown\n");
+@@ -192,11 +184,11 @@ check_status (int fd_frontend, struct dv
+ 
+ 	  strength = 0;
+ 	  ioctl (fd_frontend, FE_READ_SIGNAL_STRENGTH, &strength);
+-	  fprintf (stderr, "  Signal strength: %d\n", strength);
++	  fprintf (stderr, "  Signal strength: %d\n", (unsigned ) strength);
+ 
+ 	  strength = 0;
+ 	  ioctl (fd_frontend, FE_READ_SNR, &strength);
+-	  fprintf (stderr, "  SNR: %d\n", strength);
++	  fprintf (stderr, "  SNR: %d\n", (unsigned ) strength);
+ 
+ 	  festatus = 0;
+ 	  ioctl (fd_frontend, FE_READ_STATUS, &festatus);
+@@ -215,12 +207,12 @@ check_status (int fd_frontend, struct dv
+ 
+ 
+ int
+-tune_it (int fd_frontend, dvbshout_tuning_t * set)
++tune_it (int fd_frontend, int fd_sec, dvbshout_tuning_t * set)
+ {
+ 	int res;
+-	struct dvb_frontend_parameters feparams;
+-	struct dvb_frontend_info fe_info;
+-	fe_sec_voltage_t voltage;
++	FrontendParameters feparams;
++	FrontendInfo fe_info;
++	secVoltage voltage;
+ 
+ 	if ((res = ioctl (fd_frontend, FE_GET_INFO, &fe_info) < 0))
+ 	{
+@@ -229,22 +221,22 @@ tune_it (int fd_frontend, dvbshout_tunin
+ 	}
+ 	
+ 
+-	fprintf (stderr, "DVB card name: \"%s\"\n", fe_info.name);
++	fprintf (stderr, "DVB card: hwType=0x%04x hwVersion=0x%04x\n", fe_info.hwType, fe_info.hwVersion);
+ 
+ 
+ 	switch (fe_info.type)
+ 	{
+ 		// DVB-T
+ 		case FE_OFDM:
+-			feparams.frequency = set->frequency;
+-			feparams.inversion =  set->inversion;
+-			feparams.u.ofdm.bandwidth = set->bandwidth;
+-			feparams.u.ofdm.code_rate_HP = set->code_rate_hp;
+-			feparams.u.ofdm.code_rate_LP =  set->code_rate_lp;
+-			feparams.u.ofdm.constellation = set->modulation;
+-			feparams.u.ofdm.transmission_mode = set->transmission_mode;
+-			feparams.u.ofdm.guard_interval = set->guard_interval;
+-			feparams.u.ofdm.hierarchy_information = set->hierarchy;
++			feparams.Frequency = set->frequency;
++			feparams.Inversion =  set->inversion;
++			feparams.u.ofdm.bandWidth = set->bandwidth;
++			feparams.u.ofdm.HP_CodeRate = set->code_rate_hp;
++			feparams.u.ofdm.LP_CodeRate =  set->code_rate_lp;
++			feparams.u.ofdm.Constellation = set->modulation;
++			feparams.u.ofdm.TransmissionMode = set->transmission_mode;
++			feparams.u.ofdm.guardInterval = set->guard_interval;
++			feparams.u.ofdm.HierarchyInformation = set->hierarchy;
+ 			fprintf (stderr, "Tuning DVB-T to %d Hz\n", set->frequency);
+ 		break;
+ 
+@@ -254,6 +246,7 @@ tune_it (int fd_frontend, dvbshout_tunin
+ 			set->frequency *= 1000;
+ 			set->symbol_rate *= 1000;
+ 			
++			
+ 			fprintf (stderr, "Tuning DVB-S to %d kHz, Pol:%c Srate=%d, 22kHz=%s\n",
+ 			   set->frequency, set->polarity, set->symbol_rate,
+ 			   set->tone == SEC_TONE_ON ? "on" : "off");
+@@ -264,7 +257,7 @@ tune_it (int fd_frontend, dvbshout_tunin
+ 			else	voltage = SEC_VOLTAGE_13;
+ 			
+ 			if (set->diseqc == 0) {
+-				if (ioctl (fd_frontend, FE_SET_VOLTAGE, voltage) < 0) {
++				if (ioctl (fd_sec, SEC_SET_VOLTAGE, voltage) < 0) {
+ 					perror ("ERROR setting voltage\n");
+ 				}
+ 			}
+@@ -272,30 +265,30 @@ tune_it (int fd_frontend, dvbshout_tunin
+ 			if (set->frequency > 2200000) {
+ 				// this must be an absolute frequency
+ 				if (set->frequency < SLOF) {
+-					feparams.frequency = (set->frequency - LOF1);
++					feparams.Frequency = (set->frequency - LOF1);
+ 					if (set->tone < 0) set->tone = SEC_TONE_OFF;
+ 				} else {
+-					feparams.frequency = (set->frequency - LOF2);
++					feparams.Frequency = (set->frequency - LOF2);
+ 					if (set->tone < 0) set->tone = SEC_TONE_ON;
+ 				}
+ 			} else {
+ 				// this is an L-Band frequency
+-				feparams.frequency = set->frequency;
++				feparams.Frequency = set->frequency;
+ 			}
+ 
+-			feparams.inversion = set->inversion;
+-			feparams.u.qpsk.symbol_rate = set->symbol_rate;
+-			feparams.u.qpsk.fec_inner = set->fec_inner;
++			feparams.Inversion = set->inversion;
++			feparams.u.qpsk.SymbolRate = set->symbol_rate;
++			feparams.u.qpsk.FEC_inner = set->fec_inner;
+ 
+ 			if (set->diseqc == 0)
+ 			{
+-				if (ioctl (fd_frontend, FE_SET_TONE, set->tone) < 0)
++				if (ioctl (fd_sec, SEC_SET_TONE, set->tone) < 0)
+ 					perror ("ERROR setting tone\n");
+ 			}
+ 
+ 			if (set->diseqc > 0)
+ 			{
+-				do_diseqc (fd_frontend, set->diseqc - 1, voltage, set->tone);
++				do_diseqc (fd_sec, set->diseqc - 1, voltage, set->tone);
+ 				sleep (1);
+ 			}
+ 		break;
+@@ -304,11 +297,11 @@ tune_it (int fd_frontend, dvbshout_tunin
+ 		// DVB-C
+ 		case FE_QAM:
+ 			fprintf (stderr, "Tuning DVB-C to %d Hz, srate=%d\n", set->frequency, set->symbol_rate);
+-			feparams.frequency = set->frequency;
+-			feparams.inversion = set->inversion;
+-			feparams.u.qam.symbol_rate = set->symbol_rate;
+-			feparams.u.qam.fec_inner = set->fec_inner;
+-			feparams.u.qam.modulation = set->modulation;
++			feparams.Frequency = set->frequency;
++			feparams.Inversion = set->inversion;
++			feparams.u.qam.SymbolRate = set->symbol_rate;
++			feparams.u.qam.FEC_inner = set->fec_inner;
++			feparams.u.qam.QAM = set->modulation;
+ 		break;
+ 		
+ 		default:
diff -Nupr tuxbox-cvs-checkouted/cdk/rules-archive tuxbox-dvbshout-notcompiled/cdk/rules-archive
--- tuxbox-cvs-checkouted/cdk/rules-archive	2009-01-09 18:04:56.000000000 +0200
+++ tuxbox-dvbshout-notcompiled/cdk/rules-archive	2009-02-08 01:21:21.000000000 +0200
@@ -72,6 +72,8 @@ libpcap-0.9.3.tar.gz;http://www.tcpdump.
 xmlwrapp-0.2.1.tar.gz;http://pmade.org/pjones/software/xmlwrapp/download
 commoncpp2-1.3.1.tar.gz;ftp://ftp.uni-kassel.de/Mirrors/ftp.gnu.org/pub/gnu/commoncpp
 libdvbpsi-0.1.2.tar.gz;http://www.videolan.org/pub/videolan/libdvbpsi/0.1.2
+libshout-2.2.2.tar.gz;http://tipok.org.ua/downloads/iptv/DVB/dreambox/Archive
+libortp-2.0.1.tar.gz;http://tipok.org.ua/downloads/iptv/DVB/dreambox/Archive
 xmlparse_0.9.3.tar.bz2;http://private.addcom.de/morus_walter/xmlparse
 libnet-1.0.2a.tar.gz;http://www.packetfactory.net/libnet/dist/deprecated
 libnids-1.16.tar.gz;http://www.packetfactory.net/Projects/Libnids/dist
@@ -151,6 +153,7 @@ dvbstream-20020918.tar.bz2;
 dvbtext-0.1.tar.gz;http://www.linuxstb.org/dvbtext
 dvbtune-20020918.tar.bz2;
 vls-0.4.0.tar.bz2;http://www.videolan.org/pub/videolan/vls/0.4.0
+dvbshout.tar.gz;http://tipok.org.ua/downloads/iptv/DVB/dreambox/Archive
 
 #
 # mksquashfs with LZMA support
diff -Nupr tuxbox-cvs-checkouted/cdk/rules-install tuxbox-dvbshout-notcompiled/cdk/rules-install
--- tuxbox-cvs-checkouted/cdk/rules-install	2009-01-09 18:04:56.000000000 +0200
+++ tuxbox-dvbshout-notcompiled/cdk/rules-install	2009-02-08 01:21:21.000000000 +0200
@@ -46,6 +46,8 @@ libcurl;make:install:DESTDIR=TARGET
 libcommoncplusplus;make:install;link:TARGET/bin/ccgnu2-config:HOST/bin/ccgnu2-config
 libdb2;make:install:DESTDIR=TARGET
 libdvbpsi;make:install:DESTDIR=TARGET
+libshout;rewrite-pkgconfig:shout.pc;make:install:DESTDIR=TARGET;install:-m644:shout.pc:TARGET/lib/pkgconfig
+libortp;rewrite-pkgconfig:ortp.pc;make:install:DESTDIR=TARGET;install:-m644:ortp.pc:TARGET/lib/pkgconfig
 libevent;make:install:DESTDIR=TARGET
 libffi;make:install
 libfreetype;make:install:libdir=TARGET/lib:includedir=TARGET/include:bindir=TARGET/bin:prefix=TARGET
@@ -137,6 +139,7 @@ dvbstream;install:-m755:dvbstream:rtpfee
 dvbtext;install:-m755:dvbtext:TARGET/bin
 dvbtune;install:-m755:dvbtune:TARGET/bin
 vls;make:install:DESTDIR=TARGET
+dvbshout;install:-m755:src/dvbshout:TARGET/bin
 
 #
 # mksquashfs with LZMA support
diff -Nupr tuxbox-cvs-checkouted/cdk/rules-install-flash tuxbox-dvbshout-notcompiled/cdk/rules-install-flash
--- tuxbox-cvs-checkouted/cdk/rules-install-flash	2005-02-04 20:04:40.000000000 +0200
+++ tuxbox-dvbshout-notcompiled/cdk/rules-install-flash	2009-02-08 01:21:21.000000000 +0200
@@ -31,6 +31,8 @@ libid3tag;rewrite-pkgconfig:id3tag.pc;ma
 # contrib tools
 #
 e2fsprogs;make:install;install:-m644:lib/libblkid.a:TARGET/lib/libblkid_pic.a;install:-m644:lib/libcom_err.a:TARGET/lib/libcom_err_pic.a;install:-m644:lib/libe2p.a:TARGET/lib/libe2p_pic.a;install:-m644:lib/libext2fs.a:TARGET/lib/libext2fs_pic.a;install:-m644:lib/libuuid.a:TARGET/lib/libuuid_pic.a
+libshout;rewrite-pkgconfig:shout.pc;make:install:DESTDIR=TARGET;install:-m644:shout.pc:TARGET/lib/pkgconfig;archive:TARGET/lib/libshout.a:*.lo
+libortp;rewrite-pkgconfig:ortp.pc;make:install:DESTDIR=TARGET;install:-m644:ortp.pc:TARGET/lib/pkgconfig;archive:TARGET/lib/libortp.a:*.lo
 
 #
 # include
diff -Nupr tuxbox-cvs-checkouted/cdk/rules-make tuxbox-dvbshout-notcompiled/cdk/rules-make
--- tuxbox-cvs-checkouted/cdk/rules-make	2009-01-09 18:04:56.000000000 +0200
+++ tuxbox-dvbshout-notcompiled/cdk/rules-make	2009-02-08 01:21:21.000000000 +0200
@@ -50,6 +50,8 @@ libcrypto;0.9.7a;openssl-0.9.7a;openssl-
 libcurl;7.10.1;curl-7.10.1;curl-7.10.1.tar.bz2:libcurl.diff;extract:curl-7.10.1.tar.bz2;patch:libcurl.diff
 libdb2;2.7.7;db-2.7.7;db-2.7.7.tar.gz:libdb2.diff;extract:db-2.7.7.tar.gz;patch:libdb2.diff
 libdvbpsi;0.1.2;libdvbpsi-0.1.2;libdvbpsi-0.1.2.tar.gz;extract:libdvbpsi-0.1.2.tar.gz
+libshout;2.2.2;libshout-2.2.2;libshout-2.2.2.tar.gz;extract:libshout-2.2.2.tar.gz
+libortp;2.0.1;libortp-2.0.1;libortp-2.0.1.tar.gz;extract:libortp-2.0.1.tar.gz
 libevent;1.3b;libevent-1.3b;libevent-1.3b.tar.gz;extract:libevent-1.3b.tar.gz
 libffi;1.20;libffi-1.20;libffi-1.20.tar.gz:libffi.diff;extract:libffi-1.20.tar.gz;patch:libffi.diff
 libfreetype;2.0.9;freetype-2.0.9;freetype-2.0.9.tar.bz2;extract:freetype-2.0.9.tar.bz2;patch:libfreetype.diff
@@ -148,6 +150,7 @@ dvbstream;20020918;dvbstream;dvbstream-2
 dvbtext;0.1;dvbtext-0.1;dvbtext-0.1.tar.gz;extract:dvbtext-0.1.tar.gz
 dvbtune;20020918;dvbtune;dvbtune-20020918.tar.bz2;extract:dvbtune-20020918.tar.bz2
 vls;0.4.0;vls-0.4.0;vls-0.4.0.tar.bz2;extract:vls-0.4.0.tar.bz2
+dvbshout;;dvbshout;dvbshout.tar.gz:dvbshout.diff;extract:dvbshout.tar.gz;patch:dvbshout.diff
 
 #
 # Database
