relocate packages on recipes-base/recipes-enigma2/recipes-wlan.
[vuplus_openvuplus_3.0] / meta-openvuplus / recipes-vuplus / tuxtxt / tuxbox-libtuxtxt / allow_different_demux.diff
diff --git a/meta-openvuplus/recipes-vuplus/tuxtxt/tuxbox-libtuxtxt/allow_different_demux.diff b/meta-openvuplus/recipes-vuplus/tuxtxt/tuxbox-libtuxtxt/allow_different_demux.diff
new file mode 100644 (file)
index 0000000..d5aac5b
--- /dev/null
@@ -0,0 +1,95 @@
+diff -u libs/libtuxtxt_orig/libtuxtxt.c libs/libtuxtxt/libtuxtxt.c
+--- libs/libtuxtxt_orig/libtuxtxt.c    2009-01-29 21:21:08.000000000 +0100
++++ libs/libtuxtxt/libtuxtxt.c 2009-01-29 21:26:49.000000000 +0100
+@@ -65,6 +65,13 @@
+       tuxtxt_cache.thread_id = 0;
+       tuxtxt_cache.dmx = -1;
+       pthread_mutex_unlock(&tuxtxt_control_lock);
++
++#if HAVE_DVB_API_VERSION < 3
++      strcpy(tuxtxt_cache.demux, "/dev/dvb/card0/demux0");
++#else
++      strcpy(tuxtxt_cache.demux, "/dev/dvb/adapter0/demux0");
++#endif
++
+       return 1;//tuxtxt_init_demuxer();
+ }
+@@ -82,7 +89,7 @@
+       pthread_mutex_unlock(&tuxtxt_control_lock);
+       return res;
+ }
+-int tuxtxt_start(int tpid)
++int tuxtxt_start(int tpid, int demux)
+ {
+       int ret = 1;
+       pthread_mutex_lock(&tuxtxt_control_lock);
+@@ -92,10 +99,26 @@
+               tuxtxt_clear_cache();
+               tuxtxt_cache.page = 0x100;
+               tuxtxt_cache.vtxtpid = tpid;
++              if (demux >= 0)
++              {
++#if HAVE_DVB_API_VERSION < 3
++                      snprintf(tuxtxt_cache.demux, 64, "/dev/dvb/card0/demux%d", demux);
++#else
++                      snprintf(tuxtxt_cache.demux, 64, "/dev/dvb/adapter0/demux%d", demux);
++#endif
++              }
+               ret = tuxtxt_start_thread();
+       }
+       else if (!tuxtxt_cache.thread_starting && !tuxtxt_cache.receiving)
+       {
++              if (demux >= 0)
++              {
++#if HAVE_DVB_API_VERSION < 3
++                      snprintf(tuxtxt_cache.demux, 64, "/dev/dvb/card0/demux%d", demux);
++#else
++                      snprintf(tuxtxt_cache.demux, 64, "/dev/dvb/adapter0/demux%d", demux);
++#endif
++              }
+               ret = tuxtxt_start_thread();
+       }
+       pthread_mutex_unlock(&tuxtxt_control_lock);
+diff -u libs/libtuxtxt_orig/tuxtxt_common.h libs/libtuxtxt/tuxtxt_common.h
+--- libs/libtuxtxt_orig/tuxtxt_common.h        2009-01-29 21:24:32.000000000 +0100
++++ libs/libtuxtxt/tuxtxt_common.h     2009-01-29 21:26:49.000000000 +0100
+@@ -1751,9 +1751,9 @@
+       if (tuxtxt_cache.dmx != -1)
+       {
+               ioctl(tuxtxt_cache.dmx, DMX_STOP);
+-//        close(tuxtxt_cache.dmx);
+-      }
+-//    tuxtxt_cache.dmx = -1;
++              close(tuxtxt_cache.dmx);
++      }
++      tuxtxt_cache.dmx = -1;
+ #if 1//DEBUG
+       printf("TuxTxt stopped service %x\n", tuxtxt_cache.vtxtpid);
+ #endif
+diff -u libs/libtuxtxt_orig/tuxtxt_def.h libs/libtuxtxt/tuxtxt_def.h
+--- libs/libtuxtxt_orig/tuxtxt_def.h   2009-01-29 21:19:23.000000000 +0100
++++ libs/libtuxtxt/tuxtxt_def.h        2009-01-29 21:26:49.000000000 +0100
+@@ -19,12 +19,12 @@
+  #define pes_type pesType
+  #define dmx_sct_filter_params dmxSctFilterParams
+  #include <ost/dmx.h>
+- #define DMX "/dev/dvb/card0/demux0"
+ #else
+  #include <linux/dvb/dmx.h>
+- #define DMX "/dev/dvb/adapter0/demux0"
+ #endif
++#define DMX tuxtxt_cache.demux
++
+ #include <ft2build.h>
+ #include FT_FREETYPE_H
+ #include FT_CACHE_H
+@@ -325,6 +325,7 @@
+       short flofpages[0x900][FLOFSIZE];
+       unsigned char adip[0x900][13];
+       unsigned char subpagetable[0x900];
++      char demux[64];
+       int dmx;
+       int vtxtpid;
+       int cached_pages, page, subpage, pageupdate,page_receiving, current_page[9], current_subpage[9];