X-Git-Url: http://code.vuplus.com/gitweb/?a=blobdiff_plain;f=meta-openvuplus%2Frecipes-base%2Ftuxtxt%2Ftuxbox-libtuxtxt%2Fallow_different_demux.diff;fp=meta-openvuplus%2Frecipes-base%2Ftuxtxt%2Ftuxbox-libtuxtxt%2Fallow_different_demux.diff;h=d5aac5bee63ff90055af6ce6a1d1b0f6018bf497;hb=d9f8cd1ab09c48faddd7ea8dd30087a0d53343f4;hp=0000000000000000000000000000000000000000;hpb=4a8d962497eff022a8306264d68b13b2e6314c2f;p=vuplus_openvuplus diff --git a/meta-openvuplus/recipes-base/tuxtxt/tuxbox-libtuxtxt/allow_different_demux.diff b/meta-openvuplus/recipes-base/tuxtxt/tuxbox-libtuxtxt/allow_different_demux.diff new file mode 100644 index 0000000..d5aac5b --- /dev/null +++ b/meta-openvuplus/recipes-base/tuxtxt/tuxbox-libtuxtxt/allow_different_demux.diff @@ -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 +- #define DMX "/dev/dvb/card0/demux0" + #else + #include +- #define DMX "/dev/dvb/adapter0/demux0" + #endif + ++#define DMX tuxtxt_cache.demux ++ + #include + #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];