projects
/
dcpomatic.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'master' of /home/carl/git/dvdomatic
[dcpomatic.git]
/
src
/
lib
/
video_decoder.h
diff --git
a/src/lib/video_decoder.h
b/src/lib/video_decoder.h
index ea1899840a7252a6358c682a0a1e85167bb3c7bd..6e4fd48c0019710a2632e921d35645efa119c239 100644
(file)
--- a/
src/lib/video_decoder.h
+++ b/
src/lib/video_decoder.h
@@
-24,15
+24,17
@@
#include "stream.h"
#include "decoder.h"
#include "stream.h"
#include "decoder.h"
-class VideoDecoder : public VideoSource, public virtual Decoder
+class VideoDecoder : public
Timed
VideoSource, public virtual Decoder
{
public:
{
public:
- VideoDecoder (boost::shared_ptr<Film>,
boost::shared_ptr<const Options>, Job *
);
+ VideoDecoder (boost::shared_ptr<Film>,
DecodeOptions
);
/** @return video frames per second, or 0 if unknown */
virtual float frames_per_second () const = 0;
/** @return native size in pixels */
/** @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;
virtual int time_base_numerator () const = 0;
virtual int time_base_denominator () const = 0;
virtual int time_base_numerator () const = 0;
virtual int time_base_denominator () const = 0;
@@
-41,9
+43,9
@@
public:
virtual void set_subtitle_stream (boost::shared_ptr<SubtitleStream>);
virtual void set_subtitle_stream (boost::shared_ptr<SubtitleStream>);
- void set_progress () const;
+ void set_progress (
Job *
) const;
-
SourceFrame
video_frame () const {
+
int
video_frame () const {
return _video_frame;
}
return _video_frame;
}
@@
-55,13
+57,16
@@
public:
return _subtitle_streams;
}
return _subtitle_streams;
}
+ double last_source_time () const {
+ return _last_source_time;
+ }
+
protected:
virtual PixelFormat pixel_format () const = 0;
protected:
virtual PixelFormat pixel_format () const = 0;
- void emit_video (boost::shared_ptr<Image>);
+ void emit_video (boost::shared_ptr<Image>
, bool, double
);
void emit_subtitle (boost::shared_ptr<TimedSubtitle>);
void emit_subtitle (boost::shared_ptr<TimedSubtitle>);
- void repeat_last_video ();
/** Subtitle stream to use when decoding */
boost::shared_ptr<SubtitleStream> _subtitle_stream;
/** Subtitle stream to use when decoding */
boost::shared_ptr<SubtitleStream> _subtitle_stream;
@@
-69,14
+74,10
@@
protected:
std::vector<boost::shared_ptr<SubtitleStream> > _subtitle_streams;
private:
std::vector<boost::shared_ptr<SubtitleStream> > _subtitle_streams;
private:
- void signal_video (boost::shared_ptr<Image>, boost::shared_ptr<Subtitle>);
-
- SourceFrame _video_frame;
-
+ int _video_frame;
+ double _last_source_time;
+
boost::shared_ptr<TimedSubtitle> _timed_subtitle;
boost::shared_ptr<TimedSubtitle> _timed_subtitle;
-
- boost::shared_ptr<Image> _last_image;
- boost::shared_ptr<Subtitle> _last_subtitle;
};
#endif
};
#endif