Slightly improve subtitle documentation.
[dcpomatic.git] / doc / manual / dcpomatic.xml
index e3ce82a522644d3403fa702bacdb4948685f7c56..fd98fe62cbf9e09d46a4d8a45590fdb0b08ab180 100644 (file)
 ]>
 <book xmlns="http://docbook.org/ns/docbook" xmlns:mml="http://www.w3.org/1998/Math/MathML" version="5.0" xml:lang="en">
 
 ]>
 <book xmlns="http://docbook.org/ns/docbook" xmlns:mml="http://www.w3.org/1998/Math/MathML" version="5.0" xml:lang="en">
 
-<!-- By good luck or good management, the scale parameter to imagedata
-     appears only to affect PDF output.  HTML scaling is done in the
-     Makefile.
--->
-
 <bookinfo>
 <title>DCP-o-matic users' manual</title>
 <author><firstname>Carl</firstname><surname>Hetherington</surname></author>
 <bookinfo>
 <title>DCP-o-matic users' manual</title>
 <author><firstname>Carl</firstname><surname>Hetherington</surname></author>
@@ -34,8 +29,8 @@ Hello, and welcome to DCP-o-matic!
 <para>
 DCP-o-matic is a program to generate <ulink
 url="http://en.wikipedia.org/wiki/Digital_Cinema_Package">Digital
 <para>
 DCP-o-matic is a program to generate <ulink
 url="http://en.wikipedia.org/wiki/Digital_Cinema_Package">Digital
-Cinema Packages</ulink> (DCPs) from DVDs, Blu-Rays, video files such as MP4
-and AVI, or still images.  The resulting DCPs will play on modern digital
+Cinema Packages</ulink> (DCPs) from almost any video, audio and/or
+subtitle source files.  The resulting DCPs will play on modern digital
 cinema projectors.
 </para>
 
 cinema projectors.
 </para>
 
@@ -110,40 +105,53 @@ like to install it.
 
 </section>
 
 
 </section>
 
+<!-- ============================================================== -->
 <section>
 <section>
-<title>Ubuntu Linux</title>
+<title>Debian or Ubuntu Linux</title>
 
 <para>
 
 <para>
-You can install DCP-o-matic on Ubuntu 12.04 (&lsquo;Precise
-Pangolin&rsquo;), 14.04 (&lsquo;Trusty Tahr&rsquo;) or 15.04
-(&lsquo;Vivid Vervet&rsquo;) using <code>.deb</code> packages:
-download the appropriate package from <ulink
-url="http://dcpomatic.com/">http://dcpomatic.com/</ulink> and
-double-click it.  Ubuntu will install the necessary bits and pieces
-and set DCP-o-matic up for you.
+  You can install DCP-o-matic on:
 </para>
 
 </para>
 
+<itemizedlist>
+  <listitem>Debian 7 (&lsquo;wheezy&rsquo;)</listitem>
+  <listitem>Debian 8 (&lsquo;jessie&rsquo;)</listitem>
+  <listitem>Debian unstable (&lsquo;sid&rsquo;)</listitem>
+  <listitem>Ubuntu 12.04 (&lsquo;Precise Pangolin&rsquo;)</listitem>
+  <listitem>Ubuntu 14.04 (&lsquo;Trusty Tahr&rsquo;)</listitem>
+  <listitem>Ubuntu 15.04 (&lsquo;Vivid Vervet&rsquo;)</listitem>
+  <listitem>Ubuntu 15.10 (&lsquo;Wily Werewolf&rsquo;)</listitem>
+</itemizedlist>
+
+<para>
+using <code>.deb</code> packages: download the appropriate package
+from <ulink url="http://dcpomatic.com/">http://dcpomatic.com/</ulink>
+and double-click it.  Debian or Ubuntu will install the necessary bits and
+pieces and set DCP-o-matic up for you.
+</para>
 </section>
 </section>
+<!-- ============================================================== -->
 
 
 <!-- ============================================================== -->
 <section>
 
 
 <!-- ============================================================== -->
 <section>
-<title>Debian Linux</title>
-<para>
-Packages are available for Debian 7 (squeeze), 8 (jessie) and unstable (sid) from <ulink
-url="http://dcpomatic.com/">http://dcpomatic.com/</ulink>.
-</para>
+  <title>Fedora Linux</title>
+
+  <para>There are <code>.rpm</code> packages for Fedora 22 and 23 on
+  <ulink url="http://dcpomatic.com/">http://dcpomatic.com/</ulink>
+  </para>
 </section>
 </section>
+<!-- ============================================================== -->
 
 
 <!-- ============================================================== -->
 <section>
 
 
 <!-- ============================================================== -->
 <section>
-<title>Centos Linux</title>
-<para>
-Packages are available for Centos 6.5 and 7 from <ulink
-url="http://dcpomatic.com/">http://dcpomatic.com/</ulink>.
-</para>
+  <title>Centos Linux</title>
+  <para>There are <code>.rpm</code> packages for Centos 6.5 and 7 on
+  <ulink url="http://dcpomatic.com/">http://dcpomatic.com/</ulink>
+  </para>
 </section>
 </section>
+<!-- ============================================================== -->
 
 
 <!-- ============================================================== -->
 
 
 <!-- ============================================================== -->
@@ -174,6 +182,7 @@ The following dependencies are required:
 <itemizedlist>
 <listitem><ulink url="http://ffmpeg.org/">FFmpeg</ulink></listitem>
 <listitem><ulink url="http://www.mega-nerd.com/libsndfile/">libsndfile</ulink></listitem>
 <itemizedlist>
 <listitem><ulink url="http://ffmpeg.org/">FFmpeg</ulink></listitem>
 <listitem><ulink url="http://www.mega-nerd.com/libsndfile/">libsndfile</ulink></listitem>
+<listitem><ulink url="http://www.mega-nerd.com/SRC/">libsamplerate</ulink></listitem>
 <listitem><ulink url="http://www.openssl.org/">OpenSSL</ulink></listitem>
 <listitem><ulink url="http://www.openjpeg.org/">libopenjpeg</ulink></listitem>
 <listitem><ulink url="http://www.imagemagick.org/script/index.php">ImageMagick</ulink></listitem>
 <listitem><ulink url="http://www.openssl.org/">OpenSSL</ulink></listitem>
 <listitem><ulink url="http://www.openjpeg.org/">libopenjpeg</ulink></listitem>
 <listitem><ulink url="http://www.imagemagick.org/script/index.php">ImageMagick</ulink></listitem>
@@ -185,8 +194,10 @@ The following dependencies are required:
 <listitem><ulink url="http://www.aleksey.com/xmlsec/">xmlsec</ulink></listitem>
 <listitem><ulink url="http://curl.haxx.se/">curl</ulink></listitem>
 <listitem><ulink url="http://www.nih.at/libzip/">libzip</ulink></listitem>
 <listitem><ulink url="http://www.aleksey.com/xmlsec/">xmlsec</ulink></listitem>
 <listitem><ulink url="http://curl.haxx.se/">curl</ulink></listitem>
 <listitem><ulink url="http://www.nih.at/libzip/">libzip</ulink></listitem>
-<listitem><ulink url="http://carlh.net/software/libdcp/">libdcp</ulink></listitem>
-<listitem><ulink url="http://carlh.net/software/libcxml/">libcxml</ulink></listitem>
+<listitem><ulink url="http://carlh.net/libdcp/">libdcp</ulink></listitem>
+<listitem><ulink url="http://carlh.net/libsub/">libsub</ulink></listitem>
+<listitem><ulink url="http://carlh.net/libcxml/">libcxml</ulink></listitem>
+<listitem><ulink url="http://site.icu-project.org">libicu</ulink></listitem>
 </itemizedlist>
 </para>
 
 </itemizedlist>
 </para>
 
@@ -478,6 +489,175 @@ to encode a single frame which it can then repeat.
 </chapter>
 
 
 </chapter>
 
 
+<!-- ============================================================== -->
+<chapter xmlns="http://docbook.org/ns/docbook" version="5.0" xml:lang="en">
+<title>Manipulating existing DCPs</title>
+
+<para>
+Frequently DCP-o-matic is used to take content in formats such as MP4
+and convert it to JPEG2000 for a DCP.  Alternatively, it can be used
+to take existing DCPs and modify them in various ways.
+</para>
+
+<section>
+<title>Importing a DCP into DCP-o-matic</title>
+
+<para>
+If you want to do something to an existing DCP the first step is to
+import it.  Click <guilabel>Add folder...</guilabel> and select your
+DCP's folder.  It will be added to the DCP-o-matic project.  If the
+DCP is unencrypted you can preview it in the normal way, though
+playback will be very slow as decoding of DCPs is almost as
+computationally intensive as encoding them.
+</para>
+
+</section>
+
+
+<section>
+<title>Decrypting encrypted DCPs</title>
+
+<para>
+DCPs can be encrypted (see <xref linkend="ch-encryption"/> for
+details).  If you import an encrypted DCP you will need a key, in the
+form of a Key Delivery Message (KDM), to decrypt it.
+</para>
+
+<para>
+KDMs must be prepared by the organisation which created the DCP.  They
+contain the keys to decrypt the DCP wrapped up in such a way that only
+the intended recipient can read them.  You will need to provide the
+organisation with a certificate which identifies your copy of
+DCP-o-matic and allows them to create a KDM for you.
+</para>
+
+<para>
+To get DCP-o-matic's decryption certificate, open the Preferences
+dialogue (see <xref linkend="ch-preferences"/>) and go to the
+<guilabel>Keys</guilabel> tab.  Click the <guilabel>Export DCP
+decryption certificate...</guilabel> button at the bottom of this tab
+and save the certificate.  Send this certificate to the DCP creators
+and they can create a KDM to allow DCP-o-matic to decrypt their DCP.
+</para>
+
+<para>
+Once you have your KDM, right-click the DCP's name in DCP-o-matic and
+choose <guilabel>Add KDM...</guilabel>.  Specify your KDM and (all
+being well) the DCP will be decrypted and become available for preview.
+</para>
+
+</section>
+
+
+<section>
+<title>Making a DCP from a DCP</title>
+
+<para>
+In many ways, using DCPs as <emphasis>content</emphasis> in
+DCP-o-matic is the same as using any other content.  There are a few
+things to note, though.
+</para>
+
+
+<section>
+<title>Re-use of existing data</title>
+
+<para>
+Where possible DCP-o-matic will re-use existing JPEG2000-compressed
+data from DCP content without modification.  This has the advantage
+that creation of the new DCP will be quick, as the time-consuming
+JPEG2000 encoding is not necessary.
+</para>
+
+<para>
+DCP-o-matic can do this if you avoid changes to the following content
+settings:
+</para>
+
+<itemizedlist>
+<listitem>Crop</listitem>
+<listitem>Scaling</listitem>
+<listitem>Subtitle burn-in</listitem>
+<listitem>Fades</listitem>
+<listitem>Colour conversion</listitem>
+</itemizedlist>
+
+<para>
+If you do change any of these settings on a piece of DCP content
+DCP-o-matic will decode and then re-encode the JPEG2000 data.
+</para>
+
+</section>
+
+
+<section>
+<title>Making overlay files</title>
+
+<para>
+With its default settings, DCP-o-matic will take any data from DCP
+content and copy it into the DCP that it creates.  See <xref linkend="fig-dcp-copy"/>.
+</para>
+
+<figure id="fig-dcp-copy">
+<title>Creating a new DCP by copying an existing one</title>
+<mediaobject><imageobject><imagedata scale="100" fileref="diagrams/dcp-copy&dia;"/></imageobject></mediaobject>
+</figure>
+
+<para>
+This can be inefficient in some cases.  Consider, for example, a film
+which has ten different translations for which the subtitles are
+different but video and audio are the same.  If the video and audio
+content takes up, say, 100Gb this means that the set of DCPs for every
+translation would be about 1Tb with a lot of duplicated data.
+</para>
+
+<para>
+The DCP format has a solution to this problem.  One DCP can refer to
+the &lsquo;assets&rsquo; (picture, sound or subtitle) of another DCP.
+For our translation example this means that we could have a
+&lsquo;base&rsquo; DCP (often called the OV or Original Version)
+containing video, audio and one set of subtitles and then any number
+of overlay DCPs (often called VF or Version Files) which refer to the
+base version and replace the original subtitles with their own.  <xref
+linkend="fig-dcp-refer"/> shows this principle for one of our
+translations.  The DCP that we make refers to the original content
+DCP's video and audio rather than containing a copy.
+</para>
+
+<figure id="fig-dcp-refer">
+<title>Creating a new DCP by referring to an existing one</title>
+<mediaobject><imageobject><imagedata scale="100" fileref="diagrams/dcp-refer&dia;"/></imageobject></mediaobject>
+</figure>
+
+<para>
+To play back the subtitled DCP the projectionist ingests both the base
+(OV) DCP and the overlay (VF) DCP, then plays the VF one.
+</para>
+
+<para>
+To make a DCP like this:
+</para>
+
+<itemizedlist>
+<listitem>Import your &lsquo;Content DCP&rsquo; to a DCP-o-matic project.</listitem>
+<listitem>Add whatever replacement you want in your new DCP (replacement subtitles or audio files, for example).</listitem>
+<listitem>Select the DCP in the content list</listitem>
+<listitem>Tick the <guilabel>Refer to existing DCP</guilabel> checkbox
+in the tabs for the parts of the DCP that you want to refer to in your
+new DCP.  For example, to refer to the &lsquo;Content DCP&rsquo;'s video and audio you would select the <guilabel>Video</guilabel> tab, click <guilabel>Refer to existing DCP</guilabel> then select the <guilabel>Audio</guilabel> tab and do the same.</listitem>
+<listitem>Do <guilabel>Make DCP</guilabel> as usual and your VF DCP will be created.</listitem>
+</itemizedlist>
+
+</section>
+
+</section>
+
+
+
+</chapter>
+<!-- ============================================================== -->
+
+
 <!-- ============================================================== -->
 <chapter xmlns="http://docbook.org/ns/docbook" version="5.0" xml:lang="en">
 <title>Content settings</title>
 <!-- ============================================================== -->
 <chapter xmlns="http://docbook.org/ns/docbook" version="5.0" xml:lang="en">
 <title>Content settings</title>
@@ -485,8 +665,8 @@ to encode a single frame which it can then repeat.
 <para>
 The previous chapters showed DCP generation using the default
 settings.  DCP-o-matic offers a range of features to adjust the
 <para>
 The previous chapters showed DCP generation using the default
 settings.  DCP-o-matic offers a range of features to adjust the
-content that goes into your DCP, and this chapter describes those features in
-detail.
+content that goes into your DCP, and this chapter describes those
+features in detail.
 </para>
 
 <section>
 </para>
 
 <section>
@@ -1015,20 +1195,35 @@ content, as shown in <xref linkend="fig-subtitles-tab"/>.
 </figure>
 
 <para>
 </figure>
 
 <para>
-DCP-o-matic will extract subtitles from the content, if present, and
-they can be &lsquo;burnt into&rsquo; the DCP (that is, they are
-included in the image and not overlaid by the projector) or included
-as a separate subtitle &lsquo;asset&rsquo; within your DCP (in which
-case the projector overlays them onto the image on playback).  The
-difference between these two arrangements is illustrated by <xref
-linkend="fig-burn-in"/> and <xref linkend="fig-discrete"/>
+DCP-o-matic can either:
+</para>
+
+<itemizedlist>
+  <listitem>Extract &lsquo;image&rsquo; subtitles that are embedded in video files, or</listitem>
+  <listitem>Use text subtitles from SubRip (<code>.srt</code>) or DCP XML files.</listitem>
+</itemizedlist>
+
+<para>
+Image subtitles are represented using a set of bitmaps, as commonly
+used on DVD and BluRay.  Such subtitles can (currently) only be
+&lsquo;burnt&rsquo; into the DCP (that is, they are included in the
+image and not overlaid by the projector).
+</para>
+
+<para>
+With text subtitles you have the choice to either burn-in or include
+the subtitles as separate subtitle &lsquo;asset&rsquo; within your DCP
+(in which case the projector overlays them onto the image on
+playback).  The difference between burn-in and overlay is
+illustrated by <xref linkend="fig-burn-in"/> and <xref
+linkend="fig-discrete"/>.
 </para>
 
 <figure id="fig-burn-in">
   <title>Burnt-in subtitles</title>
   <mediaobject>
     <imageobject>
 </para>
 
 <figure id="fig-burn-in">
   <title>Burnt-in subtitles</title>
   <mediaobject>
     <imageobject>
-       <imagedata scale="80" fileref="diagrams/burn-in&dia;"/>
+       <imagedata scale="100" fileref="diagrams/burn-in&dia;"/>
     </imageobject>
   </mediaobject>
 </figure>
     </imageobject>
   </mediaobject>
 </figure>
@@ -1037,7 +1232,7 @@ linkend="fig-burn-in"/> and <xref linkend="fig-discrete"/>
   <title>Separate subtitles</title>
   <mediaobject>
     <imageobject>
   <title>Separate subtitles</title>
   <mediaobject>
     <imageobject>
-       <imagedata scale="80" fileref="diagrams/discrete&dia;"/>
+       <imagedata scale="100" fileref="diagrams/discrete&dia;"/>
     </imageobject>
   </mediaobject>
 </figure>
     </imageobject>
   </mediaobject>
 </figure>
@@ -1051,25 +1246,17 @@ encoding need only be done once for the project rather than once for
 every language.
 </para>
 
 every language.
 </para>
 
-<para>
-Note that subtitles come in two types: text and bitmap.  Text
-subtitles are expressed as plain text and can be either burnt into the
-image or included as a separate subtitle asset within the DCP.  Bitmap
-subtitles, on the other hand, are expressed as pre-rendered bitmaps.
-They cannot (yet) be added to the DCP as a separate asset and must be
-burnt into the image.
-</para>
-
 <para>
 Select the <guilabel>Use Subtitles</guilabel> check-box to enable
 <para>
 Select the <guilabel>Use Subtitles</guilabel> check-box to enable
-these subtitles.
+the subtitles in the selected content.
 </para>
 
 <para>
 Select the <guilabel>Burn subtitles into image</guilabel> check-box to
 burn these subtitles into the image; if this is not ticked the
 subtitles will be included separately in the DCP to be rendered by the
 </para>
 
 <para>
 Select the <guilabel>Burn subtitles into image</guilabel> check-box to
 burn these subtitles into the image; if this is not ticked the
 subtitles will be included separately in the DCP to be rendered by the
-projector.
+projector.  This check-box will always be ticked if you are using
+embedded &lsquo;image&rsquo; subtitles.
 </para>
 
 <para>
 </para>
 
 <para>
@@ -1129,7 +1316,7 @@ linkend="fig-timecode"/>.
   <title>Timecode</title>
   <mediaobject>
     <imageobject>
   <title>Timecode</title>
   <mediaobject>
     <imageobject>
-       <imagedata fileref="diagrams/timecode&dia;"/>
+       <imagedata scale="100" fileref="diagrams/timecode&dia;"/>
     </imageobject>
   </mediaobject>
 </figure>
     </imageobject>
   </mediaobject>
 </figure>
@@ -1375,6 +1562,12 @@ key for you.  To specify your own key, click the
 <guilabel>Edit..</guilabel> button next to the key.
 </para>
 
 <guilabel>Edit..</guilabel> button next to the key.
 </para>
 
+<para>
+The <guilabel>Reels</guilabel> and <guilabel>Reel length</guilabel>
+controls specify how the DCP will be split up into
+&lsquo;reels&rsquo;.  See <xref linkend="sec-reels"/> below.
+</para>
+
 <para>
 The <guilabel>Standard</guilabel> option specifies which of the two
 DCP standards DCP-o-matic should use.  If in doubt, use SMPTE (the
 <para>
 The <guilabel>Standard</guilabel> option specifies which of the two
 DCP standards DCP-o-matic should use.  If in doubt, use SMPTE (the
@@ -1479,6 +1672,84 @@ This upmixing algorithm is due to GĂ©rald Maruccia.
 </listitem>
 </itemizedlist>
 
 </listitem>
 </itemizedlist>
 
+<!-- ============================================================== -->
+<section xml:id="sec-reels">
+<title>Reels</title>
+
+<para>
+A &lsquo;reel&rsquo; in a DCP is a subsection of the DCP, in the same
+way as a 35mm reel is a section of a film.  A DCP can be split up into
+any number of reels and the joins (the equivalent to 35mm splices)
+between the reels are seamless.
+</para>
+
+<para>
+There is no reason why you can't just use a single reel for the whole
+of your DCP, as there is no limit on their length.  Many people choose
+to do this.
+</para>
+
+<para>
+There are, however, some possible advantages of splitting things up
+into reels:
+</para>
+
+<itemizedlist>
+<listitem>
+The picture, sound and subtitle data of the DCP will be
+split up into more smaller files on disk, rather than fewer larger
+files.  This can be useful if the DCP is to be transferred on storage
+that have file size limits.  The FAT32 filesystem, for example, can
+only hold files smaller than 4Gb.  A 6Gb DCP with a single reel could
+not be transferred using a FAT32-formatted disk.  If that DCP were
+split up into two 3Gb reels it could be transferred.
+</listitem>
+<listitem>
+It is easier to re-use DCP components if they are in reels.  Consider,
+for example, a film company who wants to put a 5 second ident onto the
+beginning of DCPs that they distribute.  If they receive a feature
+film DCP they can modify it to add their ident as a separate reel.
+This is easier than attaching the picture data in the DCP.
+</listitem>
+</itemizedlist>
+
+<para>
+DCP-o-matic offers three options for setting up the reels in your DCP:
+single reel, split by video content or custom.
+</para>
+
+<para>
+<guilabel>Single reel</guilabel>, as its name suggests, keeps the whole DCP as one reel.
+This is a perfectly good option if you have no particular reason to
+need reels.
+</para>
+
+<para>
+<guilabel>Split by video content</guilabel> puts each piece of source
+video content in its own reel, as shown in <xref linkend="fig-reels-by-video"/>.
+</para>
+
+<figure id="fig-reels-by-video">
+<title>Making reels using split by video content</title>
+<mediaobject><imageobject><imagedata scale="100" fileref="diagrams/reels-by-video&dia;"/></imageobject></mediaobject>
+</figure>
+
+<para>
+Here we have three video files (<code>ident.mp4</code>,
+<code>feature.ts</code> and <code>cred.mov</code>).  With
+<guilabel>split by video content</guilabel> DCP-o-matic makes a new
+reel to hold each video file.
+</para>
+
+<para>
+<guilabel>Custom</guilabel> splits reels by the size of the files that
+will make up their video content.  With <guilabel>Custom</guilabel>
+you must specify a reel length in Gb.  Then no file in the DCP will be larger than this reel length.
+</para>
+
+</section>
+
+
 <!-- ============================================================== -->
 <section>
 <title>Show audio</title>
 <!-- ============================================================== -->
 <section>
 <title>Show audio</title>
@@ -1646,10 +1917,10 @@ those cinemas that are allowed to play the DCP.
 
 <para>
 The first part is simple: ticking the <guilabel>Encrypted</guilabel>
 
 <para>
 The first part is simple: ticking the <guilabel>Encrypted</guilabel>
-box in the <guilabel>DCP</guilabel> tab of DCP-o-matic will encrypt
-the DCP using a random key that DCP-o-matic generates.  The key will
-be written to the film's metadata file, which should be kept
-secure.
+box in the <guilabel>DCP</guilabel> tab will instruct DCP-o-matic to
+encrypt the DCP that it makes using a random key that DCP-o-matic
+generates.  The key will be written to the film's metadata file, which
+should be kept secure.
 </para>
 
 <para>
 </para>
 
 <para>
@@ -1660,10 +1931,20 @@ is).
 </para>
 
 <para>
 </para>
 
 <para>
-The second part is to generate KDMs for the cinemas that you wish to
-allow to play your DCP.  This is done using the <guilabel>Make
-KDMs</guilabel> option on the <guilabel>Jobs</guilabel> menu.  This
-will open the KDM dialogue box, as shown in <xref linkend="fig-kdm"/>.
+The second part of distributions is to generate KDMs for the cinemas
+that you wish to allow to play your DCP.  There are two approaches to
+this within DCP-o-matic: using the project, or using a DKDM.  These
+approaches are now described in turn.
+</para>
+
+<section>
+<title>Creating KDMs from a DCP-o-matic project</title>
+
+<para>
+You can create KDMs from inside a DCP-o-matic project using the
+<guilabel>Make KDMs</guilabel> option on the <guilabel>Jobs</guilabel>
+menu.  This will open the KDM dialogue box, as shown in <xref
+linkend="fig-kdm"/>.
 </para>
 
 <figure id="fig-kdm">
 </para>
 
 <figure id="fig-kdm">
@@ -1683,10 +1964,11 @@ available by the projector manufacturers as text files with a
 </para>
 
 <para>
 </para>
 
 <para>
-DCP-o-matic can store these certificates to make life easier.  It
-stores details of cinemas and screens within those cinemas.  Each
-screen has a certificate for its projector.  DCP-o-matic can generate
-KDMs for any screens that it knows about.
+DCP-o-matic can store these certificates along with details of their
+cinemas and screens within those cinemas.  Each screen has a
+certificate for its projector (and optionally certificates for other
+trusted devices, such as the sound processor).  DCP-o-matic can
+generate KDMs for any screens that it knows about.
 </para>
 
 <para>
 </para>
 
 <para>
@@ -1708,11 +1990,10 @@ Alternatively, certificates for projection systems made by some
 manufacturers can be downloaded from databases provided by the
 manufacturer.  Currently this is supported for Doremi and Dolby
 equipment.  If you are targeting a screen with equipment by one of
 manufacturers can be downloaded from databases provided by the
 manufacturer.  Currently this is supported for Doremi and Dolby
 equipment.  If you are targeting a screen with equipment by one of
-these manufacturers you can select Doremi or Dolby from the
-<guilabel>Server manufacturer</guilabel> selection and then click
-<guilabel>Download</guilabel>.  In the next dialogue box, enter
-details of the screen and click <guilabel>Download</guilabel> and, all
-being well, the certificate will be fetched.
+these manufacturers you can click <guilabel>Download</guilabel> then
+enter the serial number of the server in the screen and click
+<guilabel>Download</guilabel> again and, all being well, the certificate
+will be fetched.
 </para>
 
 <para>
 </para>
 
 <para>
@@ -1752,6 +2033,93 @@ generate the KDMs.
 
 </section>
 
 
 </section>
 
+<section>
+<title>Creating KDMs using a DKDM</title>
+</section>
+
+<para>
+It can be inconvenient to need a whole DCP-o-matic project just to
+create KDMs for its film.  Perhaps you want to archive the project to
+save space, or create KDMs on a different machine.  In such situations
+it is easier to use a DKDM.  This is a normal KDM, but instead of
+being targeted at a projection system (to allow it to decrypt the
+content) it is targeted at a particular users's certificate.  This
+means that the certificate owner can create new KDMs for other users.
+The DKDM holds everything that is required to create further KDMs.
+</para>
+
+<para>
+Sometimes it is useful to create DKDMs that can be used by
+DCP-o-matic.  If you create such a DKDM you can keep it and then, at
+any point in the future, use DCP-o-matic's standalone KDM creator to
+make KDMs for the DKDM's film for any cinema.
+</para>
+
+<para>
+In other cases a DKDM is sent to a 3rd party so that they can create
+KDMs for your films.  This can be useful if, for example, you have a
+distributor who provides 24-hour KDM support to cinemas and can create
+KDMs for anybody that requires them at short notice.
+</para>
+
+<para>
+To create a DKDM for DCP-o-matic, open your encrypted project and
+select <guilabel>Make DKDM for DCP-o-matic...</guilabel> from the
+<guilabel>Jobs</guilabel> menu.  Select the CPL that you want to make
+the DKDM for and click <guilabel>OK</guilabel>.  This DKDM will then
+be available in the KDM creator.  This is a separate program which you
+can start from the same place that you start the &lsquo;Normal&rsquo;
+DCP-o-matic.  Its window is shown in <xref linkend="fig-kdm-creator"/>.
+</para>
+
+<figure id="fig-kdm-creator">
+  <title>The KDM creator</title>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="screenshots/kdm-creator&scs;"/>
+    </imageobject>
+  </mediaobject>
+</figure>
+
+<para>
+To create KDMs, select the cinema(s) and/or screens that you want KDMs
+to be created for, the date range, the DCP that the KDMs are for and
+the destination for the KDMs and click <guilabel>Create
+KDMs</guilabel>.
+</para>
+
+<para>
+By default the <guilabel>DKDM</guilabel> list will list any DCPs for
+which you have clicked <guilabel>Make DKDM for
+DCP-o-matic</guilabel>in the main DCP-o-matic program.  If you have
+other DKDMs you can add them by clicking <guilabel>Add...</guilabel> and
+specifying the file containing the DKDM.
+</para>
+
+<para>
+If another organisation wants to send you a DKDM they will ask you for
+a target certificate.  You can get DCP-o-matic's target certificate by
+opening <guilabel>Preferences</guilabel> and clicking <guilabel>Export
+DCP decryption certificate...</guilabel> in the <guilabel>Keys</guilabel>
+tab.
+
+</para>
+
+</section>
+
+<section>
+<title>Encryption overview</title>
+
+<figure id="fig-encryption-overview">
+  <title>Overview of encryption</title>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="diagrams/crypt&dia;"/>
+    </imageobject>
+  </mediaobject>
+</figure>
+
+</section>
 </chapter>
 
 
 </chapter>
 
 
@@ -1971,7 +2339,7 @@ be used when targeting a KDM at DCP-o-matic.
 If you want to import an encrypted DCP you will need to give the
 decryption certificate to the distributor of the DCP so that they can
 generate a DKDM for you.  You can save this certificate to disk by
 If you want to import an encrypted DCP you will need to give the
 decryption certificate to the distributor of the DCP so that they can
 generate a DKDM for you.  You can save this certificate to disk by
-clicking <guilabel>Export DCP decryption certificate</guilabel>.  As
+clicking <guilabel>Export DCP decryption certificate...</guilabel>.  As
 with the signing chain, DCP-o-matic will create a certificate chain
 and private key for you.  You can also choose to load your own
 certificates and key or re-make the chain and key with new, random
 with the signing chain, DCP-o-matic will create a certificate chain
 and private key for you.  You can also choose to load your own
 certificates and key or re-make the chain and key with new, random
@@ -2384,7 +2752,7 @@ after you have created a DCP for a film called &lsquo;DCP Test&rsquo;.
   <title>Creating a new film</title>
   <mediaobject>
     <imageobject>
   <title>Creating a new film</title>
   <mediaobject>
     <imageobject>
-      <imagedata fileref="diagrams/file-structure&dia;"/>
+      <imagedata scale="100" fileref="diagrams/file-structure&dia;"/>
     </imageobject>
   </mediaobject>
 </figure>
     </imageobject>
   </mediaobject>
 </figure>