亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? vdr-1.4.x-sc7.diff

?? linux softcam emulator for using with vdr.
?? DIFF
字號:
diff -urN -X ex.vdr-sc7 vdr-1.4.7-orig/ci.c vdr-1.4.7-sc7/ci.c--- vdr-1.4.7-orig/ci.c	2007-04-30 14:58:41.000000000 +0200+++ vdr-1.4.7-sc7/ci.c	2007-05-13 18:04:04.000000000 +0200@@ -1502,9 +1502,8 @@   close(fd); } -cCiHandler *cCiHandler::CreateCiHandler(const char *FileName)+cCiHandler *cCiHandler::CreateCiHandler(int fd_ca) {-  int fd_ca = open(FileName, O_RDWR);   if (fd_ca >= 0) {      ca_caps_t Caps;      if (ioctl(fd_ca, CA_GET_CAP, &Caps) == 0) {@@ -1520,8 +1519,7 @@            esyslog("ERROR: no CAM slots found");         }      else-        LOG_ERROR_STR(FileName);-     close(fd_ca);+        LOG_ERROR_STR("CA_GET_CAP");      }   return NULL; }diff -urN -X ex.vdr-sc7 vdr-1.4.7-orig/ci.h vdr-1.4.7-sc7/ci.h--- vdr-1.4.7-orig/ci.h	2006-08-12 11:43:31.000000000 +0200+++ vdr-1.4.7-sc7/ci.h	2007-06-24 19:46:39.000000000 +0200@@ -85,10 +85,12 @@ class cCiCaProgramData : public cListObject { public:   int programNumber;+  bool modified;   cList<cCiCaPidData> pidList;   cCiCaProgramData(int ProgramNumber)   {     programNumber = ProgramNumber;+    modified = true;   }   }; @@ -96,6 +98,8 @@ class cCiTransportLayer; class cCiTransportConnection; +#define VDR_IS_SC_PATCHED 402+ class cCiHandler { private:   cMutex mutex;@@ -123,7 +127,7 @@   void SendCaPmt(void); public:   ~cCiHandler();-  static cCiHandler *CreateCiHandler(const char *FileName);+  static cCiHandler *CreateCiHandler(int fd_ca);        ///< Creates a new cCiHandler for the given CA device.   int NumSlots(void) { return numSlots; }        ///< Returns the number of CAM slots provided by this CA device.diff -urN -X ex.vdr-sc7 vdr-1.4.7-orig/device.c vdr-1.4.7-sc7/device.c--- vdr-1.4.7-orig/device.c	2006-09-03 12:13:25.000000000 +0200+++ vdr-1.4.7-sc7/device.c	2007-05-13 18:30:57.000000000 +0200@@ -395,6 +395,54 @@   return false; } +void cDevice::CiStartDecrypting(void)+{+  if (ciHandler)+     ciHandler->StartDecrypting();+}++void cDevice::CiSetSource(int Source, int Transponder)+{+  cMutexLock MutexLock(&ciListMutex);+  if (ciSource != Source || ciTransponder != Transponder)+     ciProgramList.Clear();+  ciSource = Source;+  ciTransponder = Transponder;+}++void cDevice::CiAddPid(int ProgramNumber, int Pid, int StreamType)+{+  cMutexLock MutexLock(&ciListMutex);+  cCiCaProgramData *ProgramData = NULL;+  for (cCiCaProgramData *p = ciProgramList.First(); p; p = ciProgramList.Next(p)) {+      if (p->programNumber == ProgramNumber) {+         ProgramData = p;+         for (cCiCaPidData *q = p->pidList.First(); q; q = p->pidList.Next(q)) {+             if (q->pid == Pid)+                return;+             }+         }+      }+  if (!ProgramData)+     ciProgramList.Add(ProgramData = new cCiCaProgramData(ProgramNumber));+  ProgramData->pidList.Add(new cCiCaPidData(Pid, StreamType));+  ProgramData->modified=true;+}++void cDevice::CiSetPid(int Pid, bool Active)+{+  cMutexLock MutexLock(&ciListMutex);+  for (cCiCaProgramData *p = ciProgramList.First(); p; p = ciProgramList.Next(p)) {+      for (cCiCaPidData *q = p->pidList.First(); q; q = p->pidList.Next(q)) {+          if (q->pid == Pid) {+             q->active = Active;+             p->modified = true;+             return;+             }+         }+      }+}+ bool cDevice::AddPid(int Pid, ePidType PidType) {   if (Pid || PidType == ptPcr) {@@ -424,6 +472,7 @@               }            if (ciHandler)               ciHandler->SetPid(Pid, true);+           CiSetPid(Pid, true);            }         PRINTPIDS("a");         return true;@@ -453,6 +502,7 @@            }         if (ciHandler)            ciHandler->SetPid(Pid, true);+        CiSetPid(Pid, true);         }      }   return true;@@ -481,6 +531,7 @@               pidHandles[n].pid = 0;               if (ciHandler)                  ciHandler->SetPid(Pid, false);+              CiSetPid(Pid, false);               }            }         PRINTPIDS("E");@@ -663,6 +714,16 @@            } #endif         }++     CiSetSource(Channel->Source(), Channel->Transponder());+     if (Channel->Ca() >= CA_ENCRYPTED_MIN) {+        CiAddPid(Channel->Sid(), Channel->Vpid(), 2);+        for (const int *Apid = Channel->Apids(); *Apid; Apid++)+            CiAddPid(Channel->Sid(), *Apid, 4);+        for (const int *Dpid = Channel->Dpids(); *Dpid; Dpid++)+            CiAddPid(Channel->Sid(), *Dpid, 0);+        }+      if (NeedsDetachReceivers)         DetachAllReceivers();      if (SetChannelDevice(Channel, LiveView)) {@@ -672,8 +733,7 @@            sectionHandler->SetStatus(true);            }         // Start decrypting any PIDs that might have been set in SetChannelDevice():-        if (ciHandler)-           ciHandler->StartDecrypting();+        CiStartDecrypting();         }      else         Result = scrFailed;@@ -1258,8 +1318,7 @@          Unlock();          if (!Running())             Start();-         if (ciHandler)-            ciHandler->StartDecrypting();+         CiStartDecrypting();          return true;          }       }@@ -1286,8 +1345,7 @@       else if (receiver[i])          receiversLeft = true;       }-  if (ciHandler)-     ciHandler->StartDecrypting();+  CiStartDecrypting();   if (!receiversLeft)      Cancel(3); }diff -urN -X ex.vdr-sc7 vdr-1.4.7-orig/device.h vdr-1.4.7-sc7/device.h--- vdr-1.4.7-orig/device.h	2006-06-15 11:32:48.000000000 +0200+++ vdr-1.4.7-sc7/device.h	2007-05-13 18:04:04.000000000 +0200@@ -311,6 +311,14 @@  protected:   cCiHandler *ciHandler;+  int ciSource, ciTransponder;+  cList<cCiCaProgramData> ciProgramList;+  cMutex ciListMutex;+  virtual void CiStartDecrypting(void);+  virtual bool CiAllowConcurrent(void) const { return false; }+  void CiSetSource(int Source, int Transponder);+  void CiAddPid(int ProgramNumber, int Pid, int StreamType);+  void CiSetPid(int Pid, bool Active); public:   cCiHandler *CiHandler(void) { return ciHandler; } diff -urN -X ex.vdr-sc7 vdr-1.4.7-orig/dvbdevice.c vdr-1.4.7-sc7/dvbdevice.c--- vdr-1.4.7-orig/dvbdevice.c	2007-02-24 12:10:14.000000000 +0100+++ vdr-1.4.7-sc7/dvbdevice.c	2007-06-24 19:42:24.000000000 +0200@@ -419,7 +419,11 @@      dvb_frontend_info feinfo;      if (ioctl(fd_frontend, FE_GET_INFO, &feinfo) >= 0) {         frontendType = feinfo.type;-        ciHandler = cCiHandler::CreateCiHandler(*cDvbName(DEV_DVB_CA, n));+        int fd_ca = DvbOpen(DEV_DVB_CA, n, O_RDWR);+        if(fd_ca>=0) {+          ciHandler = cCiHandler::CreateCiHandler(fd_ca);+          if(!ciHandler) close(fd_ca);+          }         dvbTuner = new cDvbTuner(fd_frontend, CardIndex(), frontendType, ciHandler);         }      else@@ -776,8 +780,12 @@            if (Channel->Vpid() && !HasPid(Channel->Vpid()) || Channel->Apid(0) && !HasPid(Channel->Apid(0))) { #ifdef DO_MULTIPLE_RECORDINGS #ifndef DO_MULTIPLE_CA_CHANNELS-              if (Ca() >= CA_ENCRYPTED_MIN || Channel->Ca() >= CA_ENCRYPTED_MIN)-                 needsDetachReceivers = Ca() != Channel->Ca();+              if (Ca() >= CA_ENCRYPTED_MIN || Channel->Ca() >= CA_ENCRYPTED_MIN) {+                 if(Channel->Ca()<CA_ENCRYPTED_MIN || CiAllowConcurrent())+                   result = true;+                 else+                   needsDetachReceivers = Ca() != Channel->Ca();+                 }               else #endif               if (!IsPrimaryDevice())@@ -927,7 +935,7 @@            SetPid(&pidHandles[ptAudio], ptAudio, true);            if (ciHandler) {               ciHandler->SetPid(pidHandles[ptAudio].pid, true);-              ciHandler->StartDecrypting();+              CiStartDecrypting();               }            }         }diff -urN -X ex.vdr-sc7 vdr-1.4.7-orig/tools.c vdr-1.4.7-sc7/tools.c--- vdr-1.4.7-orig/tools.c	2006-12-02 12:12:59.000000000 +0100+++ vdr-1.4.7-sc7/tools.c	2007-05-13 18:04:04.000000000 +0200@@ -542,9 +542,9 @@  // --- cTimeMs --------------------------------------------------------------- -cTimeMs::cTimeMs(void)+cTimeMs::cTimeMs(int Ms) {-  Set();+  Set(Ms); }  uint64_t cTimeMs::Now(void)diff -urN -X ex.vdr-sc7 vdr-1.4.7-orig/tools.h vdr-1.4.7-sc7/tools.h--- vdr-1.4.7-orig/tools.h	2006-12-03 18:38:38.000000000 +0100+++ vdr-1.4.7-sc7/tools.h	2007-05-13 18:04:04.000000000 +0200@@ -162,7 +162,7 @@ private:   uint64_t begin; public:-  cTimeMs(void);+  cTimeMs(int Ms = 0);   static uint64_t Now(void);   void Set(int Ms = 0);   bool TimedOut(void);

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线观看网站黄不卡| 成人国产精品免费观看视频| 欧美欧美午夜aⅴ在线观看| 亚洲精品免费视频| 在线视频你懂得一区二区三区| 亚洲伦理在线精品| 欧美色视频在线| 奇米影视7777精品一区二区| 精品久久久久香蕉网| 岛国精品在线播放| 一区二区三区免费| 日韩天堂在线观看| 成人理论电影网| 亚洲国产日产av| 欧美精品一区二区三区四区| 成人福利在线看| 三级久久三级久久久| 久久一二三国产| 欧美在线观看视频在线| 久久99精品国产.久久久久| 国产精品美女视频| 欧美久久免费观看| 国产精品乡下勾搭老头1| 一区二区三区小说| 精品少妇一区二区三区日产乱码| 国产精品影视在线| 午夜久久久久久久久久一区二区| 亚洲精品一区在线观看| 日本乱码高清不卡字幕| 蜜桃视频第一区免费观看| 国产精品久久久久影院色老大| 69p69国产精品| 成人app在线观看| 久草中文综合在线| 亚洲激情第一区| 国产亚洲欧美日韩日本| 欧美午夜精品一区| 成人美女在线视频| 丝袜亚洲另类欧美| 亚洲欧洲一区二区在线播放| 日韩欧美视频一区| 欧美专区日韩专区| 成人avav影音| 国产一区二区免费在线| 丝袜美腿亚洲综合| 亚洲免费观看高清完整版在线观看| 欧美成人a∨高清免费观看| 日本道色综合久久| 成人视屏免费看| 久久国产精品72免费观看| 亚洲五码中文字幕| 日韩美女视频一区二区| 久久精品人人做人人综合| 日韩视频在线一区二区| 欧美日韩国产欧美日美国产精品| 91视频免费看| 成人一区二区三区| 国产精品一区不卡| 国模少妇一区二区三区| 麻豆91免费观看| 日韩福利电影在线观看| 亚洲一区二区三区三| 亚洲欧美电影院| 国产精品美女久久久久久久久| 久久久蜜桃精品| 久久久久久久久久看片| 欧美tickling挠脚心丨vk| 91精品国产综合久久久蜜臀图片| 色中色一区二区| 色婷婷久久久亚洲一区二区三区| www.欧美色图| 成人h精品动漫一区二区三区| 国产v综合v亚洲欧| 成人在线综合网| 99精品黄色片免费大全| 91亚洲精品久久久蜜桃| 91美女在线视频| 在线欧美日韩国产| 欧美三级韩国三级日本一级| 欧美日精品一区视频| 欧美片网站yy| 日韩视频一区二区| 精品电影一区二区三区| 国产视频一区在线观看| 国产精品素人视频| 亚洲精品欧美专区| 视频精品一区二区| 麻豆国产一区二区| 国产成人精品免费看| av亚洲精华国产精华精| 色先锋aa成人| 在线播放国产精品二区一二区四区| 3atv一区二区三区| 久久综合久久99| 亚洲视频小说图片| 丝袜诱惑亚洲看片| 国产一区二区视频在线| 91玉足脚交白嫩脚丫在线播放| 欧美综合色免费| 精品美女一区二区| 国产精品美女久久久久久久久久久| 亚洲精品国产a| 看电影不卡的网站| 99精品欧美一区二区蜜桃免费| 欧美亚洲一区二区在线| 精品国产免费久久| 亚洲欧洲日韩在线| 日本aⅴ亚洲精品中文乱码| 国产精品亚洲综合一区在线观看| 91在线精品一区二区| 91精品国产综合久久久久久| 久久日韩粉嫩一区二区三区| 一区二区三区在线播放| 国产精品综合av一区二区国产馆| 99精品国产91久久久久久 | 国产在线播放一区三区四| 成人美女视频在线看| 欧美丰满少妇xxxxx高潮对白| 久久色.com| 亚洲综合一区二区| 国产精品一二二区| 精品视频全国免费看| 久久久精品国产99久久精品芒果| 亚洲一区视频在线| 毛片不卡一区二区| 91福利在线导航| 久久久久久久网| 免费一级欧美片在线观看| av福利精品导航| 26uuu国产一区二区三区| 亚洲一区影音先锋| 99麻豆久久久国产精品免费优播| 91精品国产手机| 一区二区三区在线看| 粉嫩久久99精品久久久久久夜 | 在线不卡欧美精品一区二区三区| 欧美韩日一区二区三区四区| 日本不卡一二三区黄网| 欧美主播一区二区三区美女| 国产精品区一区二区三区| 久久99精品国产.久久久久| 欧美日韩亚洲综合一区二区三区| 国产精品麻豆久久久| 激情五月婷婷综合| 3atv一区二区三区| 亚洲福利视频三区| 色哟哟在线观看一区二区三区| 国产亚洲精品精华液| 久久精品99国产精品日本| 在线精品视频免费播放| 成人欧美一区二区三区黑人麻豆| 激情av综合网| 日韩三级高清在线| 日韩不卡在线观看日韩不卡视频| 欧洲人成人精品| 日韩美女视频19| 91蜜桃视频在线| 亚洲人成亚洲人成在线观看图片 | 99vv1com这只有精品| 中文字幕电影一区| 岛国一区二区三区| 国产精品网站一区| www.欧美日韩| 亚洲免费资源在线播放| 99国产精品久久久| 亚洲自拍偷拍图区| 欧美综合色免费| 天堂成人国产精品一区| 欧美一区二区在线观看| 久久成人18免费观看| 日韩一区二区三区电影| 奇米色一区二区三区四区| 91精品国模一区二区三区| 久久精品99国产精品| 久久久精品国产免费观看同学| 国产91丝袜在线18| 亚洲欧美怡红院| 欧美做爰猛烈大尺度电影无法无天| 一区二区三区成人| 91麻豆精品国产91久久久| 麻豆精品视频在线观看免费| 久久人人97超碰com| 成人一区二区在线观看| 一区二区在线观看av| 777精品伊人久久久久大香线蕉| 青青草成人在线观看| 国产农村妇女精品| 91丨九色丨国产丨porny| 午夜精品久久久久久不卡8050| 91精品久久久久久久久99蜜臂| 国产在线观看一区二区| 中文字幕一区二区不卡| 欧美三级韩国三级日本三斤| 久久精品99国产国产精| 国产精品美女久久久久久久久 | 国产精品一区免费在线观看| 国产精品欧美综合在线| 欧美亚洲精品一区| 久久成人18免费观看| 自拍av一区二区三区|