SASC
DVBSoftCAM

cam.c File Reference

#include <stdlib.h>
#include <stdio.h>
#include <errno.h>
#include <vdr/device.h>
#include <vdr/channels.h>
#include <vdr/thread.h>
#include <vdr/ringbuffer.h>
#include "cam.h"
#include "global.h"
#include "device.h"
#include "scsetup.h"
#include "filter.h"
#include "system.h"
#include "data.h"
#include "override.h"
#include "misc.h"
#include "log-core.h"
#include "FFdecsa/FFdecsa.h"

Go to the source code of this file.

Classes

class  cLogStats
class  cHookManager
class  cLogChain
class  cLogger
class  cEcmData
class  cEcmPri
class  cEcmHandler
class  cChannelCaids
class  cChannelList
class  cScCamSlot
class  cCams
 SASC. More...
struct  TPDU

Defines

#define IDLE_SLEEP   0
#define IDLE_GETCA   200
#define IDLE_GETCA_SLOW   20000
#define IDLE_NO_SYNC   800
#define IDLE_SYNC   2000
#define CW_REPEAT_TIME   2000
#define LOG_COUNT   3
#define CHAIN_HOLD   120000
#define ECM_DATA_TIME   6000
#define MAX_ECM_IDLE   300000
#define MAX_ECM_HOLD   15000
#define ECMCACHE_FILE   "ecm.cache"
#define L_HEX   2
#define L_HEX_ECM   LCLASS(L_HEX,2)
#define L_HEX_EMM   LCLASS(L_HEX,4)
#define L_HEX_CAT   LCLASS(L_HEX,8)
#define L_HEX_PMT   LCLASS(L_HEX,16)
#define L_HEX_HOOK   LCLASS(L_HEX,32)
#define L_HEX_ALL   LALL(L_HEX_HOOK)
#define TYPENAME(type)   (typeNames[(type)<=7?(type):7])
#define COUNTS   20
#define SAMPLE   (30*1000)
#define AVR1   (60*1000)
#define AVR2   (4*60*1000)
#define AVR3   (10*60*1000)
#define REPORT   (60*1000)
#define CACHE_VERS   1
#define LEN_OFF   2
#define TDPU_SIZE_INDICATOR   0x80
#define CAID_TIME   300000
#define TRIGGER_TIME   10000
#define SLOT_CAID_CHECK   10000
#define SLOT_RESET_TIME   600
#define TPDU(data, slot)   do { unsigned char *_d=(data); _d[0]=(slot); _d[1]=tcid; } while(0)
#define TAG(data, tag, len)   do { unsigned char *_d=(data); _d[0]=(tag); _d[1]=(len); } while(0)
#define SB_TAG(data, sb)   do { unsigned char *_d=(data); _d[0]=0x80; _d[1]=0x02; _d[2]=tcid; _d[3]=(sb); } while(0)
#define MAX_STALL_MS   70
#define MAX_REL_WAIT   100
#define MAX_KEY_WAIT   500
#define FL_EVEN_GOOD   1
#define FL_ODD_GOOD   2
#define FL_ACTIVITY   4

Functions

void LogStatsUp (void)
void LogStatsDown (void)

Variables

static struct LogModule lm_hex
static const char * typeNames [] = { "typ0","typ1","VIDEO","typ3","AUDIO","typ5","DOLBY","typ6+" }
static cMutex logstatsMutex
static cLogStats * logstats = 0
cEcmCache ecmcache
static cCams cams

Define Documentation

#define AVR1   (60*1000)

Definition at line 83 of file cam.c.

#define AVR2   (4*60*1000)

Definition at line 84 of file cam.c.

#define AVR3   (10*60*1000)

Definition at line 85 of file cam.c.

#define CACHE_VERS   1

Definition at line 587 of file cam.c.

#define CAID_TIME   300000

Definition at line 1740 of file cam.c.

#define CHAIN_HOLD   120000

Definition at line 53 of file cam.c.

#define COUNTS   20

Definition at line 81 of file cam.c.

#define CW_REPEAT_TIME   2000

Definition at line 51 of file cam.c.

#define ECM_DATA_TIME   6000

Definition at line 54 of file cam.c.

#define ECMCACHE_FILE   "ecm.cache"

Definition at line 58 of file cam.c.

#define FL_ACTIVITY   4

Definition at line 2718 of file cam.c.

#define FL_EVEN_GOOD   1

Definition at line 2716 of file cam.c.

#define FL_ODD_GOOD   2

Definition at line 2717 of file cam.c.

#define IDLE_GETCA   200

Definition at line 46 of file cam.c.

#define IDLE_GETCA_SLOW   20000

Definition at line 47 of file cam.c.

#define IDLE_NO_SYNC   800

Definition at line 48 of file cam.c.

#define IDLE_SLEEP   0

Definition at line 45 of file cam.c.

#define IDLE_SYNC   2000

Definition at line 49 of file cam.c.

#define L_HEX   2

Definition at line 60 of file cam.c.

#define L_HEX_ALL   LALL(L_HEX_HOOK)

Definition at line 66 of file cam.c.

#define L_HEX_CAT   LCLASS(L_HEX,8)

Definition at line 63 of file cam.c.

#define L_HEX_ECM   LCLASS(L_HEX,2)

Definition at line 61 of file cam.c.

#define L_HEX_EMM   LCLASS(L_HEX,4)

Definition at line 62 of file cam.c.

#define L_HEX_HOOK   LCLASS(L_HEX,32)

Definition at line 65 of file cam.c.

#define L_HEX_PMT   LCLASS(L_HEX,16)

Definition at line 64 of file cam.c.

#define LEN_OFF   2

Definition at line 1668 of file cam.c.

#define LOG_COUNT   3

Definition at line 52 of file cam.c.

#define MAX_ECM_HOLD   15000

Definition at line 56 of file cam.c.

#define MAX_ECM_IDLE   300000

Definition at line 55 of file cam.c.

#define MAX_KEY_WAIT   500

Definition at line 2714 of file cam.c.

#define MAX_REL_WAIT   100

Definition at line 2713 of file cam.c.

#define MAX_STALL_MS   70

Definition at line 2711 of file cam.c.

#define REPORT   (60*1000)

Definition at line 86 of file cam.c.

#define SAMPLE   (30*1000)

Definition at line 82 of file cam.c.

#define SB_TAG (   data,
  sb 
)    do { unsigned char *_d=(data); _d[0]=0x80; _d[1]=0x02; _d[2]=tcid; _d[3]=(sb); } while(0)

Definition at line 2187 of file cam.c.

#define SLOT_CAID_CHECK   10000

Definition at line 1742 of file cam.c.

#define SLOT_RESET_TIME   600

Definition at line 1743 of file cam.c.

#define TAG (   data,
  tag,
  len 
)    do { unsigned char *_d=(data); _d[0]=(tag); _d[1]=(len); } while(0)

Definition at line 2186 of file cam.c.

#define TDPU_SIZE_INDICATOR   0x80

Definition at line 1738 of file cam.c.

#define TPDU (   data,
  slot 
)    do { unsigned char *_d=(data); _d[0]=(slot); _d[1]=tcid; } while(0)

Definition at line 2185 of file cam.c.

#define TRIGGER_TIME   10000

Definition at line 1741 of file cam.c.

#define TYPENAME (   type)    (typeNames[(type)<=7?(type):7])

Definition at line 77 of file cam.c.


Function Documentation

void LogStatsDown ( void  )

Definition at line 110 of file cam.c.

References cMutex::Lock(), logstats, and cMutex::Unlock().

void LogStatsUp ( void  )

Variable Documentation

cCams cams [static]

Definition at line 1977 of file cam.c.

Definition at line 640 of file cam.c.

struct LogModule lm_hex [static]
Initial value:
 {
  (LMOD_ENABLE|L_HEX_ALL)&LOPT_MASK,
  (LMOD_ENABLE)&LOPT_MASK,
  "hexdata",
  { "ecm","emm","cat","pmt","hook" }
  }

Definition at line 68 of file cam.c.

cLogStats* logstats = 0 [static]

Definition at line 101 of file cam.c.

Referenced by LogStatsDown().

Definition at line 100 of file cam.c.

const char* typeNames[] = { "typ0","typ1","VIDEO","typ3","AUDIO","typ5","DOLBY","typ6+" } [static]

Definition at line 76 of file cam.c.

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines