From afbfd920938ec169b8f3224e43cd2119abdb2cf4 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Thu, 10 Sep 2015 09:57:24 +0100 Subject: [PATCH] Tweaks to hacks/ directory. --- hacks/.gitignore | 16 ++++++ hacks/dump_j2k.py | 122 ++++++++++++++++++++++++++++++++++++++++++ hacks/start_server.sh | 3 ++ 3 files changed, 141 insertions(+) create mode 100644 hacks/dump_j2k.py create mode 100644 hacks/start_server.sh diff --git a/hacks/.gitignore b/hacks/.gitignore index 31cdc44e0..a8b3e2631 100644 --- a/hacks/.gitignore +++ b/hacks/.gitignore @@ -1 +1,17 @@ jpegdump +subtitle_alignment/dcp_1/SubsTest1_TST-1_F_XX-EN_2K_* +subtitle_alignment/dcp_1/info +subtitle_alignment/dcp_1/log +subtitle_alignment/dcp_1/video +subtitle_alignment/dcp_2/SubsTest2_TST-1_F_XX-EN_2K_* +subtitle_alignment/dcp_2/info +subtitle_alignment/dcp_2/log +subtitle_alignment/dcp_2/video +subtitle_alignment/dcp_3/SubsTest3_TST-1_F_XX-EN_2K_* +subtitle_alignment/dcp_3/info +subtitle_alignment/dcp_3/log +subtitle_alignment/dcp_3/video +subtitle_alignment/dcp_4/SubsTest4_TST-1_F_XX-EN_2K_* +subtitle_alignment/dcp_4/info +subtitle_alignment/dcp_4/log +subtitle_alignment/dcp_4/video diff --git a/hacks/dump_j2k.py b/hacks/dump_j2k.py new file mode 100644 index 000000000..0d211b1a1 --- /dev/null +++ b/hacks/dump_j2k.py @@ -0,0 +1,122 @@ +#!/usr/bin/python + +import sys + +def read(f, n): + r = [] + for i in range(0, n): + r.append(ord(f.read(1))) + return r + +def read_8(f): + r = read(f, 1) + return r[0] + +def read_16(f): + r = read(f, 2) + return r[0] << 8 | r[1] + +def read_32(f): + r = read(f, 4) + return r[0] << 24 | r[1] << 16 | r[2] << 8 | r[3]; + +def require(f, data, what): + r = read(f, len(data)) + if r != data: + print r + raise Exception() + print what + +f = open(sys.argv[1], 'rb') + +require(f, [0xff, 0x4f], 'SOC') +require(f, [0xff, 0x51], 'SIZ') +size = read_16(f) +print '\tlength', size +f.seek(size - 2, 1) +require(f, [0xff, 0x52], 'COD') +size = read_16(f) +print '\tlength', size +coding_style = read_8(f) +print '\tcoding style %2x' % coding_style +print '\tprogression order', +po = read_8(f) +if po == 0: + print 'LRCP' +elif po == 1: + print 'RLCP' +elif po == 2: + print 'RPCL' +elif po == 3: + print 'PCRL' +elif po == 4: + print 'CPRL' +print '\tlayers', read_16(f) +print '\tmulti-component transform', read_8(f) +levels = read_8(f) +print '\ttransform levels', levels +print '\tcode-block sizes %dx%d' % (read_8(f), read_8(f)) +print '\tmode switches %2x' % read_8(f) +print '\twavelet transform', +wt = read_8(f) +if wt == 0: + print '9/7 irreversible' +else: + print '5/3 reversible' +if coding_style & 1: + print '\tprecinct sizes ', + for i in range(0, levels + 1): + print read_8(f), + print +require(f, [0xff, 0x5C], 'QCD') +size = read_16(f) +print '\tlength', size +f.seek(size - 2, 1) + +tile_part_length = None + +while True: + r = read(f, 2) + if r == [0xff, 0x53]: + print 'COC' + size = read_16(f) + print '\tlength', size + f.seek(size - 2, 1) + elif r == [0xff, 0x5c]: + print 'QCD' + size = read_16(f) + print '\tlength', size + f.seek(size - 2, 1) + elif r == [0xff, 0x5d]: + print 'QCC' + size = read_16(f) + print '\tlength', size + f.seek(size - 2, 1) + elif r == [0xff, 0x64]: + print 'COM' + size = read_16(f) + print '\tlength', size + f.seek(size - 2, 1) + elif r == [0xff, 0x55]: + print 'TLM' + size = read_16(f) + print '\tlength', size + f.seek(size - 2, 1) + elif r == [0xff, 0x90]: + print 'SOT' + size = read_16(f) + print '\tlength', size + print '\ttile index', read_16(f) + tile_part_length = read_32(f) + print '\ttile-part length', tile_part_length + print '\ttile-part index', read_8(f) + print '\tnumber of tile-parts', read_8(f) + elif r == [0xff, 0x93]: + print 'SOD' + f.seek(tile_part_length - 14, 1) + elif r == [0xff, 0xd9]: + print 'EOC' + sys.exit(0) + else: + print r + raise Exception() diff --git a/hacks/start_server.sh b/hacks/start_server.sh new file mode 100644 index 000000000..1d31a2913 --- /dev/null +++ b/hacks/start_server.sh @@ -0,0 +1,3 @@ +#!/bin/bash +killall dcpomatic2_server_cli +screen -dmS dcpomatic bash -c 'cd src/dcpomatic2; LD_LIBRARY_PATH=$HOME/ubuntu/lib run/dcpomatic_server_cli --verbose' -- 2.30.2