From 5aefef2c8916db5ad10811739ab672ec6d716cf3 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Wed, 26 Aug 2015 10:22:43 +0100 Subject: [PATCH 1/1] Add some hacks, mostly subtitle alignment tests. --- hacks/.gitignore | 1 + hacks/jpegdump.c | 436 ++++++++++++++++++++ hacks/subtitle_alignment/build.sh | 4 + hacks/subtitle_alignment/dcp_1/metadata.xml | 97 +++++ hacks/subtitle_alignment/dcp_1/subs.xml | 27 ++ hacks/subtitle_alignment/dcp_2/metadata.xml | 97 +++++ hacks/subtitle_alignment/dcp_2/subs.xml | 27 ++ hacks/subtitle_alignment/dcp_3/metadata.xml | 97 +++++ hacks/subtitle_alignment/dcp_3/subs.xml | 27 ++ hacks/subtitle_alignment/dcp_4/metadata.xml | 97 +++++ hacks/subtitle_alignment/dcp_4/subs.xml | 27 ++ hacks/subtitle_alignment/grid.png | Bin 0 -> 61668 bytes hacks/subtitle_alignment/grid.svg | 222 ++++++++++ 13 files changed, 1159 insertions(+) create mode 100644 hacks/.gitignore create mode 100644 hacks/jpegdump.c create mode 100644 hacks/subtitle_alignment/build.sh create mode 100644 hacks/subtitle_alignment/dcp_1/metadata.xml create mode 100644 hacks/subtitle_alignment/dcp_1/subs.xml create mode 100644 hacks/subtitle_alignment/dcp_2/metadata.xml create mode 100644 hacks/subtitle_alignment/dcp_2/subs.xml create mode 100644 hacks/subtitle_alignment/dcp_3/metadata.xml create mode 100644 hacks/subtitle_alignment/dcp_3/subs.xml create mode 100644 hacks/subtitle_alignment/dcp_4/metadata.xml create mode 100644 hacks/subtitle_alignment/dcp_4/subs.xml create mode 100644 hacks/subtitle_alignment/grid.png create mode 100644 hacks/subtitle_alignment/grid.svg diff --git a/hacks/.gitignore b/hacks/.gitignore new file mode 100644 index 000000000..31cdc44e0 --- /dev/null +++ b/hacks/.gitignore @@ -0,0 +1 @@ +jpegdump diff --git a/hacks/jpegdump.c b/hacks/jpegdump.c new file mode 100644 index 000000000..d5a8b0485 --- /dev/null +++ b/hacks/jpegdump.c @@ -0,0 +1,436 @@ +/* + avidump.c + + simple format info and dump utility for jpeg codestreams + + Copyright (C) 2006 Ralph Giles. All rights reserved. + + Distributed under the terms of the GNU GPL. + See http://www.gnu.org/ for details. +*/ + +#include +#include +#include +#include + +/* JPEG marker codes + - these are the second bytes; a marker consistes of 0xff + followed by the type codes given below. */ +typedef enum { + + /* 0xFF00, 0xFF01, 0xFFFE, 0xFFC0-0xFFDF(?) ITU T.81/IEC 10918-1 */ + /* 0xFFF0 - 0xFFF6 ITU T.84/IEC 10918-3 JPEG extensions */ + /* 0xFFF7 - 0xFFF8 ITU T.87/IEC 14495-1 JPEG LS */ + /* 0xFF4F - 0xFF6f, 0xFF90 - 0xFF93 JPEG 2000 IEC 15444-1 */ + /* 0xFF30 - 0xFF3F reserved JP2 (markers only--no marker segments */ + + /* JPEG 1994 - defined in ITU T.81 | ISO IEC 10918-1 */ + SOF0 = 0xc0, /* start of frame - baseline jpeg */ + SOF1 = 0xc1, /* extended sequential, huffman */ + SOF2 = 0xc2, /* progressive, huffman */ + SOF3 = 0xc3, /* lossless, huffman */ + + SOF5 = 0xc5, /* differential sequential, huffman */ + SOF6 = 0xc6, /* differential progressive, huffman */ + SOF7 = 0xc7, /* differential lossless, huffman */ + JPG = 0xc8, /* reserved for JPEG extension */ + SOF9 = 0xc9, /* extended sequential, arithmetic */ + SOF10 = 0xca, /* progressive, arithmetic */ + SOF11 = 0xcb, /* lossless, arithmetic */ + + SOF13 = 0xcd, /* differential sequential, arithmetic */ + SOF14 = 0xce, /* differential progressive, arithmetic */ + SOF15 = 0xcf, /* differential lossless, arithmetic */ + + DHT = 0xc4, /* define huffman tables */ + + DAC = 0xcc, /* define arithmetic-coding conditioning */ + + /* restart markers */ + RST0 = 0xd0, + RST1 = 0xd1, + RST2 = 0xd2, + RST3 = 0xd3, + RST4 = 0xd4, + RST5 = 0xd5, + RST6 = 0xd6, + RST7 = 0xd7, + /* delimeters */ + SOI = 0xd8, /* start of image */ + EOI = 0xd9, /* end of image */ + SOS = 0xda, /* start of scan */ + DQT = 0xdb, /* define quantization tables */ + DNL = 0xdc, /* define number of lines */ + DRI = 0xdd, /* define restart interval */ + DHP = 0xde, /* define hierarchical progression */ + EXP = 0xdf, /* expand reference components */ + + /* JPEG 1997 extensions ITU T.84 | ISO IEC 10918-3 */ + /* application data sections */ + APP0 = 0xe0, + APP1 = 0xe1, + APP2 = 0xe2, + APP3 = 0xe3, + APP4 = 0xe4, + APP5 = 0xe5, + APP6 = 0xe6, + APP7 = 0xe7, + APP8 = 0xe8, + APP9 = 0xe9, + APP10 = 0xea, + APP11 = 0xeb, + APP12 = 0xec, + APP13 = 0xed, + APP14 = 0xee, + APP15 = 0xef, + /* extention data sections */ + JPG0 = 0xf0, + JPG1 = 0xf1, + JPG2 = 0xf2, + JPG3 = 0xf3, + JPG4 = 0xf4, + JPG5 = 0xf5, + JPG6 = 0xf6, + SOF48 = 0xf7, /* JPEG-LS */ + LSE = 0xf8, /* JPEG-LS extension parameters */ + JPG9 = 0xf9, + JPG10 = 0xfa, + JPG11 = 0xfb, + JPG12 = 0xfc, + JPG13 = 0xfd, + JCOM = 0xfe, /* comment */ + + TEM = 0x01, /* temporary private use for arithmetic coding */ + + /* 0x02 -> 0xbf reserved in JPEG 94/97*/ + + /* JPEG 2000 - defined in IEC 15444-1 "JPEG 2000 Core (part 1)" */ + /* delimiters */ + SOC = 0x4f, /* start of codestream */ + SOT = 0x90, /* start of tile */ + SOD = 0x93, /* start of data */ + EOC = 0xd9, /* end of codestream */ + /* fixed information segment */ + SIZ = 0x51, /* image and tile size */ + /* functional segments */ + COD = 0x52, /* coding style default */ + COC = 0x53, /* coding style component */ + RGN = 0x5e, /* region of interest */ + QCD = 0x5c, /* quantization default */ + QCC = 0x5d, /* quantization component */ + POC = 0x5f, /* progression order change */ + /* pointer segments */ + TLM = 0x55, /* tile-part lengths */ + PLM = 0x57, /* packet length (main header) */ + PLT = 0x58, /* packet length (tile-part header) */ + PPM = 0x60, /* packed packet headers (main header) */ + PPT = 0x61, /* packet packet headers (tile-part header) */ + /* bitstream internal markers and segments */ + SOP = 0x91, /* start of packet */ + EPH = 0x92, /* end of packet header */ + /* informational segments */ + CRG = 0x63, /* component registration */ + COM = 0x64, /* comment */ + +} marker; + +typedef struct { + char *mark; /* marker mnemonic string */ + char *name; /* longer name */ + char *spec; /* defining specification */ +} marker_info; + +marker_info *markers; + +/* helper for structure initialization */ +marker_info init_marker(char *mark, char *name, char *spec) +{ + marker_info marker; + + marker.mark = mark; + marker.name = name; + marker.spec = spec; + + return marker; +} + +marker_info *init_markers(void) +{ + int i; + marker_info *marker; + char name[256]; + int namelen; + + /* allocate marker info array */ + marker = malloc(256 * sizeof(*marker)); + if (marker == NULL) return marker; + + /* set default values for all marker code values */ + namelen = strlen("reserved XX"); + for (i = 0; i < 256; i++) { + snprintf(name, 256, "reserved %02x", i); + marker[i].mark = "---"; + marker[i].name = malloc(namelen+1); + if (marker[i].name) memcpy(marker[i].name, name, namelen+1); + marker[i].spec = strdup("JPEG"); + } + + /* set defined marks */ + marker[0x00] = init_marker( "nul", "reserved 00", "JPEG" ); + marker[0x01] = init_marker( "TEM", "reserved 01", "JPEG" ); + + /* JPEG 1994 - defined in ITU T.81 | ISO IEC 10918-1 */ + /* frame types */ + marker[0xc0] = init_marker( "SOF0", "start of frame (baseline jpeg)", "JPEG 1994" ); + marker[0xc1] = init_marker( "SOF1", "start of frame (extended sequential, huffman)", "JPEG 1994" ); + marker[0xc2] = init_marker( "SOF2", "start of frame (progressive, huffman)", "JPEG 1994" ); + marker[0xc3] = init_marker( "SOF3", "start of frame (lossless, huffman)", "JPEG 1994" ); + + marker[0xc5] = init_marker( "SOF5", "start of frame (differential sequential, huffman)", "JPEG 1994" ); + marker[0xc6] = init_marker( "SOF6", "start of frame (differential progressive, huffman)", "JPEG 1994" ); + marker[0xc7] = init_marker( "SOF7", "start of frame (differential lossless, huffman)", "JPEG 1994" ); + marker[0xc8] = init_marker( "JPG", "reserved for JPEG extension", "JPEG 1994" ); + marker[0xc9] = init_marker( "SOF9", "start of frame (extended sequential, arithmetic)", "JPEG 1994" ); + marker[0xca] = init_marker( "SOF10", "start of frame (progressive, arithmetic)", "JPEG 1994" ); + marker[0xcb] = init_marker( "SOF11", "start of frame (lossless, arithmetic)", "JPEG 1994" ); + + marker[0xcd] = init_marker( "SOF13", "start of frame (differential sequential, arithmetic)", "JPEG 1994" ); + marker[0xce] = init_marker( "SOF14", "start of frame (differential progressive, arithmetic)", "JPEG 1994" ); + marker[0xcf] = init_marker( "SOF15", "start of frame (differential lossless, arithmetic)", "JPEG 1994" ); + + marker[0xc4] = init_marker( "DHT", "define huffman tables", "JPEG 1994" ); + marker[0xcc] = init_marker( "DAC", "define arithmetic coding conditioning", "JPEG 1994" ); + + /* restart markers */ + marker[0xd0] = init_marker( "RST0", "restart marker 0", "JPEG 1994" ); + marker[0xd1] = init_marker( "RST1", "restart marker 1", "JPEG 1994" ); + marker[0xd2] = init_marker( "RST2", "restart marker 2", "JPEG 1994" ); + marker[0xd3] = init_marker( "RST3", "restart marker 3", "JPEG 1994" ); + marker[0xd4] = init_marker( "RST4", "restart marker 4", "JPEG 1994" ); + marker[0xd5] = init_marker( "RST5", "restart marker 5", "JPEG 1994" ); + marker[0xd6] = init_marker( "RST6", "restart marker 6", "JPEG 1994" ); + marker[0xd7] = init_marker( "RST7", "restart marker 7", "JPEG 1994" ); + /* delimeters */ + marker[0xd8] = init_marker( "SOI", "start of image", "JPEG 1994" ); + marker[0xd9] = init_marker( "EOI", "end of image", "JPEG 1994" ); + marker[0xda] = init_marker( "SOS", "start of scan", "JPEG 1994" ); + marker[0xdb] = init_marker( "DQT", "define quantization tables", "JPEG 1994" ); + marker[0xdc] = init_marker( "DNL", "define number of lines", "JPEG 1994" ); + marker[0xdd] = init_marker( "DRI", "define restart interval", "JPEG 1994" ); + marker[0xde] = init_marker( "DHP", "define hierarchical progression", "JPEG 1994" ); + marker[0xdf] = init_marker( "EXP", "expand reference components", "JPEG 1994" ); + + /* JPEG 1997 extensions ITU T.84 | ISO IEC 10918-3 */ + /* application data sections */ + marker[0xe0] = init_marker( "APP0", "application data section 0", "JPEG 1997" ); + marker[0xe1] = init_marker( "APP1", "application data section 1", "JPEG 1997" ); + marker[0xe2] = init_marker( "APP2", "application data section 2", "JPEG 1997" ); + marker[0xe3] = init_marker( "APP3", "application data section 3", "JPEG 1997" ); + marker[0xe4] = init_marker( "APP4", "application data section 4", "JPEG 1997" ); + marker[0xe5] = init_marker( "APP5", "application data section 5", "JPEG 1997" ); + marker[0xe6] = init_marker( "APP6", "application data section 6", "JPEG 1997" ); + marker[0xe7] = init_marker( "APP7", "application data section 7", "JPEG 1997" ); + marker[0xe8] = init_marker( "APP8", "application data section 8", "JPEG 1997" ); + marker[0xe9] = init_marker( "APP9", "application data section 9", "JPEG 1997" ); + marker[0xea] = init_marker( "APP10", "application data section 10", "JPEG 1997" ); + marker[0xeb] = init_marker( "APP11", "application data section 11", "JPEG 1997" ); + marker[0xec] = init_marker( "APP12", "application data section 12", "JPEG 1997" ); + marker[0xed] = init_marker( "APP13", "application data section 13", "JPEG 1997" ); + marker[0xee] = init_marker( "APP14", "application data section 14", "JPEG 1997" ); + marker[0xef] = init_marker( "APP15", "application data section 15", "JPEG 1997" ); + /* extention data sections */ + marker[0xf0] = init_marker( "JPG0", "extension data 00", "JPEG 1997" ); + marker[0xf1] = init_marker( "JPG1", "extension data 01", "JPEG 1997" ); + marker[0xf2] = init_marker( "JPG2", "extension data 02", "JPEG 1997" ); + marker[0xf3] = init_marker( "JPG3", "extension data 03", "JPEG 1997" ); + marker[0xf4] = init_marker( "JPG4", "extension data 04", "JPEG 1997" ); + marker[0xf5] = init_marker( "JPG5", "extension data 05", "JPEG 1997" ); + marker[0xf6] = init_marker( "JPG6", "extension data 06", "JPEG 1997" ); + marker[0xf7] = init_marker( "SOF48", "start of frame (JPEG-LS)", "JPEG-LS" ); + marker[0xf8] = init_marker( "LSE", "extension parameters (JPEG-LS)", "JPEG-LS" ); + marker[0xf9] = init_marker( "JPG9", "extension data 09", "JPEG 1997" ); + marker[0xfa] = init_marker( "JPG10", "extension data 10", "JPEG 1997" ); + marker[0xfb] = init_marker( "JPG11", "extension data 11", "JPEG 1997" ); + marker[0xfc] = init_marker( "JPG12", "extension data 12", "JPEG 1997" ); + marker[0xfd] = init_marker( "JPG13", "extension data 13", "JPEG 1997" ); + marker[0xfe] = init_marker( "JCOM", "extension data (comment)", "JPEG 1997" ); + + /* JPEG 2000 - defined in IEC 15444-1 "JPEG 2000 Core (part 1)" */ + /* delimiters */ + marker[0x4f] = init_marker( "SOC", "start of codestream", "JPEG 2000" ); + marker[0x90] = init_marker( "SOT", "start of tile", "JPEG 2000" ); + marker[0xd9] = init_marker( "EOC", "end of codestream", "JPEG 2000" ); + /* fixed information segment */ + marker[0x51] = init_marker( "SIZ", "image and tile size", "JPEG 2000" ); + /* functional segments */ + marker[0x52] = init_marker( "COD", "coding style default", "JPEG 2000" ); + marker[0x53] = init_marker( "COC", "coding style component", "JPEG 2000" ); + marker[0x5e] = init_marker( "RGN", "region of interest", "JPEG 2000" ); + marker[0x5c] = init_marker( "QCD", "quantization default", "JPEG 2000" ); + marker[0x5d] = init_marker( "QCC", "quantization component", "JPEG 2000" ); + marker[0x5f] = init_marker( "POC", "progression order change", "JPEG 2000" ); + /* pointer segments */ + marker[0x55] = init_marker( "TLM", "tile-part lengths", "JPEG 2000" ); + marker[0x57] = init_marker( "PLM", "packet length (main header)", "JPEG 2000" ); + marker[0x58] = init_marker( "PLT", "packet length (tile-part header)", "JPEG 2000" ); + marker[0x60] = init_marker( "PPM", "packed packet headers (main header)", "JPEG 2000" ); + marker[0x61] = init_marker( "PPT", "packed packet headers (tile-part header)", "JPEG 2000" ); + /* bitstream internal markers and segments */ + marker[0x91] = init_marker( "SOP", "start of packet", "JPEG 2000" ); + marker[0x92] = init_marker( "EPH", "end of packet header", "JPEG 2000" ); + marker[0x93] = init_marker( "SOD", "start of data", "JPEG 2000" ); + /* informational segments */ + marker[0x63] = init_marker( "CRG", "component registration", "JPEG 2000" ); + marker[0x64] = init_marker( "COM", "comment", "JPEG 2000" ); + + return marker; +} + +int read8(FILE* in) +{ + unsigned char q[1]; + fread(q, 1, 1, in); + return q[0]; +} + +/* read a 16 bit little-endian integer */ +int read16(FILE *in) +{ + unsigned char q[2]; + fread(q, 1, 2, in); + return q[0] << 8 | q[1] << 0; +} + +/* read a 32 bit little-endian integer */ +int read32(FILE *in) +{ + unsigned char q[4]; + fread(q, 1, 4, in); + return q[0] << 24 | q[1] << 16 | q[2] << 8 | q[3] << 0; +} + +/* write a 16 bit little-endian integer */ +void write16(FILE *out, uint16_t p) +{ + unsigned char q[2]; + q[0] = p & 0xFF; + q[1] = (p >> 8) & 0xFF; + fwrite(q, 1, 2, out); + return; +} + +/* write an 8 bit integer */ +void write8(FILE *out, unsigned char p) +{ + fwrite(&p, 1, 1, out); + return; +} + +/* write a 32 bit little-endian integer */ +void write32(FILE *out, uint32_t p) +{ + unsigned char q[4]; + q[0] = p & 0xFF; + q[1] = (p >> 8) & 0xFF; + q[2] = (p >> 16) & 0xFF; + q[3] = (p >> 24) & 0xFF; + fwrite(q, 1, 4, out); + return; +} + +/* write a 32 bit big-endian integer */ +void write_be32(FILE *out, uint32_t p) +{ + unsigned char q[4]; + q[0] = (p >> 24) & 0xFF; + q[1] = (p >> 16) & 0xFF; + q[2] = (p >> 8) & 0xFF; + q[3] = p & 0xFF; + fwrite(q, 1, 4, out); + return; +} + +/* insert a 32 bit big-endian integer into a buffer */ +void put_be32(unsigned char *p, uint32_t q) +{ + p[0] = (q >> 24) & 0xFF; + p[1] = (q >> 16) & 0xFF; + p[2] = (q >> 8) & 0xFF; + p[3] = q & 0xFF; + return; +} + +/* dump an abstract of a jpeg stream */ +int dump_stream(FILE *out, FILE *in) +{ + int c; + long offset = 0; + while (!feof(in)) { + c = fgetc(in); + if (c == 0xFF) { + int code = fgetc(in); + if (code > 0) { + fprintf(out, "marker 0xff%02x %s at offset %ld", code, markers[code].mark, offset); + fprintf(out, "\t(%s)\n", markers[code].name); + if (strcmp (markers[code].mark, "SOT") == 0) { + int const header_length = read16(in); + printf("\tlength %d\n", header_length); + printf("\ttile index %d\n", read16(in)); + int const tile_part_length = read32(in); + printf("\ttile-part length %d\n", tile_part_length); + printf("\ttile-part index %d\n", read8(in)); + printf("\tnumber of tile-parts %d\n", read8(in)); + printf("\t(skipping %d)\n", tile_part_length - header_length - 2); + if (fseek (in, tile_part_length - header_length, SEEK_CUR) == -1) { + fprintf(stderr, "seek failed\n"); + } + } + } + offset++; + } + offset++; + } + + return 0; +} + +void usage(const char *name, FILE *out) +{ + fprintf(out, "usage: %s [ ...]\n", name); + fprintf(out, " dumps the structure of a JPEG codestream for inspection.\n"); + return; +} + +int main(int argc, char *argv[]) +{ + int i; + FILE *in; + + if (argc < 2) usage(argv[0], stderr); + + markers = init_markers(); + + /* treat the filename "-" as stdin */ + if (argv[1][0] == '-' && argv[1][1] == 0) + in = stdin; + + for (i = 1; i < argc; i++) { + const char *fn = argv[i]; + if (fn[0] == '-' && fn[1] == 0) + in = stdin; + else + in = fopen(fn, "rb"); + if (in != NULL) { + /* do something */ + dump_stream(stdout, in); + if (in != stdin) + fclose(in); + } else { + fprintf(stderr, "could not open '%s'\n", argv[i]); + return 1; + } + } + + return 0; +} diff --git a/hacks/subtitle_alignment/build.sh b/hacks/subtitle_alignment/build.sh new file mode 100644 index 000000000..acd08b08a --- /dev/null +++ b/hacks/subtitle_alignment/build.sh @@ -0,0 +1,4 @@ +#!/bin/bash + +run/dcpomatic2_cli hacks/subtitle_alignment/dcp_1 +run/dcpomatic2_cli hacks/subtitle_alignment/dcp_2 diff --git a/hacks/subtitle_alignment/dcp_1/metadata.xml b/hacks/subtitle_alignment/dcp_1/metadata.xml new file mode 100644 index 000000000..4c61c5d39 --- /dev/null +++ b/hacks/subtitle_alignment/dcp_1/metadata.xml @@ -0,0 +1,97 @@ + + + 32 + subs test 1 + 1 + TST + 185 + 2K + 50000000 + + 1 + XX + EN + + + + + + 0 + 0 + 0 + + 0 + + + 24 + 20150826 + 6 + 0 + 1 + 0 + 1 + 0 + 530ea647e9de4fc12cbf3eed06673dd9 + + + Image + /home/c.hetherington/src/dcpomatic2/hacks/subtitle_alignment/grid.png + dfe02ada2710af47c30eee9c20054e7c61668 + 0 + 0 + 0 + 720 + 1998 + 1080 + 24 + 0 + 0 + 0 + 0 + 0 + + 185 + + + + ModifiedGamma + 2.4 + 0.04045 + 0.055 + 12.92 + + 0 + 0.64 + 0.33 + 0.3 + 0.6 + 0.15 + 0.06 + 0.3127 + 0.329 + 2.6 + + 0 + 0 + + + DCPSubtitle + /home/c.hetherington/src/dcpomatic2/hacks/subtitle_alignment/dcp_1/subs.xml + 21cddc1e6a989a3dde356f4288fe3fac1231 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 1 + 1 + en + + arial + + 2880000 + + + diff --git a/hacks/subtitle_alignment/dcp_1/subs.xml b/hacks/subtitle_alignment/dcp_1/subs.xml new file mode 100644 index 000000000..328801b66 --- /dev/null +++ b/hacks/subtitle_alignment/dcp_1/subs.xml @@ -0,0 +1,27 @@ + + +urn:uuid:d351291b-d722-48b7-baba-e7ed2ea6cc69 + + +2015-08-26T18:04:50+01:00 +1 +en +24 1 +24 +00:00:00:00 +urn:uuid:b238ab60-719d-11e4-82f8-0800200c9a65 + + + + +Align top position 60% + + +Align top position 70% + + +Align top position 80% + + + + \ No newline at end of file diff --git a/hacks/subtitle_alignment/dcp_2/metadata.xml b/hacks/subtitle_alignment/dcp_2/metadata.xml new file mode 100644 index 000000000..a5294a701 --- /dev/null +++ b/hacks/subtitle_alignment/dcp_2/metadata.xml @@ -0,0 +1,97 @@ + + + 32 + subs test 2 + 1 + TST + 185 + 2K + 50000000 + + 1 + + + + + + + + 0 + 0 + 0 + + 0 + + + 24 + 20150826 + 6 + 0 + 1 + 0 + 1 + 0 + 530ea647e9de4fc12cbf3eed06673dd9 + + + Image + /home/c.hetherington/src/dcpomatic2/hacks/subtitle_alignment/grid.png + dfe02ada2710af47c30eee9c20054e7c61668 + 0 + 0 + 0 + 720 + 1998 + 1080 + 24 + 0 + 0 + 0 + 0 + 0 + + 185 + + + + ModifiedGamma + 2.4 + 0.04045 + 0.055 + 12.92 + + 0 + 0.64 + 0.33 + 0.3 + 0.6 + 0.15 + 0.06 + 0.3127 + 0.329 + 2.6 + + 0 + 0 + + + DCPSubtitle + /home/c.hetherington/src/dcpomatic2/hacks/subtitle_alignment/dcp_2/subs.xml + 01f3845eeebfec3ed64bee961d73ec5f1249 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 1 + 1 + en + + arial + + 2880000 + + + diff --git a/hacks/subtitle_alignment/dcp_2/subs.xml b/hacks/subtitle_alignment/dcp_2/subs.xml new file mode 100644 index 000000000..4332a219a --- /dev/null +++ b/hacks/subtitle_alignment/dcp_2/subs.xml @@ -0,0 +1,27 @@ + + +urn:uuid:d351291b-d722-48b7-baba-e7ed2ea6cc69 + + +2015-08-26T18:04:50+01:00 +1 +en +24 1 +24 +00:00:00:00 +urn:uuid:b238ab60-719d-11e4-82f8-0800200c9a65 + + + + +Align bottom position 20% + + +Align bottom position 30% + + +Align bottom position 40% + + + + \ No newline at end of file diff --git a/hacks/subtitle_alignment/dcp_3/metadata.xml b/hacks/subtitle_alignment/dcp_3/metadata.xml new file mode 100644 index 000000000..a5f6186f2 --- /dev/null +++ b/hacks/subtitle_alignment/dcp_3/metadata.xml @@ -0,0 +1,97 @@ + + + 32 + subs test 1 + 1 + TST + 185 + 2K + 50000000 + + 1 + XX + EN + + + + + + 0 + 0 + 0 + + 0 + + + 24 + 20150826 + 6 + 0 + 1 + 1 + 1 + 0 + 530ea647e9de4fc12cbf3eed06673dd9 + + + Image + /home/c.hetherington/src/dcpomatic2/hacks/subtitle_alignment/grid.png + dfe02ada2710af47c30eee9c20054e7c61668 + 0 + 0 + 0 + 720 + 1998 + 1080 + 24 + 0 + 0 + 0 + 0 + 0 + + 185 + + + + ModifiedGamma + 2.4 + 0.04045 + 0.055 + 12.92 + + 0 + 0.64 + 0.33 + 0.3 + 0.6 + 0.15 + 0.06 + 0.3127 + 0.329 + 2.6 + + 0 + 0 + + + DCPSubtitle + /home/c.hetherington/src/dcpomatic2/hacks/subtitle_alignment/dcp_3/subs.xml + 21cddc1e6a989a3dde356f4288fe3fac1231 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 1 + 1 + en + + arial + + 2880000 + + + diff --git a/hacks/subtitle_alignment/dcp_3/subs.xml b/hacks/subtitle_alignment/dcp_3/subs.xml new file mode 100644 index 000000000..328801b66 --- /dev/null +++ b/hacks/subtitle_alignment/dcp_3/subs.xml @@ -0,0 +1,27 @@ + + +urn:uuid:d351291b-d722-48b7-baba-e7ed2ea6cc69 + + +2015-08-26T18:04:50+01:00 +1 +en +24 1 +24 +00:00:00:00 +urn:uuid:b238ab60-719d-11e4-82f8-0800200c9a65 + + + + +Align top position 60% + + +Align top position 70% + + +Align top position 80% + + + + \ No newline at end of file diff --git a/hacks/subtitle_alignment/dcp_4/metadata.xml b/hacks/subtitle_alignment/dcp_4/metadata.xml new file mode 100644 index 000000000..f78fb42a1 --- /dev/null +++ b/hacks/subtitle_alignment/dcp_4/metadata.xml @@ -0,0 +1,97 @@ + + + 32 + subs test 2 + 1 + TST + 185 + 2K + 50000000 + + 1 + + + + + + + + 0 + 0 + 0 + + 0 + + + 24 + 20150826 + 6 + 0 + 1 + 1 + 1 + 0 + 530ea647e9de4fc12cbf3eed06673dd9 + + + Image + /home/c.hetherington/src/dcpomatic2/hacks/subtitle_alignment/grid.png + dfe02ada2710af47c30eee9c20054e7c61668 + 0 + 0 + 0 + 720 + 1998 + 1080 + 24 + 0 + 0 + 0 + 0 + 0 + + 185 + + + + ModifiedGamma + 2.4 + 0.04045 + 0.055 + 12.92 + + 0 + 0.64 + 0.33 + 0.3 + 0.6 + 0.15 + 0.06 + 0.3127 + 0.329 + 2.6 + + 0 + 0 + + + DCPSubtitle + /home/c.hetherington/src/dcpomatic2/hacks/subtitle_alignment/dcp_4/subs.xml + 01f3845eeebfec3ed64bee961d73ec5f1249 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 1 + 1 + en + + arial + + 2880000 + + + diff --git a/hacks/subtitle_alignment/dcp_4/subs.xml b/hacks/subtitle_alignment/dcp_4/subs.xml new file mode 100644 index 000000000..4332a219a --- /dev/null +++ b/hacks/subtitle_alignment/dcp_4/subs.xml @@ -0,0 +1,27 @@ + + +urn:uuid:d351291b-d722-48b7-baba-e7ed2ea6cc69 + + +2015-08-26T18:04:50+01:00 +1 +en +24 1 +24 +00:00:00:00 +urn:uuid:b238ab60-719d-11e4-82f8-0800200c9a65 + + + + +Align bottom position 20% + + +Align bottom position 30% + + +Align bottom position 40% + + + + \ No newline at end of file diff --git a/hacks/subtitle_alignment/grid.png b/hacks/subtitle_alignment/grid.png new file mode 100644 index 0000000000000000000000000000000000000000..26987a076b2c10e9e1b3293ec608279658d9f203 GIT binary patch literal 61668 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�NMXw)O!C7Ih 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 + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + 108px: 10% + 216px: 20% + 324px: 30% + 432px: 40% + 540px: 50% + 648px: 60% + 756px: 70% + 864px: 80% + 972px: 90% + + -- 2.30.2