* @brief A set of content files (video and audio), with knowledge of how they should be arranged into
* a DCP.
*
- * This class holds Content objects, and it knows how they should be arranged. At the moment
- * the ordering is implicit; video content is placed sequentially, and audio content is taken
- * from the video unless any sound-only files are present. If sound-only files exist, they
- * are played simultaneously (i.e. they can be split up into multiple files for different channels)
+ * This class holds Content objects, and it knows how they should be arranged.
*/
struct ContentSorter
bool has_subtitles () const;
typedef std::vector<boost::shared_ptr<Content> > ContentList;
-
- ContentList content () const {
- return _content;
- }
- std::string video_identifier () const;
+ ContentList content () const;
- int loop () const {
- return _loop;
- }
-
- void set_loop (int l);
+ std::string video_identifier () const;
Time length () const;
+
int best_dcp_frame_rate () const;
Time video_end () const;
void set_sequence_video (bool);
void maybe_sequence_video ();
+ void repeat (std::list<boost::shared_ptr<Content> >, int);
+
mutable boost::signals2::signal<void ()> Changed;
/** Third parameter is true if signals are currently being emitted frequently */
mutable boost::signals2::signal<void (boost::weak_ptr<Content>, int, bool)> ContentChanged;
void reconnect ();
ContentList _content;
- int _loop;
bool _sequence_video;
bool _sequencing_video;
std::list<boost::signals2::connection> _content_connections;