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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? vdr-1.4.x-sc7.diff

?? 這是一個LINUX環境的 VDR 插件源代碼,可支持Irdeto, Seca, Viaccess, Nagra, Conax & Cryptoworks等CA系統的讀卡、共享等操作。
?? 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);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产丶欧美丶日本不卡视频| 久久99国产精品免费网站| 欧美精品一区二区三区四区| 欧美一区二区三区在线观看| 精品视频资源站| 欧美乱熟臀69xxxxxx| 91精品久久久久久久91蜜桃 | 麻豆精品蜜桃视频网站| 天天免费综合色| 成人福利视频在线看| 国产成人免费在线| 91在线一区二区三区| 日本电影欧美片| 91超碰这里只有精品国产| 日韩一区二区视频在线观看| 欧美大白屁股肥臀xxxxxx| 国产亚洲制服色| 亚洲欧美在线视频| 亚洲电影一区二区| 国产精品一区二区三区99| 成人免费看视频| 欧美私人免费视频| 精品国产一二三区| 中文字幕在线一区免费| 日韩精品亚洲一区二区三区免费| 日韩高清在线不卡| av不卡免费在线观看| 欧美日韩专区在线| 国产欧美日韩视频一区二区| 亚洲精品免费在线观看| 日本三级韩国三级欧美三级| 国产suv精品一区二区883| 色久综合一二码| xvideos.蜜桃一区二区| 亚洲精品欧美激情| 国产真实精品久久二三区| 在线亚洲免费视频| 久久久精品蜜桃| 亚洲成人综合视频| 成人午夜大片免费观看| 欧美一区二区在线免费观看| 国产精品美女视频| 九九九精品视频| 在线视频一区二区三| 国产婷婷一区二区| 日韩电影免费一区| 色婷婷国产精品| 日本一区二区三区电影| 奇米一区二区三区av| 日本高清免费不卡视频| 国产精品欧美经典| 精品影院一区二区久久久| 91福利国产精品| 国产精品理论片| 国产高清不卡二三区| 欧美一级高清片| 亚洲香肠在线观看| 一本大道久久a久久精二百| 久久久综合精品| 日本特黄久久久高潮| 欧美日韩国产高清一区二区三区 | 欧美国产在线观看| 国产在线观看免费一区| 欧美一区二区黄色| 亚洲国产一二三| 色94色欧美sute亚洲线路一久| 国产亲近乱来精品视频| 韩国精品在线观看| 久久综合久久综合九色| 国产在线播放一区三区四| 日韩欧美成人激情| 久久国产综合精品| 久久色.com| 国产精品亚洲成人| 国产精品免费视频观看| www.在线成人| 亚洲欧美日韩一区二区| 色天天综合久久久久综合片| 一区二区三区在线视频免费| 欧美性淫爽ww久久久久无| 亚洲第一主播视频| 欧美一区二区视频在线观看| 日本午夜一本久久久综合| 欧美va天堂va视频va在线| 国内精品自线一区二区三区视频| 日韩免费高清视频| 国产高清精品网站| 亚洲欧美色综合| 欧美综合久久久| 婷婷国产在线综合| 精品少妇一区二区三区日产乱码| 久久精品国产一区二区三| 久久综合久久综合九色| 99免费精品在线| 亚洲国产精品嫩草影院| 欧美成人艳星乳罩| 国产剧情一区在线| 椎名由奈av一区二区三区| 日本久久一区二区| 奇米777欧美一区二区| 久久女同性恋中文字幕| 色婷婷综合五月| 日本va欧美va瓶| 中文一区一区三区高中清不卡| 91蝌蚪porny成人天涯| 日韩av一级电影| 欧美激情综合五月色丁香| 欧美日韩一区二区三区不卡| 精品亚洲成a人| 日韩美女精品在线| 日韩一区二区三区观看| 9i在线看片成人免费| 日韩国产在线一| 中文幕一区二区三区久久蜜桃| 欧美人动与zoxxxx乱| 国产精品亚洲第一| 日韩在线a电影| 国产精品福利一区二区三区| 欧美一区二区私人影院日本| 99精品在线观看视频| 国内精品视频666| 亚洲一区二区在线免费观看视频 | 丝袜美腿亚洲一区| 日韩久久一区二区| 久久女同精品一区二区| 欧美日韩小视频| 成人免费毛片app| 国产专区欧美精品| 青椒成人免费视频| 夜夜精品视频一区二区| 国产精品国产三级国产普通话蜜臀 | 久久色视频免费观看| 欧美老年两性高潮| 色欧美日韩亚洲| a级精品国产片在线观看| 国产精一区二区三区| 久久精品久久久精品美女| 琪琪久久久久日韩精品| 亚洲成人777| 亚洲午夜一区二区三区| 亚洲欧美一区二区久久| 亚洲精品自拍动漫在线| 国产精品人成在线观看免费 | 99国产精品99久久久久久| 久久99国产精品免费| 久久国产福利国产秒拍| 日本成人在线看| 日韩—二三区免费观看av| 五月天久久比比资源色| 亚洲国产日韩精品| 亚洲第一综合色| 视频一区在线播放| 麻豆精品在线看| 麻豆精品在线看| 精品午夜久久福利影院| 国产在线国偷精品免费看| 国产在线精品一区二区| 国产精品一区二区三区四区| 国产成人日日夜夜| www.亚洲色图.com| 在线精品国精品国产尤物884a| 欧美在线色视频| 欧美一区二区三区视频免费 | 狠狠色狠狠色合久久伊人| 国产一区二区三区四| 国产高清一区日本| 色老综合老女人久久久| 欧美色图在线观看| 精品国产乱码久久久久久蜜臀| 日韩精品在线看片z| 久久精品一区二区三区四区| 亚洲欧美一区二区三区极速播放| 一区二区欧美视频| 久久成人免费电影| 不卡的av电影| 欧美日韩激情在线| 久久综合久久99| 一区二区三区蜜桃网| 美女国产一区二区三区| 成人网在线免费视频| 色菇凉天天综合网| 欧美成人一区二区三区| 亚洲男人的天堂在线观看| 日韩av成人高清| 成人av在线网站| 欧美精选一区二区| 国产亚洲福利社区一区| 一二三区精品视频| 国产99久久久国产精品| 欧美性生活影院| 中文字幕第一页久久| 日韩精品乱码av一区二区| 成人不卡免费av| 欧美一区中文字幕| 亚洲另类春色校园小说| 国产伦精一区二区三区| 欧美日韩和欧美的一区二区| 国产农村妇女毛片精品久久麻豆| 丝袜亚洲另类丝袜在线| 91日韩在线专区|