Talk about Disk Writer in the manual.
[dcpomatic.git] / doc / manual / dcpomatic.xml
index 5c819e0a790d9c682838ae3fec3b19767c7d5d0e..b278295d09d314c4c21bd027ecd204ffe7f41a46 100644 (file)
@@ -32,9 +32,9 @@ Hello, and welcome to DCP-o-matic!
   <listitem>Create <ulink
   url="https://en.wikipedia.org/wiki/Digital_Cinema_Package">Digital
   Cinema Packages</ulink> (DCPs) from video, audio, subtitle and closed-caption files.</listitem>
-  <listitem>Play and verify DCPs.</listitem>
-  <listitem>Create KDMs for DCPs.</listitem>
-  <listitem>Write cinema-format drives containing DCPs.</listitem>
+  <listitem>Play and verify DCPs (see <xref linkend="ch-player"/> and <xref linkend="ch-verifier"/>).</listitem>
+  <listitem>Create KDMs for DCPs (see <xref linkend="ch-encryption"/>).</listitem>
+  <listitem>Write cinema-format drives containing DCPs (see <xref linkend="ch-writer"/>).</listitem>
 </itemizedlist>
 
 </section>
@@ -96,12 +96,8 @@ DCP-o-matic will be installed onto your machine.
 </para>
 
 <para>
-If you are using a 32-bit version of Windows, you will need the 32-bit
-installer.  For 64-bit Windows, either installer will work, but I
-suggest you use the 64-bit version as it will allow DCP-o-matic to
-use more memory.  You may find that DCP-o-matic crashes if you run
-many parallel encoding threads (more than 4) on the 32-bit
-version.
+Use the 64-bit installer unless you are using a 32-bit version of Windows.
+You may find that DCP-o-matic crashes if run the 32-bit version on a CPU with more than 4 cores.
 </para>
 
 </section>
@@ -112,43 +108,30 @@ version.
 <title>macOS</title>
 
 <para>
-DCP-o-matic will run on macOS version 10.6 (Snow Leopard) and
-higher.  DCP-o-matic is split into seven separate applications, each of
+DCP-o-matic versions 2.16.0 and higher will run on macOS version 10.10 (Yosemite) and
+higher.  DCP-o-matic is split into eight separate applications, each of
 which can be installed by downloading the <code>.dmg</code>,
 double-clicking to open and then dragging the icon to your
 <guilabel>Applications</guilabel> folder.
 </para>
 
 <para>
-Make sure you choose the correct download, depending on whether you are running macOS 10.9 (Mavericks) (or higher) or something older.
+If you don't know which parts of DCP-o-matic to install, start
+with the first (main) part.
 </para>
 
 <para>
-If you don't know which parts of DCP-o-matic to install, start
-with the first (main) part.
+If you are using macOS 10.9 (Mavericks) or older you will need to install the latest 2.14.x version of DCP-o-matic.
 </para>
 
 </section>
 
 <!-- ============================================================== -->
 <section>
-<title>Debian, Ubuntu or Mint Linux</title>
+<title>Debian, Ubuntu and Mint Linux</title>
 
-<para>
-  You can install DCP-o-matic on:
-</para>
-
-<itemizedlist>
-  <listitem>Debian 9 (&lsquo;squeeze&rsquo;), 10 (&lsquo;buster&rsquo;) and unstable (&lsquo;sid&rsquo;)</listitem>
-  <listitem>Ubuntu 16.04 (&lsquo;Xenial Xerus&rsquo;), 18.04 (&lsquo;Bionic Beaver&rsquo;), 19.10 (&lsquo;Eoan Ermine&rsquo;) and 20.04 (&lsquo;Focal Fossa&rsquo;)</listitem>
-  <listitem>Mint 18 and 19</listitem>
-</itemizedlist>
-
-<para>
-using <code>.deb</code> packages: download the appropriate package
-from <ulink url="https://dcpomatic.com/">https://dcpomatic.com/</ulink>
-and double-click it.  Debian, Ubuntu or Mint will install the necessary bits and
-pieces and set DCP-o-matic up for you.
+<para>There are <code>.deb</code> packages for Debian, Ubuntu and Mint on 
+  <ulink url="https://dcpomatic.com/">https://dcpomatic.com/</ulink>
 </para>
 </section>
 <!-- ============================================================== -->
@@ -158,7 +141,7 @@ pieces and set DCP-o-matic up for you.
 <section>
   <title>Fedora, Centos and Mageia Linux</title>
 
-  <para>There are <code>.rpm</code> packages for Fedora 30, 31 and 32, Centos 7 and 8 and Mageia 7 on
+  <para>There are <code>.rpm</code> packages for Fedora, Centos and Mageia on
   <ulink url="https://dcpomatic.com/">https://dcpomatic.com/</ulink>
   </para>
 </section>
@@ -174,72 +157,14 @@ thanks to Stefan Karner.
 </para>
 </section>
 
-
-<!-- ============================================================== -->
 <section>
-<title>Other Linux distributions</title>
-
-<para>
-Installation on other Linux systems (for which no packages are
-available) is quite hard as it must be compiled from source.  If you
-can't download packages for your distribution, do let me know by
-<ulink url="mailto:carl@dcpomatic.com">email</ulink> and I will look
-into providing packages on the website.
-</para>
-
-<para>
-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>
-<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.boost.org/">Boost</ulink></listitem>
-<listitem><ulink url="http://www.libssh.org/">libssh</ulink></listitem>
-<listitem><ulink url="http://www.gtk.org/">GTK (on Linux)</ulink></listitem>
-<listitem><ulink url="http://www.wxwidgets.org/">wxWidgets</ulink></listitem>
-<listitem><ulink url="http://libxmlplusplus.sourceforge.net/">libxml++</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/asdcplib">asdcplib with some patches</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="https://carlh.net/locked_sstream">locked_sstream</ulink></listitem>
-<listitem><ulink url="https://www.music.mcgill.ca/~gary/rtaudio/">rtaudio</ulink></listitem>
-<listitem><ulink url="http://site.icu-project.org">libicu</ulink></listitem>
-</itemizedlist>
-</para>
-
-<para>
-Once you have installed the development packages for the dependencies,
-download the source code from <ulink
-url="https://dcpomatic.com/">https://dcpomatic.com/</ulink>,
-unpack it and run the following commands from inside the source
-directory:
-</para>
-
-<programlisting>
-./waf configure --disable-tests
-./waf build
-sudo ./waf install
-</programlisting>
-
-<para>
-With any luck, this will build and install DCP-o-matic on your system.  To run it, enter:
-</para>
-
-<programlisting>
-dcpomatic2
-</programlisting>
-
+<title>Building from source</title>
 <para>
-in a shell.
+Since DCP-o-matic is open-source you can also build it yourself,
+though this can be quite a difficult process (especially on Windows and macOS).
+There are instructions for how to do it on <ulink url="https://dcpomatic.com/development">https://dcpomatic.com/</ulink>
 </para>
 </section>
-
 </chapter>
 
 
@@ -264,15 +189,19 @@ movie <ulink url="http://sintel.org/">Sintel</ulink> from <ulink
 url="https://download.blender.org/durian/trailer/Sintel_Trailer.480p.DivX_Plus_HD.mkv">their
 website</ulink>.  Generally one would want to use the
 highest-resolution material available, but for this test we will use
-the low-resolution version to save everyone's bandwidth bills.
+the low-resolution version to save on download time.
 </para>
 
 <para>
 Now, start DCP-o-matic and its window will open.  First, we will
 create a new &lsquo;film&rsquo;.  A &lsquo;film&rsquo; is how DCP-o-matic refers to
 some pieces of content, along with some settings, which we will make into
-a DCP.  DCP-o-matic stores its data in a folder on your disk while it
-creates the DCP.  You can create a new film by selecting
+a DCP.  DCP-o-matic stores its &lsquo;film&rsquo; data in a folder on your disk while it
+creates the DCP.
+</para>
+
+<para>
+You can create a new film by selecting
 <guilabel>New</guilabel> from the <guilabel>File</guilabel> menu, as
 shown in <xref linkend="fig-file-new"/>.
 </para>
@@ -303,7 +232,7 @@ linkend="fig-video-new-film"/>.
 <para>
 In this dialogue box you can choose a name for the film.  This will be
 used to name the folder to store its data in, and also as the initial
-name for the DCP itself.  You can also choose whereabouts you want to create
+name for the DCP itself.  You can also choose where you want to create
 the film.  In the example from the figure, DCP-o-matic will create a
 folder called &lsquo;DCP Test&rsquo; inside my existing folder <code>DCP</code> into which it
 will write its working files.
@@ -403,17 +332,15 @@ linkend="fig-making-dcp"/>.
 </figure>
 
 <para>
-When it has finished, the DCP will end up on your disk inside the
-film's folder.  You can then copy this to a projector via a USB
-stick, hard-drive or network connection.  See <xref
+When it has finished, the DCP will be written into its own folder inside the film's folder.
+You can copy this to a projector via a USB stick, hard-drive or network connection.  See <xref
 linkend="ch-files"/> for details about the files that DCP-o-matic creates.
 </para>
 
 <para>
 Alternatively, DCP-o-matic can upload your DCP directly to a projector
 or Theatre Management System (TMS) that is accessible via SCP or FTP
-across your network.  See the <xref linkend="sec-prefs-tms"
-endterm="sec-prefs-tms-short"/> in <xref linkend="sec-prefs-tms"/>.
+across your network.  See <xref linkend="sec-prefs-tms"/>.
 </para>
 
 </section>
@@ -495,6 +422,21 @@ to encode a single frame which it can then repeat.
 </chapter>
 
 
+<!-- ============================================================== -->
+<chapter xmlns="http://docbook.org/ns/docbook" version="5.0" xml:lang="en" id="ch-disk-writer">
+<title>Writing DCP drives</title>
+
+<para>
+Once a DCP has been created it must often be transferred to a cinema for playback.  The most reliable way to do this is to write a specially-formatted drive (in the ext2 format) containing your DCP.
+</para>
+
+<para>
+Writing ext2-formatted drives is difficult from macOS and Windows without custom software.  DCP-o-matic includes a tool called the &lsquo;DCP-o-matic Disk Writer&rsquo; which makes it easy.
+</para>
+
+</chapter>
+
+
 <!-- ============================================================== -->
 <chapter xmlns="http://docbook.org/ns/docbook" version="5.0" xml:lang="en" id="ch-manipulating-existing-dcps">
 <title>Manipulating existing DCPs</title>
@@ -512,7 +454,7 @@ modify them in various ways.
 The first step in manipulating an existing DCP is to import it.  Click
 <guilabel>Add DCP...</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 slow as
+can preview it in the normal way, though playback may be slow as
 decoding of DCPs is almost as computationally intensive as encoding
 them.
 </para>
@@ -714,12 +656,14 @@ example, a JPEG, PNG or TIFF file.
 images which should be treated as the frames of a video.
 </listitem>
 
-<listitem>Subtitle &mdash; a file containing subtitle which will be
+<listitem>Subtitle &mdash; a file containing subtitles which will be
 superimposed on the image of the DCP.  These can be
 <guilabel>.srt</guilabel>, <guilabel>.ssa</guilabel>, <guilabel>.ass</guilabel> or <guilabel>.xml</guilabel>
-files.</listitem>
+files.  Subtitle files can also be used to make closed captions.</listitem> 
 
 <listitem>DCP &mdash; an existing DCP.</listitem>
+
+<listitem>ATMOS MXFs &mdash; if you have Dolby ATMOS content in MXF format (created using Dolby's tools) you can add it to a DCP just like any other content.</listitem>
 </itemizedlist>
 
 <para>
@@ -822,7 +766,7 @@ linkend="sec-prefs-keys"/>).
 
 <!-- ============================================================== -->
 <section>
-<title>Content Properties</title>
+<title>Content properties</title>
 
 <para>
 Below the content list are the controls to set content properties.  To
@@ -932,38 +876,6 @@ and DCP-o-matic will pick up the appropriate frames from each.
 </section>
 
 
-<!-- ============================================================== -->
-<section>
-<title>Filtering</title>
-
-<para>
-The &lsquo;filters&rsquo; settings allow you to apply various video
-filters to the image.  These may be useful to try to improve
-poor-quality sources like DVDs.  You can set up the filters by clicking the
-<guilabel>Edit</guilabel> button next to the filters entry in the
-setup area of the DCP-o-matic window; this opens the filters selector
-as shown in <xref linkend="fig-filters"/>.
-</para>
-
-<figure id="fig-filters">
-  <title>Filters selector</title>
-  <mediaobject>
-    <imageobject>
-      <imagedata fileref="screenshots/filters&scs;"/>
-    </imageobject>
-  </mediaobject>
-</figure>
-
-<para>
-After changing the filters setup, you will need to regenerate the DCP
-to see the effect on the cinema screen.  The preview in DCP-o-matic
-will update itself whenever filters are changed, though of course this
-image may be smaller and of lower resolution than a projected image!
-</para>
-</section>
-
-
-
 <!-- ============================================================== -->
 <section>
 <title>Colour conversion</title>
@@ -1693,6 +1605,107 @@ open to allow you to choose which settings you want to copy.  Clicking
 </section>
 
 
+<section>
+<title>Advanced content settings</title>
+
+<para>
+There are a few more content settings that you can change by right-clicking a piece of content in the list and choosing <guilabel>Advanced settings...</guilabel>
+This opens the dialogue box shown in <xref linkend="fig-advanced-content"/>.
+</para>
+
+<figure id="fig-advanced-content">
+  <title>Advanced content dialogue</title>
+  <mediaobject>
+    <imageobject>
+       <imagedata fileref="screenshots/advanced-content&scs;"/>
+    </imageobject>
+  </mediaobject>
+</figure>
+
+
+<!-- ============================================================== -->
+<section>
+<title>Video filters</title>
+
+<para>
+The <guilabel>Video filters</guilabel> setting allows you to apply various
+filters to the image.  These may be useful to try to improve
+poor-quality sources like DVDs.  You can set up the filters by clicking the
+<guilabel>Edit</guilabel> button next to the filters entry; this opens the filters selector
+as shown in <xref linkend="fig-filters"/>.
+</para>
+
+<figure id="fig-filters">
+  <title>Filters selector</title>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="screenshots/filters&scs;"/>
+    </imageobject>
+  </mediaobject>
+</figure>
+
+</section>
+
+
+<section>
+<title>Override frame rate</title>
+
+<para>
+The <guilabel>Override detected video frame rate</guilabel> setting has some different effects depending on the type of content
+you use it on.
+</para>
+
+<para>
+For video content, it sets the frame rate that DCP-o-matic will run the video at.  This is useful if DCP-o-matic has mis-detected
+the video frame rate.  For example, if DCP-o-matic says your content is 24fps when you know for a fact it's 25fps, you can set the
+override value to 25 to force DCP-o-matic to do the right thing.
+</para>
+
+<para>
+On audio, subtitle and caption content this setting behaves slightly differently.  It sets the video frame rate that the content
+in question was intended to work with.  As an example, consider a project with a 23.976fps video source and some separate audio files.
+Perhaps those audio files have been mastered alongside a 24fps version of your video.  By default, DCP-o-matic will see the 23.976fps
+video file and decide to run it slightly fast at 24fps to fit the DCP standard.  It will then also run the audio slightly fast so that
+it stays in sync with the video.
+</para>
+
+<para>
+In this case, though, that is not what you want, since the audio is already &lsquo;fixed&rsquo; to work alongside 24fps video.  If you
+override the video frame rate of the <emphasis>audio</emphasis> content to 24fps this will stop DCP-o-matic altering it.
+</para>
+
+<para>
+A similar situation can occur if you have video at one rate and a subtitle file that was prepared with its timing at a different rate.
+In that case, you should override the video frame rate of the <emphasis>subtitle</emphasis> content to the one that it was prepared for.
+This will mean that DCP-o-matic can get the relative timing right.
+</para>
+
+<para>
+Do <emphasis>not</emphasis> use this setting to change the DCP frame rate.  Doing so will result in strange effects and sync problems.
+</para>
+</section>
+
+
+<section>
+<title>Video has burnt-in subtitles</title>
+<para>
+Details about subtitle language are stored in various places within the DCP metadata.  If a piece of video content already has subtitles
+burnt into the image you can tell DCP-o-matic the language that they are in by clicking the <guilabel>Edit...</guilabel> button.
+</para>
+</section>
+
+
+<section>
+<title>Ignore this content's video</title>
+<para>
+Tick this if you have some content which includes video along with other things (such as audio or subtitles) and you do
+<emphasis>not</emphasis> want the video to appear in the DCP.
+</para>
+</section>
+
+
+</section>
+
 </chapter>
 
 
@@ -1861,7 +1874,7 @@ unused channel will be filled with silence.
 
 <para>
 The <guilabel>Processor</guilabel> control allows you to select a
-process to apply to the audio before it goes into the DCP.  Three processes are currently provided:
+process to apply to the audio before it goes into the DCP.  One process is currently provided:
 </para>
 
 <itemizedlist>
@@ -1871,32 +1884,8 @@ stereo input and extract the common part (corresponding to the
 The remaining L/R parts will be kept in the L/R channels of the DCP.
 This may be useful to make near-field L/R mixes more compatible with
 cinema audio systems.</listitem>
-<listitem>Stereo to 5.1 up-mixer A &mdash; this will take a stereo input and up-mix it to &lsquo;fake&rsquo; 5.1.  The input L/R are treated as follows:
-<itemizedlist>
-<listitem>DCP L is input L bandpass-filtered between 1.9kHz and 4.8kHz.</listitem>
-<listitem>DCP R is input R bandpass-filtered between 1.9kHz and 4.8kHz.</listitem>
-<listitem>DCP C is input L mixed with input R, taken down by 3dB and then bandpass-filtered between 150Hz and 1.9kHz.</listitem>
-<listitem>DCP Lfe is input L mixed with input R, taken down by 3dB and then bandpass-filtered between 20Hz and 150Hz.</listitem>
-<listitem>DCP Ls is input L bandpass-filtered between 4.8kHz and 20kHz.</listitem>
-<listitem>DCP Rs is input R bandpass-filtered between 4.8kHz and 20kHz.</listitem>
-</itemizedlist>
-<para>
-This upmixing algorithm is due to GĂ©rald Maruccia.
-</para>
-</listitem>
-<listitem>Stereo to 5.1 up-mixer B &mdash; this uses a different approach:
-<itemizedlist>
-  <listitem>DCP L is input L.</listitem>
-  <listitem>DCP R is input R.</listitem>
-  <listitem>DCP C is input L + input R taken down by 3dB.</listitem>
-  <listitem>DCP Lfe is DCP C bandpass filtered between 20Hz and 150Hz.</listitem>
-  <listitem>DCP Ls and Rs are input L - input R with a 20ms delay.</listitem>
-</itemizedlist>
-</listitem>
 </itemizedlist>
 
-The up-mixers are not particularly advanced and should be used with care.  You are strongly advised to check how the DCPs sound in a cinema if you have used one of DCP-o-matic's upmixers.
-
 <!-- ============================================================== -->
 <section xml:id="sec-reels">
 <title>Reels</title>
@@ -1924,7 +1913,7 @@ into reels:
 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
+that has a file size limit.  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.
@@ -2126,7 +2115,15 @@ from the timeline is also preserved.
   <para>
     From this dialogue you can select the required output format,
     output file and, in the case of MP4, the quality of the output
-    file.  Higher quality files will, of course, be larger.
+    file (by setting the <ulink url="https://trac.ffmpeg.org/wiki/Encode/H.264#crf">CRF value</ulink>).
+  </para>
+
+  <para>
+    The useful range of CRF values is from 17 (high quality but large file size) to 28 (smaller file size and still reasonable quality).
+  </para>
+
+  <para>
+    The time needed to export, and the resulting size, depend partly on the DCP resolution set in the project.  To change that, see chapter <xref linkend="ch-dcp"/>.
   </para>
 
   <para>
@@ -2172,7 +2169,7 @@ methods to understand it.
 
 <para>
 We suppose that we are trying to send a DCP to
-Alice's cinema without a troublemaker called Mallory being able to
+Alice's cinema without a third party called Mallory being able to
 watch it himself.
 </para>
 
@@ -2228,7 +2225,7 @@ certificate so that others can make encrypted DCPs for DCP-o-matic.
 We take our DCP's symmetric key and encrypt it using the public key of
 Alice's projector.  We send the result to Alice over email (using a
 format called a Key Delivery Message, or KDM).  Her projector then
-decrypts our message using its private key, yielding the magic
+decrypts our message using its private key, giving the
 symmetric key which can decrypt the DCP.
 </para>
 
@@ -2714,7 +2711,9 @@ like to live on the bleeding edge!
 
 <para>
 With these controls you can set the issuer and creator strings that
-will be put into the DCPs which you create.
+will be put into the DCPs which you create.  The issuer is typically your name
+(or your organisation's name) and the creator is typically the name of the tool
+used to make the DCP (e.g. DCP-o-matic).
 </para>
 </section>
 
@@ -3303,7 +3302,7 @@ There are two options for the encoding server;
 <code>dcpomatic_server_cli</code>, which runs on the command line, and
 <code>dcpomatic_server</code>, which has a simple GUI.  The command line
 version is well-suited to headless servers, especially on Linux, and
-the GUI version works best on Windows where it will put an icon in the
+the GUI version works best on Windows and macOS where it will put an icon in the
 system tray.
 </para>
 
@@ -3738,7 +3737,7 @@ The full details of OV and VF files are discussed in <xref linkend="sec-overlay"
 </chapter>
 
 <chapter xml:id="ch-player" xmlns="http://docbook.org/ns/docbook" version="5.0" xml:lang="en">
-  <title>Playing and verifying DCPs</title>
+  <title>Playing DCPs</title>
 
   <para>DCP-o-matic includes a DCP player, and although it requires a
   very high-speed CPU to play DCPs in full resolution, it can also
@@ -3764,14 +3763,190 @@ The full details of OV and VF files are discussed in <xref linkend="sec-overlay"
   resolution.
   </para>
 
+</chapter>
+
+
+<chapter xml:id="ch-verifier" xmlns="http://docbook.org/ns/docbook" version="5.0" xml:lang="en">
+  <title>Verifying DCPs</title>
+
   <para>
-    The player also offers a simple DCP validator.  To check a DCP,
+    The DCP-o-matic Player (see <xref linkend="ch-player"/>) also offers a DCP verifier.  To check a DCP,
     open it and then select <guilabel>Verify DCP</guilabel> from the
-    <guilabel>Tools</guilabel> menu.  This will run some basic checks to see if the DCP meets the required standards.
+    <guilabel>Tools</guilabel> menu.
   </para>
 
+  <para>
+    The verifier will report three kinds of problems:
+  </para>
+
+  <itemizedlist>
+  <listitem><emphasis>Errors</emphasis> &mdash; serious problems with the DCP that are likely to cause problems on playback.</listitem>
+  <listitem><emphasis>Bv2.1 errors</emphasis> &mdash; errors described by the <ulink url="https://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=9161348">SMPTE Bv2.1 standard</ulink>.</listitem>
+  <listitem><emphasis>Warnings</emphasis> &mdash; small problems that may not matter.</listitem>
+  </itemizedlist>
+
+  <para>
+    The following sections list what the verifier checks for in each category.
+  </para>
+
+  <section>
+  <title>Errors</title>
+  <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="verify_errors.xml"/>
+  </section>
+
+  <section>
+  <title>Bv2.1 errors</title>
+  <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="verify_bv21_errors.xml"/>
+  </section>
+
+  <section>
+  <title>Warnings</title>
+  <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="verify_warnings.xml"/>
+  </section>
+
+</chapter>
+
+
+<!-- ============================================================== -->
+<chapter xml:id="ch-writer">
+<title>Writing DCPs to disks</title>
+
+<para>
+Once you have your DCP, you need to get it to the cinema or theater who
+will play it. Sometimes this is possible via the internet, using a
+service such as Filemail. If that's an option: go for it! Network
+transfers avoid a lot of the difficulties that other methods have.
+</para>
+
+<para>
+However, your DCP may be too large to make that practical. In that case,
+the usual approach is to copy the DCP onto a USB hard drive or stick and
+physically take it or send it to the cinema.
+</para>
+
+<section>
+<title>Hard drive formatting</title>
+
+<para>
+In theory, this should be as simple as dragging and dropping the DCP's
+files onto a USB-connected drive. Sadly, though, things are not always
+that simple. This is because not all hard drives are formatted in the
+same way. The most common formats for hard drives are:
+</para>
+
+<itemizedlist>
+<listitem>APFS &mdash; used by macOS 10.13 and later for solid state drives (SSDs).</listitem>
+<listitem>HFS+ (Mac OS Extended) &mdash; used by macOS on 10.12 and earlier, and on all macOS systems for spinning disks.</listitem>
+<listitem>NTFS &mdash; modern format used by Windows.</listitem>
+<listitem>ExFAT &mdash; another modern, but less common (and buggier) format used by Windows.</listitem>
+<listitem>FAT32 &mdash; old format used by Windows.</listitem>
+<listitem>ext2, ext3, ext4 &mdash; often used by Linux.</listitem>
+</itemizedlist>
+
+<para>
+You can format a drive however you want, but a drive set up on macOS will usually use APFS, just as one set up on Windows will probably use NTFS or ExFAT.
+</para>
+
+<para>
+The problem you have as a DCP maker is: the only format that is
+guaranteed to work in all cinemas is ext2. This format is not easy to
+use directly from Windows or macOS: both operating systems need extra
+software to write ext2 drives.
+</para>
+
+<para>
+The &ldquo;DCP-o-matic Disk Writer&rdquo; provides a possible
+solution to this problem.  It allows you to format and copy DCPs onto ext2-formatted disks from Windows, macOS or Linux.
+</para>
+
+</section>
+
+
+<section>
+<title>Caution</title>
+
+<para>
+DCP-o-matic is made by one developer in his spare time. As a project,
+we do not have any quality assurance department, testing team or
+anything like that. Though we try our best to ensure quality using
+automated testing, and by the great efforts of our users to find and report problems,
+bugs do get into the code and things do go wrong.
+</para>
+
+<para>
+Though very undesirable, bugs in most parts of DCP-o-matic are usually
+not disastrous; they most often result in an error message, or some
+problem with a DCP. The Disk Writer tool, however, is a bit different.  It obtains
+permission from your operating system to write directly to disks connected to the
+computer.  Though we have done as much as we can to prevent problems, there is a chance
+that a bug in the Disk Writer could cause irretrievable data loss (for example, if
+the writer wrote to the wrong drive by mistake).
+</para>
+
+<para>
+No such problems have been reported, nor found by us during testing, but I would
+like to warn you that they are possible.  As always, make sure that you have backups
+(somewhere that is not directly connected to your computer) of anything that you do not want
+to lose.
+</para>
+
+</section>
+
+
+<section>
+<title>Writing a DCP to a disk</title>
+
+<para>
+Starting up the Disk Writer will give open a confirmation window to make sure that you understand the risks involved, as shown in <xref linkend="fig-disk-writer-notice"/>.
+</para>
+
+<figure id="fig-disk-writer-notice">
+  <title>Starting the Disk Writer</title>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="screenshots/disk-writer-notice&scs;"/>
+    </imageobject>
+  </mediaobject>
+</figure>
+
+<para>
+If you are sure you want to continue, type <code>I am sure</code> into the text box and click <guilabel>OK</guilabel>.  This will open the window shown in <xref linkend="fig-disk-writer"/>.
+</para>
+
+<figure id="fig-disk-writer">
+  <title>Starting the Disk Writer</title>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="screenshots/disk-writer&scs;"/>
+    </imageobject>
+  </mediaobject>
+</figure>
+
+<para>Next, click <guilabel>Open...</guilabel> and choose the DCP that you want to write.</para>
+
+<para>
+Now we need to choose the drive that the DCP will be written to from the drop-down menu.
+<emphasis>Whichever drive you choose will be irretrievably wiped!</emphasis>
+If the drive you want is not listed, click <guilabel>Refresh</guilabel> to search the system for drives.
+</para>
+
+<para>
+Finally, click <guilabel>Copy DCP</guilabel>.  After a confirmation window, the drive will be formatted,
+and the DCP copied and then read back to check that it was written correctly.
+</para>
+
+</section>
+
+</chapter>
+
+
+<!-- ============================================================== -->
+<chapter>
+<title>Keyboard shortcuts</title>
+<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="shortcuts.xml"/>
 </chapter>
 
+
 <!-- ============================================================== -->
 <chapter xml:id="ch-config" xmlns="http://docbook.org/ns/docbook" version="5.0" xml:lang="en">
 <title>Configuration files</title>