#ifndef DCPOMATIC_PLAYER_H
#define DCPOMATIC_PLAYER_H
-#include "content.h"
+#include "player_subtitles.h"
#include "film.h"
-#include "rect.h"
-#include "audio_content.h"
-#include "dcpomatic_time.h"
-#include "content_subtitle.h"
+#include "content.h"
#include "position_image.h"
#include "piece.h"
-#include "content_video.h"
-#include "player_subtitles.h"
#include <boost/shared_ptr.hpp>
#include <boost/enable_shared_from_this.hpp>
#include <list>
-class Job;
-class Film;
-class AudioContent;
-class Piece;
-class Image;
-class Decoder;
-class Resampler;
class PlayerVideo;
-class ImageProxy;
+class Playlist;
class Font;
-
-class PlayerStatistics
-{
-public:
- struct Video {
- Video ()
- : black (0)
- , repeat (0)
- , good (0)
- , skip (0)
- {}
-
- int black;
- int repeat;
- int good;
- int skip;
- } video;
-
- struct Audio {
- Audio ()
- : silence (0)
- , good (0)
- , skip (0)
- {}
-
- DCPTime silence;
- int64_t good;
- int64_t skip;
- } audio;
-
- void dump (boost::shared_ptr<Log>) const;
-};
+class AudioBuffers;
/** @class Player
* @brief A class which can `play' a Playlist.
void set_enable_subtitles (bool enable);
void set_always_burn_subtitles (bool burn);
- PlayerStatistics const & statistics () const;
-
/** Emitted when something has changed such that if we went back and emitted
* the last frame again it would look different. This is not emitted after
* a seek.
void update_subtitle_from_text ();
Frame dcp_to_content_video (boost::shared_ptr<const Piece> piece, DCPTime t) const;
DCPTime content_video_to_dcp (boost::shared_ptr<const Piece> piece, Frame f) const;
- Frame dcp_to_content_audio (boost::shared_ptr<const Piece> piece, AudioStreamPtr stream, DCPTime t) const;
+ Frame dcp_to_resampled_audio (boost::shared_ptr<const Piece> piece, DCPTime t) const;
ContentTime dcp_to_content_subtitle (boost::shared_ptr<const Piece> piece, DCPTime t) const;
boost::shared_ptr<PlayerVideo> black_player_video_frame (DCPTime) const;
boost::shared_ptr<AudioProcessor> _audio_processor;
- PlayerStatistics _statistics;
-
boost::signals2::scoped_connection _film_changed_connection;
boost::signals2::scoped_connection _playlist_changed_connection;
boost::signals2::scoped_connection _playlist_content_changed_connection;