Utils/Console: Add short help to 'ls' output
[senf.git] / Socket / Protocols / DVB / DVBDemuxHandles.cc
index da8a189..f71251e 100644 (file)
@@ -32,8 +32,7 @@
 #include <sys/ioctl.h>
 #include <fcntl.h>
 #include "../../../Utils/Exception.hh"
-// TODO REMOVE V
-#include <iostream>
+
 
 //#include "DVBDemuxHandles.mpp"
 #define prefix_
@@ -45,8 +44,7 @@
 prefix_ void senf::DVBDemuxSectionSocketProtocol::init_client(unsigned short adapter, unsigned short device)
     const
 {
-    std::string devDemux = str( boost::format(
-            "/dev/dvb/adapter%d/demux%d") % adapter % device);
+    std::string devDemux = str( boost::format("/dev/dvb/adapter%d/demux%d") % adapter % device);
     int f = open(devDemux.c_str(), O_RDONLY | O_NONBLOCK);
     if (f < 0){
         SENF_THROW_SYSTEM_EXCEPTION("Could not open demux device of DVB adapter ") << devDemux << ".";
@@ -94,10 +92,19 @@ prefix_ unsigned senf::DVBDemuxPESSocketProtocol::available()
     return 4096; //???
 }
 
-prefix_ void senf::DVBDemuxPESSocketProtocol::setPESFilter(struct dmx_pes_filter_params *filter)
+prefix_ void senf::DVBDemuxPESSocketProtocol::setPESFilter(unsigned short int pid, dmx_input_t input, dmx_output_t output, dmx_pes_type_t pesType, unsigned int flags)
     const
 {
-    if (::ioctl(fd(), DMX_SET_PES_FILTER, filter) < 0)
+   
+    struct dmx_pes_filter_params pes_filter;
+        ::memset(&pes_filter, 0, sizeof(struct dmx_pes_filter_params));
+        pes_filter.pid = pid;
+        pes_filter.input = input;
+        pes_filter.output = output;
+        pes_filter.pes_type = pesType;
+        pes_filter.flags = flags;
+        
+    if (::ioctl(fd(), DMX_SET_PES_FILTER, &pes_filter) < 0)
         SENF_THROW_SYSTEM_EXCEPTION("Could not set PES filter of DVB adapter.");
 }