Tweaks to hacks/ directory.
authorCarl Hetherington <cth@carlh.net>
Thu, 10 Sep 2015 08:57:24 +0000 (09:57 +0100)
committerCarl Hetherington <cth@carlh.net>
Thu, 10 Sep 2015 08:57:24 +0000 (09:57 +0100)
hacks/.gitignore
hacks/dump_j2k.py [new file with mode: 0644]
hacks/start_server.sh [new file with mode: 0644]

index 31cdc44e04447e59b5110c7d8fc13f9f69c8caef..a8b3e2631a9512dc445c8d5e654be36bb4c9404c 100644 (file)
@@ -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 (file)
index 0000000..0d211b1
--- /dev/null
@@ -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 (file)
index 0000000..1d31a29
--- /dev/null
@@ -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'