- boost::shared_ptr<Content> clone () const;
-
- /* AudioContent */
- int audio_channels () const;
- ContentAudioFrame audio_length () const;
- int audio_frame_rate () const;
- int64_t audio_channel_layout () const;
-
- std::vector<FFmpegSubtitleStream> subtitle_streams () const {
- boost::mutex::scoped_lock lm (_mutex);
- return _subtitle_streams;
- }
-
- boost::optional<FFmpegSubtitleStream> subtitle_stream () const {
- boost::mutex::scoped_lock lm (_mutex);
- return _subtitle_stream;
- }
-
- std::vector<FFmpegAudioStream> audio_streams () const {
- boost::mutex::scoped_lock lm (_mutex);
- return _audio_streams;
- }
-
- boost::optional<FFmpegAudioStream> audio_stream () const {
- boost::mutex::scoped_lock lm (_mutex);
- return _audio_stream;
- }
-
- void set_subtitle_stream (FFmpegSubtitleStream);
- void set_audio_stream (FFmpegAudioStream);
-
+ DCPTime full_length () const;
+
+ std::string identifier () const;
+
+ /* VideoContent */
+ void set_default_colour_conversion ();
+
+ /* AudioContent */
+ std::vector<AudioStreamPtr> audio_streams () const;
+
+ /* SubtitleContent */
+ bool has_text_subtitles () const;
+ bool has_image_subtitles () const;
+ double subtitle_video_frame_rate () const {
+ return video_frame_rate ();
+ }
+
+ void set_filters (std::vector<Filter const *> const &);
+
+ std::vector<boost::shared_ptr<FFmpegSubtitleStream> > subtitle_streams () const {
+ boost::mutex::scoped_lock lm (_mutex);
+ return _subtitle_streams;
+ }
+
+ boost::shared_ptr<FFmpegSubtitleStream> subtitle_stream () const {
+ boost::mutex::scoped_lock lm (_mutex);
+ return _subtitle_stream;
+ }
+
+ std::vector<boost::shared_ptr<FFmpegAudioStream> > ffmpeg_audio_streams () const {
+ boost::mutex::scoped_lock lm (_mutex);
+ return _audio_streams;
+ }
+
+ std::vector<Filter const *> filters () const {
+ boost::mutex::scoped_lock lm (_mutex);
+ return _filters;
+ }
+
+ void set_subtitle_stream (boost::shared_ptr<FFmpegSubtitleStream>);
+
+ boost::optional<ContentTime> first_video () const {
+ boost::mutex::scoped_lock lm (_mutex);
+ return _first_video;
+ }
+
+ std::list<ContentTimePeriod> subtitles_during (ContentTimePeriod, bool starting) const;
+
+protected:
+ void add_properties (std::list<std::pair<std::string, std::string> > &) const;
+