Nugget
Bare-metal libraries and examples for the original PlayStation
Loading...
Searching...
No Matches
Functions | Variables
gentable Namespace Reference

Functions

 cell (r, c)
 
 one (pat, name)
 
 pack (e)
 
 dcbook (name)
 

Variables

 ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
 
 DCT_ROOT = os.environ.get('BSDEC_DCT_ROOT')
 
 SRC = os.path.join(DCT_ROOT, 'src', 'supportpsx', 'dct.cc')
 
 OUT = os.path.join(ROOT, 'bsdec', 'bsdec-vlc.h')
 
 src = open(SRC).read()
 
 m = re.search(r'c_vlcMaxLevel\[32\]\s*=\s*\{([^}]*)\}', src)
 
list maxlvl = [int(x) for x in m.group(1).split(',')]
 
 pairs = re.findall(r'\{\s*(0x[0-9a-fA-F]+|0)\s*,\s*(\d+)\s*\}', m.group(1))
 
 EOB = one(r'c_vlcEob\s*=\s*\{\s*(0x[0-9a-fA-F]+)\s*,\s*(\d+)\s*\}', 'eob')
 
 ESC = one(r'c_vlcEsc\s*=\s*\{\s*(0x[0-9a-fA-F]+)\s*,\s*(\d+)\s*\}', 'esc')
 
list syms = []
 
 c
 
 b
 
list codes = [s[0] for s in syms]
 
 MAXNZ = max(len(c) - len(c.lstrip('0')) for c in codes)
 
list groups = [[] for _ in range(MAXNZ + 1)]
 
 n = len(c) - len(c.lstrip('0'))
 
list widths = [max(len(c) - n - 1 for c, _, _, _ in g) for n, g in enumerate(groups)]
 
list tables = []
 
list offsets = []
 
int total = 0
 
list w = widths[n]
 
list slots = [None] * (1 << w)
 
 suf = c[n + 1:]
 
 nbits = len(suf)
 
int base = int(suf, 2) if nbits else 0
 
tuple idx = (base << (w - nbits)) | extra
 
int INVALID = 0
 
 holes = sum(1 for t in tables for e in t if e is None)
 
int pad = 32 - len(widths)
 
str line = ' '
 
str tok = ' 0x%08x,' % pack(e)
 
 luma = dcbook('c_dcSizeLuma')
 
 chroma = dcbook('c_dcSizeChroma')
 
list pats = [format(c, '0%db' % b) for c, b in bk]
 

Function Documentation

◆ cell()

gentable.cell (   r,
  c 
)

◆ dcbook()

gentable.dcbook (   name)

◆ one()

gentable.one (   pat,
  name 
)

◆ pack()

gentable.pack (   e)

Variable Documentation

◆ b

gentable.b

◆ base

int gentable.base = int(suf, 2) if nbits else 0

◆ c

gentable.c

◆ chroma

gentable.chroma = dcbook('c_dcSizeChroma')

◆ codes

list gentable.codes = [s[0] for s in syms]

◆ DCT_ROOT

gentable.DCT_ROOT = os.environ.get('BSDEC_DCT_ROOT')

◆ EOB

gentable.EOB = one(r'c_vlcEob\s*=\s*\{\s*(0x[0-9a-fA-F]+)\s*,\s*(\d+)\s*\}', 'eob')

◆ ESC

gentable.ESC = one(r'c_vlcEsc\s*=\s*\{\s*(0x[0-9a-fA-F]+)\s*,\s*(\d+)\s*\}', 'esc')

◆ groups

list gentable.groups = [[] for _ in range(MAXNZ + 1)]

◆ holes

gentable.holes = sum(1 for t in tables for e in t if e is None)

◆ idx

tuple gentable.idx = (base << (w - nbits)) | extra

◆ INVALID

int gentable.INVALID = 0

◆ line

str gentable.line = ' '

◆ luma

gentable.luma = dcbook('c_dcSizeLuma')

◆ m

gentable.m = re.search(r'c_vlcMaxLevel\[32\]\s*=\s*\{([^}]*)\}', src)

◆ maxlvl

list gentable.maxlvl = [int(x) for x in m.group(1).split(',')]

◆ MAXNZ

gentable.MAXNZ = max(len(c) - len(c.lstrip('0')) for c in codes)

◆ n

gentable.n = len(c) - len(c.lstrip('0'))

◆ nbits

gentable.nbits = len(suf)

◆ offsets

list gentable.offsets = []

◆ OUT

gentable.OUT = os.path.join(ROOT, 'bsdec', 'bsdec-vlc.h')

◆ pad

int gentable.pad = 32 - len(widths)

◆ pairs

gentable.pairs = re.findall(r'\{\s*(0x[0-9a-fA-F]+|0)\s*,\s*(\d+)\s*\}', m.group(1))

◆ pats

list gentable.pats = [format(c, '0%db' % b) for c, b in bk]

◆ ROOT

gentable.ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

◆ slots

list gentable.slots = [None] * (1 << w)

◆ SRC

gentable.SRC = os.path.join(DCT_ROOT, 'src', 'supportpsx', 'dct.cc')

◆ src

gentable.src = open(SRC).read()

◆ suf

gentable.suf = c[n + 1:]

◆ syms

list gentable.syms = []

◆ tables

list gentable.tables = []

◆ tok

str gentable.tok = ' 0x%08x,' % pack(e)

◆ total

int gentable.total = 0

◆ w

list gentable.w = widths[n]

◆ widths

list gentable.widths = [max(len(c) - n - 1 for c, _, _, _ in g) for n, g in enumerate(groups)]