summaryrefslogtreecommitdiff
path: root/hacks/subtitle_alignment
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2015-08-26 10:22:43 +0100
committerCarl Hetherington <cth@carlh.net>2015-08-26 10:22:43 +0100
commit5aefef2c8916db5ad10811739ab672ec6d716cf3 (patch)
tree28a79ea1f836dbaf4e68fee6e5e5759571cb0221 /hacks/subtitle_alignment
parentddef0fb991ee50275e801c0cd813b7d74ead6ddf (diff)
Add some hacks, mostly subtitle alignment tests.
Diffstat (limited to 'hacks/subtitle_alignment')
-rw-r--r--hacks/subtitle_alignment/build.sh4
-rw-r--r--hacks/subtitle_alignment/dcp_1/metadata.xml97
-rw-r--r--hacks/subtitle_alignment/dcp_1/subs.xml27
-rw-r--r--hacks/subtitle_alignment/dcp_2/metadata.xml97
-rw-r--r--hacks/subtitle_alignment/dcp_2/subs.xml27
-rw-r--r--hacks/subtitle_alignment/dcp_3/metadata.xml97
-rw-r--r--hacks/subtitle_alignment/dcp_3/subs.xml27
-rw-r--r--hacks/subtitle_alignment/dcp_4/metadata.xml97
-rw-r--r--hacks/subtitle_alignment/dcp_4/subs.xml27
-rw-r--r--hacks/subtitle_alignment/grid.pngbin0 -> 61668 bytes
-rw-r--r--hacks/subtitle_alignment/grid.svg222
11 files changed, 722 insertions, 0 deletions
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 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Metadata>
+ <Version>32</Version>
+ <Name>subs test 1</Name>
+ <UseISDCFName>1</UseISDCFName>
+ <DCPContentType>TST</DCPContentType>
+ <Container>185</Container>
+ <Resolution>2K</Resolution>
+ <J2KBandwidth>50000000</J2KBandwidth>
+ <ISDCFMetadata>
+ <ContentVersion>1</ContentVersion>
+ <AudioLanguage>XX</AudioLanguage>
+ <SubtitleLanguage>EN</SubtitleLanguage>
+ <Territory></Territory>
+ <Rating></Rating>
+ <Studio></Studio>
+ <Facility></Facility>
+ <PackageType></PackageType>
+ <TempVersion>0</TempVersion>
+ <PreRelease>0</PreRelease>
+ <RedBand>0</RedBand>
+ <Chain></Chain>
+ <TwoDVersionOfThreeD>0</TwoDVersionOfThreeD>
+ <MasteredLuminance></MasteredLuminance>
+ </ISDCFMetadata>
+ <VideoFrameRate>24</VideoFrameRate>
+ <ISDCFDate>20150826</ISDCFDate>
+ <AudioChannels>6</AudioChannels>
+ <ThreeD>0</ThreeD>
+ <SequenceVideo>1</SequenceVideo>
+ <Interop>0</Interop>
+ <Signed>1</Signed>
+ <Encrypted>0</Encrypted>
+ <Key>530ea647e9de4fc12cbf3eed06673dd9</Key>
+ <Playlist>
+ <Content>
+ <Type>Image</Type>
+ <Path>/home/c.hetherington/src/dcpomatic2/hacks/subtitle_alignment/grid.png</Path>
+ <Digest>dfe02ada2710af47c30eee9c20054e7c61668</Digest>
+ <Position>0</Position>
+ <TrimStart>0</TrimStart>
+ <TrimEnd>0</TrimEnd>
+ <VideoLength>720</VideoLength>
+ <VideoWidth>1998</VideoWidth>
+ <VideoHeight>1080</VideoHeight>
+ <VideoFrameRate>24</VideoFrameRate>
+ <VideoFrameType>0</VideoFrameType>
+ <LeftCrop>0</LeftCrop>
+ <RightCrop>0</RightCrop>
+ <TopCrop>0</TopCrop>
+ <BottomCrop>0</BottomCrop>
+ <Scale>
+ <Ratio>185</Ratio>
+ </Scale>
+ <ColourConversion>
+ <InputTransferFunction>
+ <Type>ModifiedGamma</Type>
+ <Power>2.4</Power>
+ <Threshold>0.04045</Threshold>
+ <A>0.055</A>
+ <B>12.92</B>
+ </InputTransferFunction>
+ <YUVToRGB>0</YUVToRGB>
+ <RedX>0.64</RedX>
+ <RedY>0.33</RedY>
+ <GreenX>0.3</GreenX>
+ <GreenY>0.6</GreenY>
+ <BlueX>0.15</BlueX>
+ <BlueY>0.06</BlueY>
+ <WhiteX>0.3127</WhiteX>
+ <WhiteY>0.329</WhiteY>
+ <OutputGamma>2.6</OutputGamma>
+ </ColourConversion>
+ <FadeIn>0</FadeIn>
+ <FadeOut>0</FadeOut>
+ </Content>
+ <Content>
+ <Type>DCPSubtitle</Type>
+ <Path>/home/c.hetherington/src/dcpomatic2/hacks/subtitle_alignment/dcp_1/subs.xml</Path>
+ <Digest>21cddc1e6a989a3dde356f4288fe3fac1231</Digest>
+ <Position>0</Position>
+ <TrimStart>0</TrimStart>
+ <TrimEnd>0</TrimEnd>
+ <UseSubtitles>1</UseSubtitles>
+ <BurnSubtitles>0</BurnSubtitles>
+ <SubtitleXOffset>0</SubtitleXOffset>
+ <SubtitleYOffset>0</SubtitleYOffset>
+ <SubtitleXScale>1</SubtitleXScale>
+ <SubtitleYScale>1</SubtitleYScale>
+ <SubtitleLanguage>en</SubtitleLanguage>
+ <Font>
+ <Id>arial</Id>
+ </Font>
+ <Length>2880000</Length>
+ </Content>
+ </Playlist>
+</Metadata>
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 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<SubtitleReel xmlns="http://www.smpte-ra.org/schemas/428-7/2010/DCST">
+<Id>urn:uuid:d351291b-d722-48b7-baba-e7ed2ea6cc69</Id>
+<ContentTitleText></ContentTitleText>
+<AnnotationText></AnnotationText>
+<IssueDate>2015-08-26T18:04:50+01:00</IssueDate>
+<ReelNumber>1</ReelNumber>
+<Language>en</Language>
+<EditRate>24 1</EditRate>
+<TimeCodeRate>24</TimeCodeRate>
+<StartTime>00:00:00:00</StartTime>
+<LoadFont ID="arial">urn:uuid:b238ab60-719d-11e4-82f8-0800200c9a65</LoadFont>
+<SubtitleList>
+<Font ID="arial" Color="FFFFFFFF" Weight="normal" Size="42">
+
+<Subtitle SpotNumber="1" TimeIn="00:00:00:00" TimeOut="00:00:10:00" FadeUpTime="00:00:00:00" FadeDownTime="00:00:00:00">
+<Text Valign="top" Vposition="60">Align top position 60%</Text>
+</Subtitle>
+<Subtitle SpotNumber="1" TimeIn="00:00:10:00" TimeOut="00:00:20:00" FadeUpTime="00:00:00:00" FadeDownTime="00:00:00:00">
+<Text Valign="top" Vposition="70">Align top position 70%</Text>
+</Subtitle>
+<Subtitle SpotNumber="1" TimeIn="00:00:20:00" TimeOut="00:00:30:00" FadeUpTime="00:00:00:00" FadeDownTime="00:00:00:00">
+<Text Valign="top" Vposition="80">Align top position 80%</Text>
+</Subtitle>
+</Font>
+</SubtitleList>
+</SubtitleReel> \ 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 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Metadata>
+ <Version>32</Version>
+ <Name>subs test 2</Name>
+ <UseISDCFName>1</UseISDCFName>
+ <DCPContentType>TST</DCPContentType>
+ <Container>185</Container>
+ <Resolution>2K</Resolution>
+ <J2KBandwidth>50000000</J2KBandwidth>
+ <ISDCFMetadata>
+ <ContentVersion>1</ContentVersion>
+ <AudioLanguage></AudioLanguage>
+ <SubtitleLanguage></SubtitleLanguage>
+ <Territory></Territory>
+ <Rating></Rating>
+ <Studio></Studio>
+ <Facility></Facility>
+ <PackageType></PackageType>
+ <TempVersion>0</TempVersion>
+ <PreRelease>0</PreRelease>
+ <RedBand>0</RedBand>
+ <Chain></Chain>
+ <TwoDVersionOfThreeD>0</TwoDVersionOfThreeD>
+ <MasteredLuminance></MasteredLuminance>
+ </ISDCFMetadata>
+ <VideoFrameRate>24</VideoFrameRate>
+ <ISDCFDate>20150826</ISDCFDate>
+ <AudioChannels>6</AudioChannels>
+ <ThreeD>0</ThreeD>
+ <SequenceVideo>1</SequenceVideo>
+ <Interop>0</Interop>
+ <Signed>1</Signed>
+ <Encrypted>0</Encrypted>
+ <Key>530ea647e9de4fc12cbf3eed06673dd9</Key>
+ <Playlist>
+ <Content>
+ <Type>Image</Type>
+ <Path>/home/c.hetherington/src/dcpomatic2/hacks/subtitle_alignment/grid.png</Path>
+ <Digest>dfe02ada2710af47c30eee9c20054e7c61668</Digest>
+ <Position>0</Position>
+ <TrimStart>0</TrimStart>
+ <TrimEnd>0</TrimEnd>
+ <VideoLength>720</VideoLength>
+ <VideoWidth>1998</VideoWidth>
+ <VideoHeight>1080</VideoHeight>
+ <VideoFrameRate>24</VideoFrameRate>
+ <VideoFrameType>0</VideoFrameType>
+ <LeftCrop>0</LeftCrop>
+ <RightCrop>0</RightCrop>
+ <TopCrop>0</TopCrop>
+ <BottomCrop>0</BottomCrop>
+ <Scale>
+ <Ratio>185</Ratio>
+ </Scale>
+ <ColourConversion>
+ <InputTransferFunction>
+ <Type>ModifiedGamma</Type>
+ <Power>2.4</Power>
+ <Threshold>0.04045</Threshold>
+ <A>0.055</A>
+ <B>12.92</B>
+ </InputTransferFunction>
+ <YUVToRGB>0</YUVToRGB>
+ <RedX>0.64</RedX>
+ <RedY>0.33</RedY>
+ <GreenX>0.3</GreenX>
+ <GreenY>0.6</GreenY>
+ <BlueX>0.15</BlueX>
+ <BlueY>0.06</BlueY>
+ <WhiteX>0.3127</WhiteX>
+ <WhiteY>0.329</WhiteY>
+ <OutputGamma>2.6</OutputGamma>
+ </ColourConversion>
+ <FadeIn>0</FadeIn>
+ <FadeOut>0</FadeOut>
+ </Content>
+ <Content>
+ <Type>DCPSubtitle</Type>
+ <Path>/home/c.hetherington/src/dcpomatic2/hacks/subtitle_alignment/dcp_2/subs.xml</Path>
+ <Digest>01f3845eeebfec3ed64bee961d73ec5f1249</Digest>
+ <Position>0</Position>
+ <TrimStart>0</TrimStart>
+ <TrimEnd>0</TrimEnd>
+ <UseSubtitles>1</UseSubtitles>
+ <BurnSubtitles>0</BurnSubtitles>
+ <SubtitleXOffset>0</SubtitleXOffset>
+ <SubtitleYOffset>0</SubtitleYOffset>
+ <SubtitleXScale>1</SubtitleXScale>
+ <SubtitleYScale>1</SubtitleYScale>
+ <SubtitleLanguage>en</SubtitleLanguage>
+ <Font>
+ <Id>arial</Id>
+ </Font>
+ <Length>2880000</Length>
+ </Content>
+ </Playlist>
+</Metadata>
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 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<SubtitleReel xmlns="http://www.smpte-ra.org/schemas/428-7/2010/DCST">
+<Id>urn:uuid:d351291b-d722-48b7-baba-e7ed2ea6cc69</Id>
+<ContentTitleText></ContentTitleText>
+<AnnotationText></AnnotationText>
+<IssueDate>2015-08-26T18:04:50+01:00</IssueDate>
+<ReelNumber>1</ReelNumber>
+<Language>en</Language>
+<EditRate>24 1</EditRate>
+<TimeCodeRate>24</TimeCodeRate>
+<StartTime>00:00:00:00</StartTime>
+<LoadFont ID="arial">urn:uuid:b238ab60-719d-11e4-82f8-0800200c9a65</LoadFont>
+<SubtitleList>
+<Font ID="arial" Color="FFFFFFFF" Weight="normal" Size="42">
+
+<Subtitle SpotNumber="1" TimeIn="00:00:00:00" TimeOut="00:00:10:00" FadeUpTime="00:00:00:00" FadeDownTime="00:00:00:00">
+<Text Valign="bottom" Vposition="20">Align bottom position 20%</Text>
+</Subtitle>
+<Subtitle SpotNumber="1" TimeIn="00:00:10:00" TimeOut="00:00:20:00" FadeUpTime="00:00:00:00" FadeDownTime="00:00:00:00">
+<Text Valign="bottom" Vposition="30">Align bottom position 30%</Text>
+</Subtitle>
+<Subtitle SpotNumber="1" TimeIn="00:00:20:00" TimeOut="00:00:30:00" FadeUpTime="00:00:00:00" FadeDownTime="00:00:00:00">
+<Text Valign="bottom" Vposition="40">Align bottom position 40%</Text>
+</Subtitle>
+</Font>
+</SubtitleList>
+</SubtitleReel> \ 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 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Metadata>
+ <Version>32</Version>
+ <Name>subs test 1</Name>
+ <UseISDCFName>1</UseISDCFName>
+ <DCPContentType>TST</DCPContentType>
+ <Container>185</Container>
+ <Resolution>2K</Resolution>
+ <J2KBandwidth>50000000</J2KBandwidth>
+ <ISDCFMetadata>
+ <ContentVersion>1</ContentVersion>
+ <AudioLanguage>XX</AudioLanguage>
+ <SubtitleLanguage>EN</SubtitleLanguage>
+ <Territory></Territory>
+ <Rating></Rating>
+ <Studio></Studio>
+ <Facility></Facility>
+ <PackageType></PackageType>
+ <TempVersion>0</TempVersion>
+ <PreRelease>0</PreRelease>
+ <RedBand>0</RedBand>
+ <Chain></Chain>
+ <TwoDVersionOfThreeD>0</TwoDVersionOfThreeD>
+ <MasteredLuminance></MasteredLuminance>
+ </ISDCFMetadata>
+ <VideoFrameRate>24</VideoFrameRate>
+ <ISDCFDate>20150826</ISDCFDate>
+ <AudioChannels>6</AudioChannels>
+ <ThreeD>0</ThreeD>
+ <SequenceVideo>1</SequenceVideo>
+ <Interop>1</Interop>
+ <Signed>1</Signed>
+ <Encrypted>0</Encrypted>
+ <Key>530ea647e9de4fc12cbf3eed06673dd9</Key>
+ <Playlist>
+ <Content>
+ <Type>Image</Type>
+ <Path>/home/c.hetherington/src/dcpomatic2/hacks/subtitle_alignment/grid.png</Path>
+ <Digest>dfe02ada2710af47c30eee9c20054e7c61668</Digest>
+ <Position>0</Position>
+ <TrimStart>0</TrimStart>
+ <TrimEnd>0</TrimEnd>
+ <VideoLength>720</VideoLength>
+ <VideoWidth>1998</VideoWidth>
+ <VideoHeight>1080</VideoHeight>
+ <VideoFrameRate>24</VideoFrameRate>
+ <VideoFrameType>0</VideoFrameType>
+ <LeftCrop>0</LeftCrop>
+ <RightCrop>0</RightCrop>
+ <TopCrop>0</TopCrop>
+ <BottomCrop>0</BottomCrop>
+ <Scale>
+ <Ratio>185</Ratio>
+ </Scale>
+ <ColourConversion>
+ <InputTransferFunction>
+ <Type>ModifiedGamma</Type>
+ <Power>2.4</Power>
+ <Threshold>0.04045</Threshold>
+ <A>0.055</A>
+ <B>12.92</B>
+ </InputTransferFunction>
+ <YUVToRGB>0</YUVToRGB>
+ <RedX>0.64</RedX>
+ <RedY>0.33</RedY>
+ <GreenX>0.3</GreenX>
+ <GreenY>0.6</GreenY>
+ <BlueX>0.15</BlueX>
+ <BlueY>0.06</BlueY>
+ <WhiteX>0.3127</WhiteX>
+ <WhiteY>0.329</WhiteY>
+ <OutputGamma>2.6</OutputGamma>
+ </ColourConversion>
+ <FadeIn>0</FadeIn>
+ <FadeOut>0</FadeOut>
+ </Content>
+ <Content>
+ <Type>DCPSubtitle</Type>
+ <Path>/home/c.hetherington/src/dcpomatic2/hacks/subtitle_alignment/dcp_3/subs.xml</Path>
+ <Digest>21cddc1e6a989a3dde356f4288fe3fac1231</Digest>
+ <Position>0</Position>
+ <TrimStart>0</TrimStart>
+ <TrimEnd>0</TrimEnd>
+ <UseSubtitles>1</UseSubtitles>
+ <BurnSubtitles>0</BurnSubtitles>
+ <SubtitleXOffset>0</SubtitleXOffset>
+ <SubtitleYOffset>0</SubtitleYOffset>
+ <SubtitleXScale>1</SubtitleXScale>
+ <SubtitleYScale>1</SubtitleYScale>
+ <SubtitleLanguage>en</SubtitleLanguage>
+ <Font>
+ <Id>arial</Id>
+ </Font>
+ <Length>2880000</Length>
+ </Content>
+ </Playlist>
+</Metadata>
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 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<SubtitleReel xmlns="http://www.smpte-ra.org/schemas/428-7/2010/DCST">
+<Id>urn:uuid:d351291b-d722-48b7-baba-e7ed2ea6cc69</Id>
+<ContentTitleText></ContentTitleText>
+<AnnotationText></AnnotationText>
+<IssueDate>2015-08-26T18:04:50+01:00</IssueDate>
+<ReelNumber>1</ReelNumber>
+<Language>en</Language>
+<EditRate>24 1</EditRate>
+<TimeCodeRate>24</TimeCodeRate>
+<StartTime>00:00:00:00</StartTime>
+<LoadFont ID="arial">urn:uuid:b238ab60-719d-11e4-82f8-0800200c9a65</LoadFont>
+<SubtitleList>
+<Font ID="arial" Color="FFFFFFFF" Weight="normal" Size="42">
+
+<Subtitle SpotNumber="1" TimeIn="00:00:00:00" TimeOut="00:00:10:00" FadeUpTime="00:00:00:00" FadeDownTime="00:00:00:00">
+<Text Valign="top" Vposition="60">Align top position 60%</Text>
+</Subtitle>
+<Subtitle SpotNumber="1" TimeIn="00:00:10:00" TimeOut="00:00:20:00" FadeUpTime="00:00:00:00" FadeDownTime="00:00:00:00">
+<Text Valign="top" Vposition="70">Align top position 70%</Text>
+</Subtitle>
+<Subtitle SpotNumber="1" TimeIn="00:00:20:00" TimeOut="00:00:30:00" FadeUpTime="00:00:00:00" FadeDownTime="00:00:00:00">
+<Text Valign="top" Vposition="80">Align top position 80%</Text>
+</Subtitle>
+</Font>
+</SubtitleList>
+</SubtitleReel> \ 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 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Metadata>
+ <Version>32</Version>
+ <Name>subs test 2</Name>
+ <UseISDCFName>1</UseISDCFName>
+ <DCPContentType>TST</DCPContentType>
+ <Container>185</Container>
+ <Resolution>2K</Resolution>
+ <J2KBandwidth>50000000</J2KBandwidth>
+ <ISDCFMetadata>
+ <ContentVersion>1</ContentVersion>
+ <AudioLanguage></AudioLanguage>
+ <SubtitleLanguage></SubtitleLanguage>
+ <Territory></Territory>
+ <Rating></Rating>
+ <Studio></Studio>
+ <Facility></Facility>
+ <PackageType></PackageType>
+ <TempVersion>0</TempVersion>
+ <PreRelease>0</PreRelease>
+ <RedBand>0</RedBand>
+ <Chain></Chain>
+ <TwoDVersionOfThreeD>0</TwoDVersionOfThreeD>
+ <MasteredLuminance></MasteredLuminance>
+ </ISDCFMetadata>
+ <VideoFrameRate>24</VideoFrameRate>
+ <ISDCFDate>20150826</ISDCFDate>
+ <AudioChannels>6</AudioChannels>
+ <ThreeD>0</ThreeD>
+ <SequenceVideo>1</SequenceVideo>
+ <Interop>1</Interop>
+ <Signed>1</Signed>
+ <Encrypted>0</Encrypted>
+ <Key>530ea647e9de4fc12cbf3eed06673dd9</Key>
+ <Playlist>
+ <Content>
+ <Type>Image</Type>
+ <Path>/home/c.hetherington/src/dcpomatic2/hacks/subtitle_alignment/grid.png</Path>
+ <Digest>dfe02ada2710af47c30eee9c20054e7c61668</Digest>
+ <Position>0</Position>
+ <TrimStart>0</TrimStart>
+ <TrimEnd>0</TrimEnd>
+ <VideoLength>720</VideoLength>
+ <VideoWidth>1998</VideoWidth>
+ <VideoHeight>1080</VideoHeight>
+ <VideoFrameRate>24</VideoFrameRate>
+ <VideoFrameType>0</VideoFrameType>
+ <LeftCrop>0</LeftCrop>
+ <RightCrop>0</RightCrop>
+ <TopCrop>0</TopCrop>
+ <BottomCrop>0</BottomCrop>
+ <Scale>
+ <Ratio>185</Ratio>
+ </Scale>
+ <ColourConversion>
+ <InputTransferFunction>
+ <Type>ModifiedGamma</Type>
+ <Power>2.4</Power>
+ <Threshold>0.04045</Threshold>
+ <A>0.055</A>
+ <B>12.92</B>
+ </InputTransferFunction>
+ <YUVToRGB>0</YUVToRGB>
+ <RedX>0.64</RedX>
+ <RedY>0.33</RedY>
+ <GreenX>0.3</GreenX>
+ <GreenY>0.6</GreenY>
+ <BlueX>0.15</BlueX>
+ <BlueY>0.06</BlueY>
+ <WhiteX>0.3127</WhiteX>
+ <WhiteY>0.329</WhiteY>
+ <OutputGamma>2.6</OutputGamma>
+ </ColourConversion>
+ <FadeIn>0</FadeIn>
+ <FadeOut>0</FadeOut>
+ </Content>
+ <Content>
+ <Type>DCPSubtitle</Type>
+ <Path>/home/c.hetherington/src/dcpomatic2/hacks/subtitle_alignment/dcp_4/subs.xml</Path>
+ <Digest>01f3845eeebfec3ed64bee961d73ec5f1249</Digest>
+ <Position>0</Position>
+ <TrimStart>0</TrimStart>
+ <TrimEnd>0</TrimEnd>
+ <UseSubtitles>1</UseSubtitles>
+ <BurnSubtitles>0</BurnSubtitles>
+ <SubtitleXOffset>0</SubtitleXOffset>
+ <SubtitleYOffset>0</SubtitleYOffset>
+ <SubtitleXScale>1</SubtitleXScale>
+ <SubtitleYScale>1</SubtitleYScale>
+ <SubtitleLanguage>en</SubtitleLanguage>
+ <Font>
+ <Id>arial</Id>
+ </Font>
+ <Length>2880000</Length>
+ </Content>
+ </Playlist>
+</Metadata>
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 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<SubtitleReel xmlns="http://www.smpte-ra.org/schemas/428-7/2010/DCST">
+<Id>urn:uuid:d351291b-d722-48b7-baba-e7ed2ea6cc69</Id>
+<ContentTitleText></ContentTitleText>
+<AnnotationText></AnnotationText>
+<IssueDate>2015-08-26T18:04:50+01:00</IssueDate>
+<ReelNumber>1</ReelNumber>
+<Language>en</Language>
+<EditRate>24 1</EditRate>
+<TimeCodeRate>24</TimeCodeRate>
+<StartTime>00:00:00:00</StartTime>
+<LoadFont ID="arial">urn:uuid:b238ab60-719d-11e4-82f8-0800200c9a65</LoadFont>
+<SubtitleList>
+<Font ID="arial" Color="FFFFFFFF" Weight="normal" Size="42">
+
+<Subtitle SpotNumber="1" TimeIn="00:00:00:00" TimeOut="00:00:10:00" FadeUpTime="00:00:00:00" FadeDownTime="00:00:00:00">
+<Text Valign="bottom" Vposition="20">Align bottom position 20%</Text>
+</Subtitle>
+<Subtitle SpotNumber="1" TimeIn="00:00:10:00" TimeOut="00:00:20:00" FadeUpTime="00:00:00:00" FadeDownTime="00:00:00:00">
+<Text Valign="bottom" Vposition="30">Align bottom position 30%</Text>
+</Subtitle>
+<Subtitle SpotNumber="1" TimeIn="00:00:20:00" TimeOut="00:00:30:00" FadeUpTime="00:00:00:00" FadeDownTime="00:00:00:00">
+<Text Valign="bottom" Vposition="40">Align bottom position 40%</Text>
+</Subtitle>
+</Font>
+</SubtitleList>
+</SubtitleReel> \ 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 000000000..26987a076
--- /dev/null
+++ b/hacks/subtitle_alignment/grid.png
Binary files differ
diff --git a/hacks/subtitle_alignment/grid.svg b/hacks/subtitle_alignment/grid.svg
new file mode 100644
index 000000000..cb3f99a37
--- /dev/null
+++ b/hacks/subtitle_alignment/grid.svg
@@ -0,0 +1,222 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="1998"
+ height="1080"
+ viewBox="0 0 1998.0001 1080"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.48.4 r9939"
+ sodipodi:docname="subtitle_alignment.svg"
+ inkscape:export-filename="/home/c.hetherington/src/dcpomatic2/hacks/subtitle_alignment.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90">
+ <defs
+ id="defs4" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="0.5"
+ inkscape:cx="682.63128"
+ inkscape:cy="316.23406"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ units="px"
+ inkscape:window-width="1280"
+ inkscape:window-height="997"
+ inkscape:window-x="1280"
+ inkscape:window-y="0"
+ inkscape:window-maximized="1">
+ <inkscape:grid
+ type="xygrid"
+ id="grid4157"
+ snapvisiblegridlinesonly="false"
+ spacingx="108.00001"
+ spacingy="108"
+ empspacing="5"
+ visible="true"
+ enabled="true" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,27.637571)">
+ <rect
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:4.93631983;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ id="rect4352"
+ width="2110.2124"
+ height="1178.5175"
+ x="-40.768791"
+ y="-58.703613" />
+ <path
+ style="fill:#0000ff;fill-rule:evenodd;stroke:#0000ff;stroke-width:4.00000048;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;fill-opacity:1"
+ d="m 0,80.362368 2052.0001,0"
+ id="path4159"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#0000ff;fill-rule:evenodd;stroke:#0000ff;stroke-width:4.00000048;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill-opacity:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;filter-blend-mode:normal;filter-gaussianBlur-deviation:0;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ d="m 0,188.36237 2052.0001,0"
+ id="path4176"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#0000ff;fill-rule:evenodd;stroke:#0000ff;stroke-width:4.00000048;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill-opacity:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;filter-blend-mode:normal;filter-gaussianBlur-deviation:0;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ d="m 0,296.36237 2052.0001,0"
+ id="path4178"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#0000ff;fill-rule:evenodd;stroke:#0000ff;stroke-width:4.00000048;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill-opacity:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;filter-blend-mode:normal;filter-gaussianBlur-deviation:0;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ d="m 0,404.36237 2052.0001,0"
+ id="path4180"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#0000ff;fill-rule:evenodd;stroke:#0000ff;stroke-width:4.00000048;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill-opacity:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;filter-blend-mode:normal;filter-gaussianBlur-deviation:0;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ d="m 0,512.36237 c 0,0 2052.0001,0 2052.0001,0"
+ id="path4182"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#0000ff;fill-rule:evenodd;stroke:#0000ff;stroke-width:4.00000048;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill-opacity:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;filter-blend-mode:normal;filter-gaussianBlur-deviation:0;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ d="m 0,620.36237 2052.0001,0"
+ id="path4184"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#0000ff;fill-rule:evenodd;stroke:#0000ff;stroke-width:4.00000048;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill-opacity:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;filter-blend-mode:normal;filter-gaussianBlur-deviation:0;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ d="m 0,728.36237 2052.0001,0"
+ id="path4186"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#0000ff;fill-rule:evenodd;stroke:#0000ff;stroke-width:4.00000048;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill-opacity:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;filter-blend-mode:normal;filter-gaussianBlur-deviation:0;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ d="M 2052.0001,836.36237 0,836.36237"
+ id="path4188"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:#0000ff;fill-rule:evenodd;stroke:#0000ff;stroke-width:4.00000048;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill-opacity:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;filter-blend-mode:normal;filter-gaussianBlur-deviation:0;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+ d="m 0,944.36237 2052.0001,0"
+ id="path4190"
+ inkscape:connector-curvature="0" />
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#0000ff;fill-opacity:1;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;"
+ x="230.66669"
+ y="66.844322"
+ id="text4241"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4243"
+ x="230.66669"
+ y="66.844322">108px: 10%</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#0000ff;fill-opacity:1;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;"
+ x="232.13153"
+ y="174.88255"
+ id="text4241-7"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4243-2"
+ x="232.13153"
+ y="174.88255">216px: 20%</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#0000ff;fill-opacity:1;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;"
+ x="232.01434"
+ y="282.92059"
+ id="text4241-7-4"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ x="232.01434"
+ y="282.92059"
+ id="tspan4329">324px: 30%</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#0000ff;fill-opacity:1;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;"
+ x="233.10809"
+ y="390.95886"
+ id="text4241-7-8"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4243-2-29"
+ x="233.10809"
+ y="390.95886">432px: 40%</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#0000ff;fill-opacity:1;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;"
+ x="231.97528"
+ y="498.99692"
+ id="text4241-7-2"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4243-2-6"
+ x="231.97528"
+ y="498.99692">540px: 50%</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#0000ff;fill-opacity:1;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;"
+ x="232.26825"
+ y="607.03516"
+ id="text4241-7-5"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4243-2-5"
+ x="232.26825"
+ y="607.03516">648px: 60%</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#0000ff;fill-opacity:1;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;"
+ x="231.77997"
+ y="715.0733"
+ id="text4241-7-85"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4243-2-3"
+ x="231.77997"
+ y="715.0733">756px: 70%</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#0000ff;fill-opacity:1;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;"
+ x="232.34637"
+ y="823.11145"
+ id="text4241-7-1"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4243-2-1"
+ x="232.34637"
+ y="823.11145">864px: 80%</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#0000ff;fill-opacity:1;stroke:#0000ff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;"
+ x="232.54169"
+ y="931.1496"
+ id="text4241-7-12"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4243-2-53"
+ x="232.54169"
+ y="931.1496">972px: 90%</tspan></text>
+ </g>
+</svg>