<!ENTITY % extensions SYSTEM "extensions.ent">
%extensions;
]>
-<book xmlns="http://docbook.org/ns/docbook" 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</title>
Installation on non-Ubuntu Linux is currently a little involved, as
there are no packages available (yet); you will have to compile it
from source. If you are using a non-Ubuntu distribution, do let me
-know via the <ulink url="mailto:dcpomatic@carlh.net">mailing
+know via the <ulink url="mailto:carl@dcpomatic.com">mailing
list</ulink> and I will see about building some packages.
</para>
<listitem><ulink url="http://www.gtk.org/">GTK</ulink></listitem>
<listitem><ulink url="http://www.wxwidgets.org/">wxWidgets</ulink></listitem>
<listitem><ulink url="http://carlh.net/software/libdcp/">libdcp</ulink></listitem>
+<listitem><ulink url="http://carlh.net/software/libcxml/">libcxml</ulink></listitem>
</itemizedlist>
</para>
<para>
In this chapter we will see how to create a video DCP using
-DCP-o-matic. We will gloss over some of the finer details, which are
-explained in later chapters.
+DCP-o-matic. We will gloss over the details and look at the basics.
</para>
<section>
shown in <xref linkend="fig-file-new"/>.
</para>
-<figure id="fig-file-new">
+<figure id="fig-file-new">
<title>Creating a new film</title>
<mediaobject>
<imageobject>
linkend="fig-video-new-film"/>.
</para>
-<figure id="fig-video-new-film">
+<figure id="fig-video-new-film">
<title>Dialogue box for creating a new film</title>
<mediaobject>
<imageobject>
will write its working files.
</para>
-<para>
-If you always create your DCPs in a particular folder, you can use
-DCP-o-matic's <guilabel>Preferences</guilabel> to make life a little
-easier by setting the default folder that DCP-o-matic will offer in this dialogue.
-See <xref linkend="ch-preferences"/>.
-</para>
-
</section>
<section>
-<title>Selecting content</title>
+<title>Adding content</title>
<para>
-The next step is to set the content that you want to use. Click the
-content selector, as shown in <xref
-linkend="fig-click-content-selector"/>, and a file chooser will
-open for you to select the content file to use, as shown in <xref
+The next step is to add the content that you want to use. DCP-o-matic
+can make DCPs from multiple pieces of content, but in this simple
+example we will just use a single piece. Click the <guilabel>Add
+file(s)...</guilabel> button, as shown in <xref
+linkend="fig-add-file"/>, and a file chooser will open for you to
+select the content file to use, as shown in <xref
linkend="fig-video-select-content-file"/>.
</para>
-<figure id="fig-click-content-selector">
- <title>Opening the content selector</title>
+<figure id="fig-add-file">
+ <title>Adding content files</title>
<mediaobject>
<imageobject>
- <imagedata fileref="screenshots/click-content-selector&scs;"/>
+ <imagedata fileref="screenshots/add-file&scs;"/>
</imageobject>
</mediaobject>
</figure>
When you do this, DCP-o-matic will take a look at your file. After a
short while (when the progress bar at the bottom right of the window
has finished), you can look through your content using the slider to
-the right of the window, as shown in <xref linkend="fig-examine-thumbs"/>.
+the right of the window, as shown in <xref linkend="fig-examine-content"/>.
</para>
-<figure id="fig-examine-thumbs">
+<figure id="fig-examine-content">
<title>Examining the content</title>
<mediaobject>
<imageobject>
- <imagedata fileref="screenshots/examine-thumbs&scs;"/>
+ <imagedata fileref="screenshots/examine-content&scs;"/>
</imageobject>
</mediaobject>
</figure>
accurate (it may be slightly slower or faster than it should be, for
example). This player is really only intended for brief inspection of
content; if you need to check it more thoroughly, use another player
-such as <ulink url="http://projects.gnome.org/totem/index.html">Totem</ulink>, <ulink url="http://www.mplayerhq.hu/design7/news.html">mplayer</ulink> or <ulink url="http://www.videolan.org/vlc/index.html">VLC</ulink>.
+such as <ulink
+url="http://projects.gnome.org/totem/index.html">Totem</ulink>, <ulink
+url="http://www.mplayerhq.hu/design7/news.html">mplayer</ulink> or
+<ulink url="http://www.videolan.org/vlc/index.html">VLC</ulink>.
</para>
</section>
+
+
<section>
-<title>Setting up</title>
+<title>Making the DCP</title>
+
+<para>In most cases, some adjustments would be made to DCP-o-matic's
+settings once the content has been added. For our simple test,
+however, the default values will suffice, so we can go straight onto
+making the DCP.</para>
<para>
-Now there are a few things to set up to describe how the DCP should be
-created. The settings are divided into four tabs: film, video, audio and subtitles.
+Choose <guilabel>Make DCP</guilabel> from the
+<guilabel>Jobs</guilabel> menu. DCP-o-matic will encode your DCP.
+This may take some time (many hours in some cases). While the job is
+in progress, DCP-o-matic will update you on how it is getting on with
+the progress bar in the bottom of its window, as shown in <xref
+linkend="fig-making-dcp"/>.
</para>
-<section>
-<title>Film tab</title>
+<figure id="fig-making-dcp">
+ <title>Making the DCP</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata scale="30" fileref="screenshots/making-dcp&scs;"/>
+ </imageobject>
+ </mediaobject>
+</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
+linkend="ch-files"/> for details about the files that DCP-o-matic creates.
+</para>
+
+<para>
+Alternatively, if you have a projector or TMS that is accessible via
+SCP across your network, you can upload the content directly from
+DCP-o-matic. See the preferences in <xref linkend="sec-prefs-tms"/>.
+</para>
+
+</section>
+</chapter>
+
+<chapter xmlns="http://docbook.org/ns/docbook" version="5.0" xml:lang="en">
+<title>Creating a still-image DCP</title>
+
+<para>
+DCP-o-matic can also be used to create DCPs of one or more still images, perhaps
+for an advertisement or an on-screen announcement. This chapter shows you
+how to do it.
+</para>
<para>
-The ‘film’ tab contains settings that pertain to the whole film, as shown in <xref linkend="fig-film-tab"/>.
+As with video DCPs, the first step is to create a new
+‘Film’; select <guilabel>New</guilabel> from the
+<guilabel>File</guilabel> menu and the new film dialogue will open as
+shown in <xref linkend="fig-still-new-film"/>.
</para>
-<figure id="fig-film-tab">
- <title>Film settings tab</title>
+<figure id="fig-still-new-film">
+ <title>Dialogue box for creating a new film</title>
<mediaobject>
<imageobject>
- <imagedata fileref="screenshots/film-tab&scs;"/>
+ <imagedata fileref="screenshots/still-new-film&scs;"/>
</imageobject>
</mediaobject>
</figure>
<para>
-The first thing here is the name. This is generally set to the title
-of the film that is being encoded. If <guilabel>Use DCI
-name</guilabel> is not ticked, the name that you specify will be used
-as-is for the name of the DCP. If <guilabel>Use DCI name</guilabel>
-is ticked, the name that you enter will be used as part of a
-DCI-compliant name.
+Enter a name and click <guilabel>OK</guilabel>. Now we need to add
+the content. As before, click <guilabel>Add file(s)...</guilabel>.
+For our example, we will add a single image file, as shown in <xref
+linkend="fig-still-select-content-file"/>.
</para>
+<figure id="fig-still-select-content-file">
+ <title>Selecting a still content file</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="screenshots/still-select-content-file&scs;"/>
+ </imageobject>
+ </mediaobject>
+</figure>
+
<para>
-Underneath the name field is a preview of the name that the DCP will
-get. To use a DCI-compliant name, tick the <guilabel>Use DCI
-name</guilabel> checkbox. The DCI name will be composed using details
-of your content's soundtrack, the current date and other things that
-can be specified in the DCI name details dialogue box, which you can
-open by clicking on the <guilabel>Details</guilabel> button.
+As with video DCPs, most of the default settings will be fine for a
+simple test. The one thing that you might wish to change is the
+length of the still. Select the <guilabel>Timing</guilabel> tab and
+you will see a <guilabel>Length</guilabel> setting, as shown in <xref
+linkend="fig-timing-tab"/>.
+</para>
+
+<figure id="fig-timing-tab">
+ <title>The timing tab</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="screenshots/timing-tab&scs;"/>
+ </imageobject>
+ </mediaobject>
+</figure>
+
+<para>
+This length is a ‘timecode’: it consists of four numbers.
+The first is hours, the second minutes, the third seconds, and the
+fourth frames. Enter the duration that you want and then click <guilabel>Set</guilabel>.
</para>
<para>
-If the DCP name is long, it may not all be visible. You can see the
-full name by hovering the mouse pointer over the partial name.
+Finally, as with video, you can choose <guilabel>Make DCP</guilabel>
+from the <guilabel>Jobs</guilabel> menu to create your DCP. This will
+be much quicker than creating a video DCP, as DCP-o-matic only needs
+to encode a single frame which it can then repeat.
</para>
+</chapter>
+
+<chapter xmlns="http://docbook.org/ns/docbook" version="5.0" xml:lang="en">
+<title>Content settings</title>
+
<para>
-The <guilabel>Trust content's header</guilabel> button starts off
-checked, and this means that DCP-o-matic will use the content's header
-information to determine its length. If, for some reason, this header
-length is wrong, uncheck the <guilabel>Trust content's
-header</guilabel> button and DCP-o-matic will run through the content
-to find its exact length. This may take a while for large pieces of content.
+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.
</para>
+<section>
+<title>Adding and removing content</title>
+
<para>
-Next up is the content type. This can be
-‘feature’, ‘trailer’ or whatever; select the
-required type from the drop-down list.
+At the top of the <guilabel>Content</guilabel> tab is a list of the
+content that will go into our DCP. There can be as many pieces of
+content as you like, and they can be of the following types:
+</para>
+
+<itemizedlist>
+<listitem>Movie — a file containing some video, probably some
+audio and possibly some subtitles; for example, a MOV, MP4 or VOB.
+</listitem>
+
+<listitem>Sound — a file containing one or more channels of
+audio; for example, a WAV or AIFF file.
+</listitem>
+
+<listitem>Still image — a file containing a single still image; for
+example, a JPEG, PNG or TIFF file.
+</listitem>
+
+<listitem>Moving image — a directory containing many still
+images which should be treated as the frames of a video.
+</listitem>
+</itemizedlist>
+
+<para>
+To add one or more movie, sound or still-image files, select
+<guilabel>Add file(s)...</guilabel> and choose them from the selector.
+To add a directory of images, choose <guilabel>Add
+directory...</guilabel> and do similar.
+</para>
+
+<para>
+You can remove a piece of content by clicking on its name and then
+clicking the <guilabel>Remove</guilabel> button.
+</para>
+
+</section>
+<section>
+<title>Content Properties</title>
+
+<para>
+Below the content list are the controls to set content properties. To
+adjust the properties for a piece of content, click its name in the
+content list. The content property controls will then become active
+for that piece of content.
</para>
<para>
-The <guilabel>trim frames</guilabel> settings allow you to trim frames
-from the beginning and end of the content; any trimmed frames will not
-be included in the DCP.
+The content properties are split up into four sections:
+<guilabel>Video</guilabel>, <guilabel>Audio</guilabel>,
+<guilabel>Subtitles</guilabel> and <guilabel>Timing</guilabel>. Not
+all of these sections will be active for all content types. The controls
+in each section are described below.
</para>
</section>
<section>
-<title>Video tab</title>
+<title>Video</title>
<para>
-This tab contains settings related to the picture in your DCP, as shown in <xref linkend="fig-video-tab"/>.
+The <guilabel>Video</guilabel> tab controls properties of the image, as shown in <xref linkend="fig-video-tab"/>.
</para>
<figure id="fig-video-tab">
<title>Video settings tab</title>
<mediaobject>
<imageobject>
- <imagedata fileref="screenshots/video-tab&scs;"/>
+ <imagedata fileref="screenshots/video-tab&scs;"/>
</imageobject>
</mediaobject>
</figure>
+<section>
+<title>Image type</title>
+
<para>
-The first option on this tab is the format. This will govern the
-shape that DCP-o-matic will make your image into. Select the aspect
-ratio that your content should be presented in. The ‘4:3 within
-Flat’ and ‘16:9 within Flat’ settings will put the
-image at the specified ratio within a Flat (1.85:1) frame, so that you
-can project the DCP using your projector's Flat preset.
+The first option on this tab is the ‘type’ of the video.
+This specifies how DCP-o-matic should interpret the video's image.
+<guilabel>2D</guilabel> is the default; this just takes the video
+image as a standard 2D frame. The other option <guilabel>3D
+left/right</guilabel> tells DCP-o-matic to interpret the frame as a
+left-right pair, as shown in <xref linkend="fig-3d-left-right"/>.
</para>
+<figure id="fig-3d-left-right">
+ <title>3D left/right image type</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata scale="100" fileref="diagrams/3d-left-right&dia;"/>
+ </imageobject>
+ </mediaobject>
+</figure>
+
<para>
-The remaining options can often be left alone, but may sometimes be
-useful. The ‘crop’ settings can be used to crop your
-content, which can be used to remove black borders from round the
-edges of DVD images, for example. The specified number of pixels will
-be trimmed from each edge, and the content image in the right of the
-window will be updated to show the effect of the crop.
+This option can be used to generate a 3D DCP. Other means of creating
+3D will be added in the future.
</para>
+</section>
+
+
+<!-- ============================================================== -->
+<section>
+<title>Filtering</title>
+
<para>
The ‘filters’ settings allow you to apply various video
filters to the image. These may be useful to try to improve
-poor-quality sources like DVDs. We will discuss filtering later in the manual.
-<!-- XXX: link -->
+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 is much smaller and of lower resolution than a projected image!
+</para>
+</section>
+
+
+<!-- ============================================================== -->
+<section>
+<title>Other settings</title>
+
+<para>
+The ‘crop’ settings can be used to crop your content,
+which can be used to remove black borders from round the edges of DVD
+images, for example. The specified number of pixels will be trimmed
+from each edge, and the content image in the right of the window will
+be updated to show the effect of the crop.
</para>
<para>
-The ‘scaler’ is the method that will be used to scale up
-your content to the required size for the DCP, if required. We will
-discuss the options in more detail later; Bicubic is a fine choice in
-most situations.
-<!-- XXX: link -->
+The <guilabel>Scale to</guilabel> option governs the shape that
+DCP-o-matic will scale the content's image into. Select the aspect
+ratio that your content should be presented in.
</para>
+</section>
+<section>
+<title>Video description</title>
+
<para>
-The ‘colour look-up table’ specifies the colour space that
-your input content will be expected to be in. If in doubt, leave it
-set to ‘sRGB’.
+At the bottom of the video tab is a short description of what will
+happen to your video with the current settings. In the example of
+<xref linkend="fig-video-tab"/>, DCP-o-matic is telling you that the
+video file is 1920x1080 pixels (which is a ratio of 1.78:1). Since
+the controls specify ‘Flat’ for the ratio, DCP-o-matic
+scales the content image to 1998x1080, which is the DCI flat
+resolution at 2K.
</para>
<para>
-Finally, the ‘JPEG2000 bandwidth’ setting changes how big the final
-image files used within the DCP will be. Larger numbers will give
-better quality, but correspondingly larger DCPs. The bandwidth can be
-between 50 and 250 megabits per second (MBps).
+This description also gives the frame rate of the content and what
+will happen to it when it is played at the DCP's frame rate.
+<!-- XXX: link to more detailed discussion of this -->
</para>
</section>
+</section>
+
<section>
-<title>Audio tab</title>
+<title>Audio</title>
<para>
-This tab contains settings related to the sound in your DCP, as shown in <xref linkend="fig-audio-tab"/>.
+The <guilabel>Audio</guilabel> tab controls properties of the image, as shown in <xref linkend="fig-audio-tab"/>.
</para>
<figure id="fig-audio-tab">
<title>Audio settings tab</title>
<mediaobject>
<imageobject>
- <imagedata fileref="screenshots/audio-tab&scs;"/>
+ <imagedata fileref="screenshots/audio-tab&scs;"/>
+ </imageobject>
+ </mediaobject>
+</figure>
+
+<section>
+<title>Show audio</title>
+
+<para>
+The <guilabel>Show Audio</guilabel> button will instruct DCP-o-matic
+to examine the audio in your content and plot a graph of its level
+over time. This can be useful for getting a rough idea of how loud
+the sound will be in the cinema auditorium. A typical plot is shown
+in <xref linkend="fig-audio-plot"/>
+</para>
+
+<figure id="fig-audio-plot">
+ <title>Audio plot</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="screenshots/audio-plot&scs;"/>
+ </imageobject>
+ </mediaobject>
+</figure>
+
+<para>
+The plot gives the audio level (vertical axis, in dB) with time
+(horizontal axis). 0dB represents full scale, so if there is anything
+near this you are in danger of clipping the projector's audio outputs.
+</para>
+
+<para>
+There are two plot types: the peak level and the RMS, which can be
+shown or hidden using the check-boxes on the right hand side of the
+window.
+</para>
+
+<para>
+The channel check-boxes will show or hide the plot(s) for
+the corresponding channels in the DCP.
+</para>
+
+<para>
+The smoothing slider applies a variable degree of temporal smoothing
+to the plots, which can make them easier to read in some cases.
+</para>
+
+<para>
+Obviously the audio plot is no substitute for listening in an
+auditorium, but it can be useful to get levels in the right rough area.
+</para>
+
+</section>
+
+<section>
+<title>The audio map</title>
+
+<para>
+The section at the bottom of the audio tab is the ‘audio
+map’. This governs how sound from the content will be arranged
+in the DCP.
+</para>
+
+<para>
+Down the left-hand side of the map is the list of audio channels in
+the currently-selected piece of content. Along the top is each
+channel in the DCP. A checked box means that the corresponding
+content channel will be copied into the corresponding DCP channel.
+</para>
+
+<para>
+Consider, for example, the case in <xref linkend="fig-audio-map-eg1"/>.
+</para>
+
+<figure id="fig-audio-map-eg1">
+ <title>Audio map example 1</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="screenshots/audio-map-eg1&scs;"/>
+ </imageobject>
+ </mediaobject>
+</figure>
+
+<para>
+Here, we have two channels in the source which are mapped to left and
+right, respectively, in the DCP. If we modify that as in <xref
+linkend="fig-audio-map-eg2"/>
+</para>
+
+<figure id="fig-audio-map-eg2">
+ <title>Audio map example 2</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="screenshots/audio-map-eg2&scs;"/>
+ </imageobject>
+ </mediaobject>
+</figure>
+
+<para>
+we now have the content's streams mapped to left and right and also
+mixed together and placed in the DCP's centre channel.
+</para>
+
+<figure id="fig-audio-map-eg3">
+ <title>Audio map example 3</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="screenshots/audio-map-eg3&scs;"/>
</imageobject>
</mediaobject>
</figure>
+<para>
+As a final example, the map in <xref linkend="fig-audio-map-eg3"/>
+shows the mapping of a 5.1 source into a 5.1 DCP.
+</para>
+
+</section>
+
+<section>
+<title>Other controls</title>
<para>
‘Audio Gain’ is used to alter the volume of the
soundtrack. The specified gain (in dB) will be applied to each sound
-channel before it is written to the DCP.
+channel of your content before it is written to the DCP.
</para>
<para>
</para>
<para>
-Current versions of DCP-o-matic only know about the Dolby CP750. If
-you use a different sound processor, and know the gain curve of its
-volume control, <ulink url="mailto:cth@carlh.net">get in
+Current versions of DCP-o-matic only know about the Dolby CP650 and
+CP750. If you use a different sound processor, and know the gain
+curve of its volume control, <ulink url="mailto:carl@dcpomatic.com">get in
touch</ulink>.
</para>
<para>
-‘Audio Delay’ is used to adjust the synchronisation
+<guilabel>Audio Delay</guilabel> is used to adjust the synchronisation
between audio and video. A positive delay will move the audio later
with respect to the video, and a negative delay will move it earlier.
</para>
<para>
-By default the <guilabel>Use content‘s audio</guilabel> button
-will be selected. This means that the DCP will use one of the
-soundtracks from your content file; you can select the soundtrack that
-you wish to use from the drop-down box.
+The <guilabel>Audio Stream</guilabel> option allows you to select the
+audio stream to use, if the content contains more than one. There
+might be different soundtrack languages, for example.
</para>
-<para>
-Note that if your content's audio is mono, DCP-o-matic will place it
-in the centre channel in the DCP.
-</para>
+</section>
+</section>
-<para>
-Alternatively, you can supply different sound files by clicking the
-<guilabel>Use external audio</guilabel> button and choosing a WAV file
-for any channels that you want to appear in the DCP. These files can
-be any bit depth and sampling rate, and will be re-sampled and
-bit-depth converted if required.
-</para>
-</section>
<section>
-<title>Subtitles tab</title>
+<title>Subtitles</title>
<para>
-This tab contains settings related to subtitles in your DCP, as shown in <xref linkend="fig-subtitles-tab"/>.
+The subtitles tab contains settings related to subtitles in your
+content, as shown in <xref linkend="fig-subtitles-tab"/>.
</para>
<figure id="fig-subtitles-tab">
<title>Subtitle settings tab</title>
<mediaobject>
<imageobject>
- <imagedata fileref="screenshots/subtitles-tab&scs;"/>
+ <imagedata fileref="screenshots/subtitles-tab&scs;"/>
</imageobject>
</mediaobject>
</figure>
included in the image and not overlaid by the projector). Note that
DVD and Blu-Ray subtitles are stored as bitmaps, so it is not possible
(automatically) to use non-burnt-in subtitles with these sources.
-Select the <guilabel>With Subtitles</guilabel> checkbox to enable
+Select the <guilabel>With Subtitles</guilabel> check-box to enable
subtitles. The <guilabel>offset</guilabel> control moves the
subtitles up and down the image, and the <guilabel>scale</guilabel>
control changes their size.
</para>
<para>
-Future versions of DCP-o-matic will hopefully include the option to
+All being well, future versions of DCP-o-matic will include the option to
use text subtitles (as is the norm with most professionally-mastered
DCPs).
</para>
-</section>
</section>
-<section>
-<title>Making the DCP</title>
+<!-- XXX: timing tab -->
+
+</chapter>
+
+<chapter xml:id="ch-dcp" xmlns="http://docbook.org/ns/docbook" version="5.0" xml:lang="en">
+<title>DCP settings</title>
<para>
-Now that we have set everything up, choose <guilabel>Make
-DCP</guilabel> from the <guilabel>Jobs</guilabel> menu. DCP-o-matic
-will encode your DCP. This may take some time (many hours in some
-cases). While the job is in progress, DCP-o-matic will update you on
-how it is getting on with the progress bar in the bottom of its window, as shown in <xref linkend="fig-making-dcp"/>.
+This chapter describes the settings that apply to the whole DCP. The
+controls for these settings are in the <guilabel>DCP</guilabel> tab of
+the main window, as shown in <xref linkend="fig-dcp-tab"/>.
</para>
-<figure id="fig-making-dcp">
- <title>Making the DCP</title>
+<figure id="fig-dcp-tab">
+ <title>DCP settings tab</title>
<mediaobject>
<imageobject>
- <imagedata fileref="screenshots/making-dcp&scs;"/>
+ <imagedata fileref="screenshots/dcp-tab&scs;"/>
</imageobject>
</mediaobject>
</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
-linkend="ch-files"/> for details about the files that DVD-o-matic creates.
+The first thing here is the name. This is generally set to the title
+of the film that is being encoded. If <guilabel>Use DCI
+name</guilabel> is not ticked, the name that you specify will be used
+as-is for the name of the DCP. If <guilabel>Use DCI name</guilabel>
+is ticked, the name that you enter will be used as part of a
+DCI-compliant name.
</para>
<para>
-Alternatively, if you have a projector or TMS that is accessible via
-SCP across your network, you can upload the content directly from
-DCP-o-matic. See <xref linkend="sec-tms-upload"/>.
+Underneath the name field is a preview of the name that the DCP will
+get. To use a DCI-compliant name, tick the <guilabel>Use DCI
+name</guilabel> check-box. The DCI name will be composed using details
+of your content's soundtrack, the current date and other things that
+can be specified in the DCI name details dialogue box, which you can
+open by clicking on the <guilabel>Details</guilabel> button.
+</para>
+
+<para>
+If the DCP name is long, it may not all be visible. You can see the
+full name by hovering the mouse pointer over the partial name.
+</para>
+
+<para>
+The <guilabel>Container</guilabel> option sets the ratio of the image
+in the DCP. If this ratio is different to the ratio used for any
+content, DCP-o-matic will pad the content with black. In simple cases
+this should be set to the same ratio as that for the the primary piece
+of video content. Alternatively, you might want to pillarbox a small
+format into a Flat container: in this case, select the small format
+for the content's ratio and ‘Flat’ for the DCP.
+</para>
+
+<para>
+Next up is the content type. This can be
+‘feature’, ‘trailer’ or whatever; select the
+required type from the drop-down list.
+</para>
+
+<para>
+The <guilabel>Frame Rate</guilabel> control sets the frame rate of
+your DCP. This can be a little tricky to get right. Ideally, you
+want it to be the same as the video content that you are using. If it
+is not the same, DCP-o-matic must resort to some tricks to alter your
+content to fit the specified frame rate. Frame rates are discussed in
+more detail in <xref linkend="ch-frame-rates"/>.
+</para>
+
+<para>
+The <guilabel>Encrypted</guilabel> check-box will set whether the DCP
+should be encrypted or not. If this is ticked, the DCP will require a
+KDM to play back. Encryption is discussed in <xref
+linkend="ch-encryption"/>.
+</para>
+
+<para>
+The <guilabel>Use best</guilabel> button sets the DCP video frame rate
+to what DCP-o-matic thinks is the best given the content that you have
+added.
+</para>
+
+<para>
+The <guilabel>Audio Channels</guilabel> control sets the number of
+audio channels that the DCP will have. If the DCP has any channels
+for which there is no content audio they will be replaced by silence.
+</para>
+
+<para>
+The <guilabel>3D</guilabel> button will set your DCP to 3D mode if it
+is checked. A 3D DCP will then be created, and any 2D content will be
+made 3D compatible by repeating the same frame for both left and right
+eyes. A 3D DCP can be played back on many 3D systems (e.g. Dolby 3D,
+Real-D etc.) but not on a 2D system.
+</para>
+
+<para>
+The <guilabel>Resolution</guilabel> tab allows you to choose the
+resolution for your DCP. Use 2K unless you have content that is of
+high enough resolution to be worth presenting in 4K.
+</para>
+
+<para>
+The <guilabel>JPEG2000 bandwidth</guilabel>; setting changes how big the final
+image files used within the DCP will be. Larger numbers will give
+better quality, but correspondingly larger DCPs. The bandwidth can be
+between 50 and 250 megabits per second (MBps).
+</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
+more modern of the two).
+</para>
+
+<para>
+Finally, the <guilabel>scaler</guilabel> is the method that will be used to scale up
+your content to the required size for the DCP, if required. Bicubic is a fine choice in
+most situations.
</para>
-</section>
</chapter>
+<chapter xml:id="ch-encryption" xmlns="http://docbook.org/ns/docbook" version="5.0" xml:lang="en">
+<title>Encryption</title>
-<chapter xmlns="http://docbook.org/ns/docbook" version="5.0" xml:lang="en">
-<title>Creating a still-image DCP</title>
+<para>
+It is not required that DCPs be encrypted, but they can be. This
+chapter discusses the basic principles of DCP encryption, and how
+DCP-o-matic can create encrypted DCPs and KDMs for them.
+</para>
+
+<section>
+<title>Basics</title>
<para>
-DCP-o-matic can also be used to create DCPs of a still image, perhaps
-for an advertisement or an on-screen announcement. This chapter shows you
-how to do it.
+DCPs can be encrypted. This means that the picture and sound data are
+encoded in such a way that only cinemas ‘approved’ by the
+DCP's creators can read them. In particular, this means copies of the
+DCP can be distributed by insecure means: if an ne'er-do-well called
+Mallory obtains a hard drive containing an encrypted DCP, there is no
+way that he can play it. Only those cinemas who receive a key
+delivery message (KDM) can play the DCP.
</para>
+<section>
+<title>How it works (in a nutshell)</title>
+
<para>
-As with video DCPs, the first step is to create a new
-‘Film’; select <guilabel>New</guilabel> from the
-<guilabel>File</guilabel> menu and the new film dialogue will open as
-shown in <xref linkend="fig-still-new-film"/>.
+This section attempts to summarise how DCP encryption works. You can
+skip it if you like. You may need some knowledge of encryption
+methods to understand it.
</para>
-<figure id="fig-still-new-film">
- <title>Dialogue box for creating a new film</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="screenshots/still-new-film&scs;"/>
- </imageobject>
- </mediaobject>
-</figure>
+<para>
+We suppose that we are trying to distribute a DCP to
+Alice's cinema, without a troublemaker called Mallory being able to
+watch it himself.
+</para>
<para>
-Enter a name and click <guilabel>OK</guilabel>. Then we set up the
-content; click the content selector as before, and this time we will
-choose an image file, as shown in <xref
-linkend="fig-still-select-content-file"/>.
+There are two main families of encryption techniques. The first,
+symmetric-key encryption, allows us to encode some data using some
+numeric key. After encoding, no-one can decode the data unless they
+know the key.
</para>
-<figure id="fig-still-select-content-file">
- <title>Selecting a still content file</title>
+<para>
+The first step in a DCP encryption is to encode its data with some key
+using symmetric-key encryption. The encrypted DCP can then be sent
+anywhere, safe in the knowledge that even if Mallory got hold of a
+copy, he could not decrypt it.
+</para>
+
+<para>
+Alice, however, needs to know the key so she can play the DCP in her
+cinema. A simple approach might be for us to send Alice the key.
+However, if Mallory can intercept the DCP, he might also be able to
+intercept our communication of the key to Alice. Furthermore, if Alice
+happened to know Mallory, she could just send him a copy of the key.
+</para>
+
+<para>
+The clever bit in DCP encryption requires the use of public-key
+encryption. With this technique we can encrypt a block of data using
+some ‘public’ key. That data can then only be decrypted
+using a <emphasis>different</emphasis> ‘private’ key. The
+private and public keys are related mathematically, but it is
+extremely hard (or rather, virtually impossible) to derive the private
+key from the public key.
+</para>
+
+<para>
+Public-key encryption allows us to distribute the DCP's key to Alice
+securely. The manufacturer of Alice's projector generates a public
+and private key. They hide the private key deep inside the bowels of
+the projector (inside an integrated circuit) where no-one can read it.
+They then make the public key available to anyone who is interested.
+</para>
+
+<para>
+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
+symmetric key which can decrypt the DCP.
+</para>
+
+<para>
+If is fine if Mallory intercepts our email to Alice, since the only
+key which can decrypt the message is the private key buried inside
+Alice's projector. The projector manufacturer is very careful that
+no-one ever finds out what this key is. Our DCP is secure: only Alice
+can play it back, since only her projector knows the key (even Alice
+does not).
+</para>
+
+</section>
+</section>
+
+<section>
+<title>Encryption using DCP-o-matic</title>
+
+<para>
+There are two steps to distributing an encrypted DCP. First, the
+DCP's data must be encrypted, and secondly KDMs must be generated for
+those cinemas that are allowed to play the DCP.
+</para>
+
+<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, so that should be kept
+secure.
+</para>
+
+<para>
+A DCP that is generated with the <guilabel>Encrypted</guilabel> box
+ticked will not play on any projector as-is (it will be marked as
+‘locked’, or whatever the projector manufacturer's term
+is).
+</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"/>.
+</para>
+
+<figure id="fig-kdm">
+ <title>KDM dialog</title>
<mediaobject>
<imageobject>
- <imagedata fileref="screenshots/still-select-content-file&scs;"/>
+ <imagedata fileref="screenshots/kdm&scs;"/>
</imageobject>
</mediaobject>
</figure>
<para>
-Setting up for a still image DCP is somewhat simpler than for a video;
-the tabs are all the same, but many options are removed and a few are added.
+In order to generate KDMs for a particular projector, you need to know
+its <emphasis>certificate</emphasis>. These are usually made
+available by the projector manufacturers as text files with a
+<code>.pem</code> extension.
</para>
<para>
-As with video, you can select a content type and the format (ratio)
-that your image should be presented in. It will be scaled and padded
-to fit the selected ratio, but in such a way that the pixel aspect
-ratio is preserved. In other words, the image will not be stretched,
-merely scaled; if you want to stretch your image, you will need to do
-so in a separate program before importing it into DCP-o-matic. You
-can also crop your image, if you so choose, and then set a duration
-(in seconds) that the image should appear on screen.
+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.
</para>
<para>
-Still-image DCPs can include sound; this can be added from the
-<guilabel>Audio</guilabel> tab. If your specified duration is shorter
-than the audio, the audio will be cut off at the duration; if it is
-longer, silence will be added after your audio.
+To add a cinema, click <guilabel>Add Cinema...</guilabel>. This opens
+a dialogue box into which you can enter the cinema's name, and
+optionally an email address. This email address can be used to
+get DCP-o-matic to deliver KDMs via email, but it is optional.
</para>
<para>
-Finally, as with video, you can choose <guilabel>Make DCP</guilabel>
-from the <guilabel>Jobs</guilabel> menu to create your DCP. This will
-be much quicker than creating a video DCP, as DCP-o-matic only needs
-to encode a single frame which it can then repeat.
+Once you have added a cinema, select it by clicking on its name, then
+click <guilabel>Add Screen...</guilabel>. The resulting dialogue
+allows you to enter a name for the screen and load in its certificate
+from a file. The certificate should be in SHA256 PEM format.
</para>
+<para>
+Once you have set up all the screens that you need KDMs for,
+DCP-o-matic can generate KDMs for the last DCP that you generated for
+the currently-loaded film. Select the cinemas and/or screens that you
+want KDMs for and fill in the start and end dates and times.
+</para>
+
+<para>
+Finally, choose what you want to do with the KDMs. They can be
+written to disk, to a location that you can specify by clicking
+<guilabel>Browse</guilabel>. Alternatively, if you choose
+<guilabel>Send by email</guilabel> the KDMs will be zipped up and
+emailed to the appropriate cinema email addresses. Click OK to
+generate the KDMs.
+</para>
+
+</section>
+
</chapter>
<para>
The preferences dialogue is opened by choosing
<guilabel>Preferences...</guilabel> from the <guilabel>Edit</guilabel>
-menu. The dialogue is shown in <xref linkend="fig-prefs"/>.
+menu. The dialogue is split into five tabs.
+</para>
+
+<section>
+<title>Miscellaneous</title>
+
+<para>
+The miscellaneous tab is shown in <xref linkend="fig-prefs-misc"/>.
</para>
-<figure id="fig-prefs">
- <title>Preferences</title>
+<figure id="fig-prefs-misc">
+ <title>Miscellaneous preferences</title>
<mediaobject>
<imageobject>
- <imagedata fileref="screenshots/prefs&scs;"/>
+ <imagedata fileref="screenshots/prefs-misc&scs;"/>
</imageobject>
</mediaobject>
</figure>
<section>
-<title>TMS setup</title>
+<title>Language</title>
<para>
-The first part of the dialogue gives some options for specifying
-details about your TMS. If you do this, and your TMS accepts SSH
-connections, you can upload DCPs directly from DCP-o-matic to the TMS.
-This is discussed in <xref linkend="sec-tms-upload"/>.
+If you tick the <guilabel>Set Language</guilabel> checkbox and choose
+a language from the list, that language will be used for DCP-o-matic.
+You will need to restart DCP-o-matic to see the new language.
</para>
<para>
-<guilabel>TMS IP address</guilabel> should be set to the IP address of
-your TMS, <guilabel>TMS target path</guilabel> to the place that DCPs
-should be uploaded to (which will be relative to the home directory of
-the SSH user). Finally, the user name and password are the
-credentials required to log into the TMS via SSH.
+The translations for DCP-o-matic have been contributed by helpful
+users. If your language is not on the last, head to <ulink
+url="http://dcpomatic.com/i18n.php">the DCP-o-matic website</ulink> to
+read about how to contribute a translation.
</para>
</section>
<para>
When DCP-o-matic is encoding DCPs it can use multiple parallel threads
to speed things up. Set this value to the number of threads
-DCP-o-matic should use. This would typically be set to the number of
-processors (or processor cores) in your machine.
+DCP-o-matic should use. This should normally be the number of
+processors (or processor cores) in your machine. DCP-o-matic will try
+to set this up correctly when you run it for the first time.
</para>
</section>
<section>
-<title>Default directory for new films</title>
+<title>KDM emails</title>
<para>
-This is the directory (folder) which DCP-o-matic will suggest initially as a place to put new films.
+DCP-o-matic can send KDMs (see <xref linkend="ch-encryption"/>) to
+cinemas (or anywhere else) via email. To make this work, enter a
+suitable outgoing mail (SMTP) server and ‘from’ address
+for these emails.
</para>
</section>
<section>
-<title>A/B options</title>
+<title>Defaults</title>
<para>
-These options are for DCP-o-matic's special mode of making A/B
-comparison DCPs for checking the performance of video filters. Their
-use is described in <xref linkend="sec-ab"/>.
+The next few options allow you to set up default values for several
+properties of new films that you create.
</para>
+</section>
</section>
<section>
-<title>Encoding servers</title>
+<title>Colour conversions</title>
<para>
-If you have spare machines sitting around on your network not doing
-much, they can be pressed into service to speed up DCP encodes. This
-is done by running a small server program on the machine, which will
-encode video sent to it by the ‘master’ DCP-o-matic. This
-option is described in more detail in <xref linkend="sec-servers"/>.
-Use these preferences to specify the encoding servers that should be
-used.
+The colour conversions tab is shown in <xref linkend="fig-prefs-colour-conversions"/>.
+</para>
+
+<figure id="fig-prefs-colour-conversions">
+ <title>Colour conversions preferences</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="screenshots/prefs-colour-conversions&scs;"/>
+ </imageobject>
+ </mediaobject>
+</figure>
+
+<para>
+As part of the encoding process, DCP-o-matic has to convert the colour
+space of the source files that you use into XYZ, the colour space used
+by the DCI standard.
+</para>
+
+<para>
+Colour conversion is discussed in more detail in a separate document
+<ulink url="http://dcpomatic.com/manual/colour.pdf">colour.pdf</a>.
+</para>
+
+<para>
+These preferences control a list of presets which are suitable for
+converting from common input colour spaces to XYZ.
</para>
</section>
+<section>
+<title>Metadata</title>
+
+<para>
+The metadata tab is shown in <xref linkend="fig-prefs-metadata"/>.
+</para>
+
+<figure id="fig-prefs-metadata">
+ <title>Metadata preferences</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="screenshots/prefs-metadata&scs;"/>
+ </imageobject>
+ </mediaobject>
+</figure>
+
+<para>
+This allows you to set up a couple of identifiers that are written
+into the DCP. The default values should cause no problems.
+</para>
+
</section>
-</chapter>
-<chapter xmlns="http://docbook.org/ns/docbook" version="5.0" xml:lang="en">
-<title>Advanced topics</title>
+<section xml:id="sec-prefs-tms">
+<title>TMS</title>
-<para>This chapter describes some parts of DCP-o-matic that are
-probably not essential, but which you might find useful in some
-circumstances.
+<para>
+The TMS tab (shown in <xref linkend="fig-prefs-tms"/>) gives some
+options for specifying details about your theatre management system
+(TMS). If you do this, and your TMS accepts SSH connections, you can
+upload DCPs directly from DCP-o-matic to the TMS using the
+<guilabel>Send DCP to TMS</guilabel> option in the
+<guilabel>Jobs</guilabel> menu.
</para>
+<figure id="fig-prefs-tms">
+ <title>TMS preferences</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="screenshots/prefs-tms&scs;"/>
+ </imageobject>
+ </mediaobject>
+</figure>
+
+<para>
+<guilabel>TMS IP address</guilabel> should be set to the IP address of
+your TMS, <guilabel>TMS target path</guilabel> to the place that DCPs
+should be uploaded to (which will be relative to the home directory of
+the SSH user). Finally, the user name and password are the
+credentials required to log into the TMS via SSH.
+</para>
+</section>
+
<section>
-<title>Filtering</title>
+<title>KDM email</title>
<para>
-DCP-o-matic offers a variety of filters that can be applied to your
-video content. 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"/>.
+The KDM email is shown in <xref linkend="fig-prefs-kdm-email"/>.
</para>
-<figure id="fig-filters">
- <title>Filters selector</title>
+<figure id="fig-prefs-kdm-email">
+ <title>KDM email preferences</title>
<mediaobject>
<imageobject>
- <imagedata fileref="screenshots/filters&scs;"/>
+ <imagedata fileref="screenshots/prefs-kdm-email&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 is much smaller and of lower resolution than a projected image!
+This is a template for the email that is used to send KDMs out to
+cinemas. You can change it to say whatever you like. The
+‘magic’ string <code>$CPL_NAME</code> will be replaced by
+DCP's title.
</para>
+</section>
</section>
+</chapter>
+
+<chapter xmlns="http://docbook.org/ns/docbook" version="5.0" xml:lang="en" xml:id="ch-frame-rates">
+<title>Frame rates</title>
+
+<para>
+In an ideal world, a DCP would be created using content at the same
+video frame and audio sampling rates as the DCP. This is not,
+however, always possible.
+</para>
+
<section>
-<title>Scaling</title>
+<title>DCP rate limitations</title>
<para>
-If your source material is not of the DCI-specified size, or if it
-uses non-square pixels, DCP-o-matic will need to scale it. The
-algorithm used to scale is set up by the <guilabel>Scaler</guilabel>
-entry in the film setup area. We think ‘Bicubic’ is the
-best all-round option, but tests are ongoing.
+There are some limitations to video and audio rates in DCPs. This is
+complicated by the fact that not all projectors will play DCPs at the
+same rates. It is possible to create a DCP which one projector will
+play fine, but another (of a different type) will refuse to play, or
+even refuse to ingest.
+</para>
+
+<section>
+<title>Guaranteed rates</title>
+
+<para>
+The only rates that are (pretty much) guaranteed to work on all DCI
+projectors is 24 frames per second (fps) for video and 48kHz or 96kHz
+for audio. If you are sending your DCPs to unknown places it wise to
+consider using these rates if at all possible.
</para>
</section>
-<section xml:id="sec-tms-upload">
-<title>TMS upload</title>
+<section>
+<title>Other often-supported rates</title>
+<para>
+Many projectors now in the wild support additional video frame rates:
+25, 30 and 48 fps.
+</para>
+</section>
+
+<section>
+<title>Adapting content to fit the DCP rate</title>
<para>
-If you have configured details of a TMS in the preferences dialogue
-(<xref linkend="ch-preferences"/>) you can upload a completed DCP
-straight to your TMS buy choosing <guilabel>Send DCP to TMS</guilabel>
-from the <guilabel>Jobs</guilabel> menu.
+DCP-o-matic has a few tricks to allow you to use content that is not
+in one of the ‘approved’ rates.
</para>
-</section>
+<para>
+Audio is easy: DCP-o-matic can resample to 48kHz from any source rate
+with minimal loss in quality.
+</para>
+<para>
+Video rate conversion is harder. DCP-o-matic's basic strategy to deal
+with a non-supported content rate is to run it at the wrong speed, and
+to adjust the audio to keep it in sync.
+</para>
-<section xml:id="sec-ab">
-<title>A/B comparison</title>
+<para>Let us consider the example of a 25fps source for which you want
+to create a 24fps DCP. DCP-o-matic will put the frames from the
+source directly into the DCP without modification, but will tell the
+projector to play them back at 24fps. This means that the DCP's video
+will run slightly slower than the original.
+</para>
<para>
-When evaluating the effects of different filters or scalers on the
-image quality, A/B mode might be useful. In this mode, DCP-o-matic
-will generate a DCP where the left half of the image uses some
-‘reference’ filtering and scaling, and the right half of
-the image uses a different set of filters and a different scaler.
-This DCP can then be played back on a projector and the image quality
-evaluated.
+If DCP-o-matic did nothing else, the result of this would be that the
+audio would be running at the original speed with the video running
+slowly. Hence the audio would drift slowly out of sync. To avoid
+this, DCP-o-matic also resamples the audio such that the projector
+will play it too fast by the same amount. Hence it will sound
+slightly different but will remain in sync with the video.
</para>
<para>
-To enable A/B mode, click the A/B checkbox in the setup area of the
-DCP-o-matic window. When you generate your DCP, the left half of the
-screen will use the filters and scaler specified in the <xref
-linkend="ch-preferences">preferences</xref> dialogue, and the right
-half will use the filters and scaler specified in the film setup.
+For very low or high frame rates, DCP-o-matic can also skip or duplicate frames.
</para>
+</section>
</section>
-<section xml:id="sec-servers">
+<section>
+<title>Setting up</title>
+
+<para>
+The <guilabel>Frame Rate</guilabel> control in the
+<guilabel>DCP</guilabel> tab sets the video frame rate that the DCP
+will use. Clicking <guilabel>Use best</guilabel> sets the rate to
+what DVD-o-matic thinks is the best for your content. With this
+button, DCP-o-matic assumes that the whole range of frame rates (24,
+25, 30 and 48fps) are allowable.
+</para>
+
+<para>
+After this, the <guilabel>Video</guilabel> tab for each piece of
+content will give a summary of what DCP-o-matic is doing with that
+content.
+</para>
+
+</section>
+
+</chapter>
+
+
+<chapter xmlns="http://docbook.org/ns/docbook" version="5.0" xml:lang="en" xml:id="ch-servers">
<title>Encoding servers</title>
<para>
offload some of the time-consuming JPEG2000 encoding to any number of
other machines on a network. To do this, one ‘master’
machine runs DCP-o-matic, and the ‘server’ machines run
-a small program called ‘servomatic’.
+a small program called <code>dcpomatic_server</code>.
+</para>
+
+<para>
+The master and server machines do not need to be the same type, so you
+can mix Windows PCs, Macs and Linux machines as you wish.
</para>
<section>
<para>
There are two options for the encoding server;
-<code>servomatic_cli</code>, which runs on the command line, and
-<code>servomatic_gui</code>, which has a simple GUI. The command line
+<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
system tray.
</para>
<programlisting>
-servomatic_cli
+dcpomatic_server_cli
</programlisting>
<para>
</para>
<programlisting>
-servomatic_cli -t 4
+dcpomatic_server_cli -t 4
</programlisting>
<para>
server or open a window to show its status.
</para>
+<para>If you would rather not bother installing DCP-o-matic on your
+server computers, the other option is to use the live-CD
+image that you can download from the <ulink
+url="http://dcpomatic.com/">DCP-o-matic web site.</ulink></para>
+
+<para>Either burn the image to CD, or write it to a USB stick (using
+something like <ulink
+url="http://unetbootin.sourceforge.net/">unetbootin</ulink>). Boot a
+PC from the CD or USB stick and it becomes a DCP-o-matic server
+without touching your standard operating system install.
+</para>
+
</section>
<section>
<title>Setting up DCP-o-matic</title>
<para>
-Once your servers are running, you need to tell your master
-DCP-o-matic instance about them. Start DCP-o-matic and open the
-<guilabel>Preferences</guilabel> dialog from the
-<guilabel>Edit</guilabel> menu. At the bottom of this dialog is a
-section where you can add, edit and remove encoding servers. For each
-encoding server you need only specify its IP address and the number of
-threads that it is running, so that DCP-o-matic knows how many
-parallel encode jobs to send to the server.
-</para>
-
-<para>
-Once this is done, any encodes that you start will split the workload
-up between the master machine and the servers.
+DCP-o-matic periodically looks on the local network for servers. Any
+that it finds are given work to do during encodes. Selecting
+<guilabel>Encoding Servers</guilabel> from the
+<guilabel>Tools</guilabel> menu brings up a window which shows that
+servers that DCP-o-matic has found.
</para>
</section>
provide a significant speed-up compared to a 100Mb/s network.
</para>
+</section>
+
+</chapter>
+
+<chapter xml:id="ch-colour-conversions" xmlns="http://docbook.org/ns/docbook" version="5.0" xml:lang="en">
+<title>Colour conversions</title>
+
<para>
-Making changes to the server configuration in the master DCP-o-matic
-will have no effect while an encode is running; the changes will only
-be noticed when a new encode is started.
+As part of the encoding process, DCP-o-matic has to convert the colour
+space of the source files that you use into XYZ, the colour space used
+by the DCI standard.
</para>
-</section>
-</section>
+<para>
+In order to do this, source colour is converted in three steps:
+</para>
+
+<itemizedlist>
+<listitem>Input gamma correction.</listitem>
+<listitem>Multiplication by a conversion matrix.</listitem>
+<listitem>Output gamma correction.</listitem>
+</itemizedlist>
</chapter>
</chapter>
+<chapter>
+<title>Loose ends</title>
+
+<para>
+This chapter collects a few notes on bits of DCP-o-matic that do not fit elsewhere in the manual.
+</para>
+
+<section>
+<title>Resuming encodes</title>
+
+<para>
+If you cancel a DCP encoding run half-way through, or your computer
+crashes... fear not. DCP-o-matic takes care to ensure that, in most
+cases, it can resume encoding from where it left off. When you
+re-start a DCP creation, using the same settings are a previous run,
+DCP-o-matic will first check that the existing picture frames are
+correct, and then resume from where it left off. The checking of
+existing frames does take some time, but it is much faster than
+running a full re-encode.
+</para>
+
+<para>
+This resumption is achieved by writing a digest (hash) to disk for
+every image frame that is written. On resumption, the existing MXF
+file for image data is read and its contents checked against the
+hashes.
+</para>
+
+</section>
+
+</chapter>
</book>