*/
class FilmState;
-class Options;
+class EncodeOptions;
class ServerDescription;
class Scaler;
class Image;
class Log;
+class Subtitle;
/** @class EncodedData
* @brief Container for J2K-encoded data.
virtual ~EncodedData () {}
void send (boost::shared_ptr<Socket> socket);
- void write (boost::shared_ptr<const Options>, int);
-
-#ifdef DEBUG_HASH
- void hash (std::string) const;
-#endif
+ void write (boost::shared_ptr<const EncodeOptions>, SourceFrame);
/** @return data */
uint8_t* data () const {
class DCPVideoFrame
{
public:
- DCPVideoFrame (boost::shared_ptr<Image>, Size, int, Scaler const *, int, float, std::string, int, int, Log *);
+ DCPVideoFrame (
+ boost::shared_ptr<const Image>, boost::shared_ptr<Subtitle>, Size,
+ int, int, float, Scaler const *, SourceFrame, float, std::string, int, int, Log *
+ );
+
virtual ~DCPVideoFrame ();
boost::shared_ptr<EncodedData> encode_locally ();
boost::shared_ptr<EncodedData> encode_remotely (ServerDescription const *);
- int frame () const {
+ SourceFrame frame () const {
return _frame;
}
private:
void create_openjpeg_container ();
- void write_encoded (boost::shared_ptr<const Options>, uint8_t *, int);
- boost::shared_ptr<Image> _input; ///< the input image
+ boost::shared_ptr<const Image> _input; ///< the input image
+ boost::shared_ptr<Subtitle> _subtitle; ///< any subtitle that should be on the image
Size _out_size; ///< the required size of the output, in pixels
int _padding;
+ int _subtitle_offset;
+ float _subtitle_scale;
Scaler const * _scaler; ///< scaler to use
- int _frame; ///< frame index within the Film
+ SourceFrame _frame; ///< frame index within the Film's source
int _frames_per_second; ///< Frames per second that we will use for the DCP (rounded)
std::string _post_process; ///< FFmpeg post-processing string to use
- int _colour_lut_index; ///< Colour look-up table to use (see Config::colour_lut_index ())
- int _j2k_bandwidth; ///< J2K bandwidth to use (see Config::j2k_bandwidth ())
+ int _colour_lut; ///< Colour look-up table to use
+ int _j2k_bandwidth; ///< J2K bandwidth to use
Log* _log; ///< log