Tweak mainpage.txt.
authorCarl Hetherington <cth@carlh.net>
Mon, 27 Jan 2014 22:39:23 +0000 (22:39 +0000)
committerCarl Hetherington <cth@carlh.net>
Mon, 27 Jan 2014 22:39:23 +0000 (22:39 +0000)
doc/mainpage.txt

index 84c3c58517688089d622cb8d5196fdf23fae7332..1e8a8c11962d64611e6ed0016f37823875a5ab75 100644 (file)
@@ -20,71 +20,7 @@ An example of DCP creation is given in examples/make_dcp.cc.
 Reading existing DCPs
 --
 
-libdcp can be used to read existing DCPs and examine their content.  You might do
-
-@code
-#include <libdcp/dcp.h>
-using namespace std;
-
-libdcp::DCP dcp ("some-DCP-directory");
-@endcode
-
-libdcp will look at the XML files that make up the DCP and find its assets.  You can then
-do things like
-
-@code
-boost::shared_ptr<Reel> reel = dcp.reels.front ();
-boost::shared_ptr<libdcp::PictureAsset> p = reel->main_picture ();
-boost::shared_ptr<libdcp::MonoPictureAsset> mp = boost::dynamic_pointer_cast<libdcp::MonoPictureAsset> (p);
-boost::shared_ptr<libdcp::ARGBFrame> f = mp->get_frame(42)->argb_frame ();
-uint8_t* data = f->data ();
-int size = f->size ();
-@endcode
-
-This will extract the image of frame 42 from the first reel of the DCP and make its ARGB data available
-for examination.  We have to do a <code>dynamic_pointer_cast</code> from <code>libdcp::PictureAsset</code>
-to <code>libdcp::MonoPictureAsset</code>, as the picture asset may be either 2D (monoscopic) or 3D (stereoscopic).
-
-Audio data is accessed in chunks equal in length to the duration of a video frame.  To
-get the audio that accompanies frame 66, you can do
-
-@code
-boost::shared_ptr<libdcp::SoundAsset> s = reel->main_sound ();
-cout << "Sound has " << s->channels() << " channels at " << s->sampling_rate() << "Hz\n";
-boost::shared_ptr<libdcp::SoundFrame> f = s->get_frame(66);
-uint8_t* data = f->data ();
-int size = f->size ();
-@endcode
-
-The returned data are interleaved 24-bit samples, so that
-
-@code
-int left = data[0] | (data[1] << 8) | (data[2] << 16);
-data += 3;
-int right = data[0] | (data[1] << 8) | (data[2] << 16);
-data += 3;
-int centre = data[0] | (data[1] << 8) | (data[2] << 16);
-data += 3;
-int lfe = data[0] | (data[1] << 8) | (data[2] << 16);
-data += 3;
-int ls = data[0] | (data[1] << 8) | (data[2] << 16);
-data += 3;
-int rs = data[0] | (data[1] << 8) | (data[2] << 16);
-data += 3;
-@endcode
-
-would obtain the first sample from each of the 6 channels for that frame.
-
-Subtitles can be read using code like
-
-@code
-boost::shared_ptr<SubtitleAsset> s = dcp.subtitle_asset ();
-list<boost::shared_ptr<libdcp::Text> > texts = s->subtitles_at (libdcp::Time (0, 3, 2, 5));
-@endcode
-
-This returns the subtitles that should be shown at 3 minutes, 2
-seconds, 5 ticks (where 1 tick is 4ms) into the DCP.
-
+An example of DCP reading is given in example/read_dcp.cc.
 */