class VideoDecoder : public VideoSource, public virtual Decoder
{
public:
- VideoDecoder (boost::shared_ptr<Film>, boost::shared_ptr<const DecodeOptions>, Job *);
+ VideoDecoder (boost::shared_ptr<Film>, DecodeOptions, Job *);
/** @return video frames per second, or 0 if unknown */
virtual float frames_per_second () const = 0;
/** @return native size in pixels */
- virtual Size native_size () const = 0;
+ virtual libdcp::Size native_size () const = 0;
/** @return length (in source video frames), according to our content's header */
virtual SourceFrame length () const = 0;
void set_progress () const;
- SourceFrame video_frame () const {
+ int video_frame () const {
return _video_frame;
}
return _subtitle_streams;
}
- SourceFrame last_source_frame () const {
- return _last_source_frame;
+ double last_source_time () const {
+ return _last_source_time;
}
protected:
virtual PixelFormat pixel_format () const = 0;
- void emit_video (boost::shared_ptr<Image>, SourceFrame);
+ void emit_video (boost::shared_ptr<Image>, double);
void emit_subtitle (boost::shared_ptr<TimedSubtitle>);
void repeat_last_video ();
std::vector<boost::shared_ptr<SubtitleStream> > _subtitle_streams;
private:
- void signal_video (boost::shared_ptr<Image>, boost::shared_ptr<Subtitle>);
+ void signal_video (boost::shared_ptr<Image>, bool, boost::shared_ptr<Subtitle>);
- SourceFrame _video_frame;
- SourceFrame _last_source_frame;
+ int _video_frame;
+ double _last_source_time;
boost::shared_ptr<TimedSubtitle> _timed_subtitle;