FFmpegDecoder (boost::shared_ptr<const Film>, boost::shared_ptr<const FFmpegContent>, bool video, bool audio, bool subtitles);
~FFmpegDecoder ();
+ /* Decoder */
+
+ void pass ();
+ void seek (Time);
+ void seek_back ();
+ void seek_forward ();
+ Time next () const;
+
+ /* VideoDecoder */
+
float video_frame_rate () const;
- libdcp::Size native_size () const;
+ libdcp::Size video_size () const;
ContentVideoFrame video_length () const;
- int time_base_numerator () const;
- int time_base_denominator () const;
- int sample_aspect_ratio_numerator () const;
- int sample_aspect_ratio_denominator () const;
+
+ /* FFmpegDecoder */
std::vector<boost::shared_ptr<FFmpegSubtitleStream> > subtitle_streams () const {
return _subtitle_streams;
return _audio_streams;
}
- bool seek (double);
- bool seek_forward ();
- bool seek_back ();
- bool pass ();
+ boost::shared_ptr<const FFmpegContent> ffmpeg_content () const {
+ return _ffmpeg_content;
+ }
private:
PixelFormat pixel_format () const;
AVSampleFormat audio_sample_format () const;
int bytes_per_audio_sample () const;
- bool do_seek (double, bool, bool);
+ void do_seek (Time, bool, bool);
void setup_general ();
void setup_video ();
void maybe_add_subtitle ();
boost::shared_ptr<AudioBuffers> deinterleave_audio (uint8_t** data, int size);
- void film_changed (Film::Property);
-
std::string stream_name (AVStream* s) const;
boost::shared_ptr<const FFmpegContent> _ffmpeg_content;