diff options
| author | Carl Hetherington <cth@carlh.net> | 2012-07-18 00:53:52 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2012-07-18 00:53:52 +0100 |
| commit | 4de6f6e4f4df4cc9b28b98188d36082b26e81345 (patch) | |
| tree | eb87f040aada25354fc4b526af4dcda2cf6c652d /doc | |
| parent | a4902d8ca05a33d5793fcce961086b8c898a3c98 (diff) | |
Doc tweaks.
Diffstat (limited to 'doc')
| -rw-r--r-- | doc/mainpage.txt | 77 |
1 files changed, 75 insertions, 2 deletions
diff --git a/doc/mainpage.txt b/doc/mainpage.txt index 2ebabc02..9d7139fa 100644 --- a/doc/mainpage.txt +++ b/doc/mainpage.txt @@ -7,10 +7,83 @@ libdcp is a small library to create Digital Cinema Packages (DCPs) from JPEG2000 Most of the hard work is done by a (slightly patched) version of asdcplib (http://www.cinecert.com/asdcplib/) which is included in the source distribution for libdcp. -See libdcp::DCP for an example of libdcp's use. - libdcp is distributed under the GNU GPL. +Typical use might be: +@code +#include <libdcp/dcp.h> +using namespace std; + +libdcp::DCP dcp ("My Film DCP", "My Film", libdcp::DCP::FEATURE, 24, 50000); + +vector<string> j2k_files; +j2k_files.push_back ("1.j2c"); +... +j2k_files.push_back ("50000.j2c"); + +// These images are 1998x1080 pixels (DCI Flat) +dcp.add_picture_asset (j2k_files, 1998, 1080); + +vector<string> wav_files; +wav_files.push_back ("L.wav"); +wav_files.push_back ("R.wav"); +wav_files.push_back ("C.wav"); +wav_files.push_back ("Lfe.wav"); +wav_files.push_back ("Ls.wav"); +wav_files.push_back ("Rs.wav"); +dcp.add_sound_asset (wav_files); + +dcp.write_xml (); + +@endcode + +This will create a DCP at 24 frames per second with 50000 frames, writing +data to a directory "My Film DCP", naming the DCP "My Film" and marking +as a Feature. We then add the picture and sound files (which creates +MXF files inside the DCP directory) and then write the required XML files. + +If you want to report progress for long jobs (add_picture_asset() can +take a long time, in particular, as it must do a lot of disk I/O for +large DCPs), connect to the libdcp::DCP::Progress signal and report its parameter +to the user (it will range between 0 for 0% and 1 for 100%). + +If you can generate content paths algorithmically, you may prefer to do something +like this: + +@code + +string +j2k_path (int frame) +{ + stringstream s; + s << "my_j2ks/" << frame << ".j2c" + return s.str (); +} + +string +wav_path (libdcp::Channel channel) +{ + switch (channel) { + case LEFT: + return "left.wav"; + case RIGHT: + return "right.wav"; + } + + return ""; +} + +... + +// Our images are 1998x1080 (DCI Flat) +dcp.add_picture_asset (sigc::ptr_fun (&j2k_path), 1998, 1080); +// We have two sound channels +dcp.add_sound_asset (sigc::ptr_fun (&wav_path), 2); + +... + +@endcode + */ |
