X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Flib%2Fpiece.h;h=60adb23e7d7a13684a88b3d103ed627daa153862;hb=refs%2Fheads%2F1771-resample-glitches-take3;hp=deeecfa2f82ce7f77f5ecc7efc77634a48d03f98;hpb=50d75c93a6430fd82e839f9d575d54e90f26dc92;p=dcpomatic.git diff --git a/src/lib/piece.h b/src/lib/piece.h index deeecfa2f..60adb23e7 100644 --- a/src/lib/piece.h +++ b/src/lib/piece.h @@ -21,31 +21,84 @@ #ifndef DCPOMATIC_PIECE_H #define DCPOMATIC_PIECE_H + #include "audio_stream.h" +#include "colour_conversion.h" +#include "content_atmos.h" +#include "content_audio.h" +#include "content_text.h" +#include "content_video.h" +#include "font.h" #include "dcpomatic_time.h" #include "frame_rate_change.h" #include "types.h" + class Content; class Decoder; +struct check_reuse_old_data_test; + class Piece { public: + Piece ( + boost::shared_ptr film, + ContentList content, + bool fast, + bool tolerant, + bool ignore_video, + bool ignore_audio, + bool ignore_text, + bool play_referenced, + boost::optional dcp_decode_reduction + ); + Piece (boost::shared_ptr c, boost::shared_ptr d, FrameRateChange f); void update_pull_to (dcpomatic::DCPTime& pull_to) const; void set_last_push_end (AudioStreamPtr stream, dcpomatic::DCPTime last_push_end); + boost::optional decoder_position (boost::shared_ptr film); + bool has_text () const; + bool reference_audio () const; + + void pass (); + void seek (boost::shared_ptr film, dcpomatic::DCPTime time, bool accurate); dcpomatic::DCPTime position () const; dcpomatic::DCPTime end (boost::shared_ptr film) const; + FrameRateChange frame_rate_change () const { + return _frc; + } + + bool video_use () const; + Crop video_crop () const; + boost::optional video_fade (boost::shared_ptr film, Frame) const; + boost::optional video_colour_conversion () const; + VideoRange video_range () const; + dcp::Size video_scaled_size (dcp::Size container_size) const; + + int audio_resampled_frame_rate (boost::shared_ptr film) const; + double audio_gain () const; dcpomatic::DCPTime content_video_to_dcp (Frame f) const; dcpomatic::DCPTime resampled_audio_to_dcp (boost::shared_ptr film, Frame f) const; dcpomatic::ContentTime dcp_to_content_time (boost::shared_ptr film, dcpomatic::DCPTime t) const; dcpomatic::DCPTime content_time_to_dcp (dcpomatic::ContentTime t) const; + boost::optional content_time_to_dcp (boost::shared_ptr content, dcpomatic::ContentTime t) const; + + void add_fonts (std::list >& fonts) const; + + boost::signals2::signal Video; + boost::signals2::signal Audio; + boost::signals2::signal, ContentBitmapText)> BitmapTextStart; + boost::signals2::signal, ContentStringText)> PlainTextStart; + boost::signals2::signal, dcpomatic::ContentTime)> TextStop; + boost::signals2::signal Atmos; private: + friend struct ::check_reuse_old_data_test; + std::vector > _content; std::vector > _decoder; FrameRateChange _frc;