+ enum Type {
+ /** a normal frame with some JPEG200 data */
+ FULL,
+ /** a frame whose data already exists in the MXF,
+ and we fake-write it; i.e. we update the writer's
+ state but we use the data that is already on disk.
+ */
+ FAKE,
+ /** this is a repeat of the last frame to be written */
+ REPEAT
+ } type;
+
+ /** encoded data for FULL */
+ boost::shared_ptr<const EncodedData> encoded;
+ /** size of data for FAKE */
+ int size;
+ /** frame index */
+ int frame;
+ Eyes eyes;
+};
+
+bool operator< (QueueItem const & a, QueueItem const & b);
+bool operator== (QueueItem const & a, QueueItem const & b);
+
+class Writer : public ExceptionStore, public boost::noncopyable
+{
+public:
+ Writer (boost::shared_ptr<const Film>, boost::weak_ptr<Job>);
+ ~Writer ();
+
+ bool can_fake_write (int) const;