using boost::weak_ptr;
using boost::shared_ptr;
using boost::optional;
+using namespace dcpomatic;
/** Get the open captions that should be burnt into a given period.
* @param period Period of interest.
class ActiveText : public boost::noncopyable
{
public:
- std::list<PlayerText> get_burnt (DCPTimePeriod period, bool always_burn_captions) const;
- void clear_before (DCPTime time);
+ std::list<PlayerText> get_burnt (dcpomatic::DCPTimePeriod period, bool always_burn_captions) const;
+ void clear_before (dcpomatic::DCPTime time);
void clear ();
- void add_from (boost::weak_ptr<const TextContent> content, PlayerText ps, DCPTime from);
- std::pair<PlayerText, DCPTime> add_to (boost::weak_ptr<const TextContent> content, DCPTime to);
+ void add_from (boost::weak_ptr<const TextContent> content, PlayerText ps, dcpomatic::DCPTime from);
+ std::pair<PlayerText, dcpomatic::DCPTime> add_to (boost::weak_ptr<const TextContent> content, dcpomatic::DCPTime to);
bool have (boost::weak_ptr<const TextContent> content) const;
private:
public:
Period () {}
- Period (PlayerText s, DCPTime f)
+ Period (PlayerText s, dcpomatic::DCPTime f)
: subs (s)
, from (f)
{}
PlayerText subs;
- DCPTime from;
- boost::optional<DCPTime> to;
+ dcpomatic::DCPTime from;
+ boost::optional<dcpomatic::DCPTime> to;
};
typedef std::map<boost::weak_ptr<const TextContent>, std::list<Period> > Map;
using std::cout;
using boost::shared_ptr;
using boost::dynamic_pointer_cast;
+using namespace dcpomatic;
int const AnalyseAudioJob::_num_points = 1024;
}
private:
- void analyse (boost::shared_ptr<const AudioBuffers>, DCPTime time);
+ void analyse (boost::shared_ptr<const AudioBuffers>, dcpomatic::DCPTime time);
boost::shared_ptr<const Playlist> _playlist;
/** playlist's audio analysis path when the job was created */
boost::filesystem::path _path;
- DCPTime _start;
+ dcpomatic::DCPTime _start;
bool _from_zero;
int64_t _done;
using std::list;
using std::string;
using boost::shared_ptr;
+using namespace dcpomatic;
AtmosMXFContent::AtmosMXFContent (boost::filesystem::path path)
: Content (path)
void examine (boost::shared_ptr<const Film> film, boost::shared_ptr<Job> job);
std::string summary () const;
void as_xml (xmlpp::Node* node, bool with_path) const;
- DCPTime full_length (boost::shared_ptr<const Film> film) const;
- DCPTime approximate_length () const;
+ dcpomatic::DCPTime full_length (boost::shared_ptr<const Film> film) const;
+ dcpomatic::DCPTime approximate_length () const;
static bool valid_mxf (boost::filesystem::path path);
using boost::optional;
using boost::dynamic_pointer_cast;
using dcp::raw_convert;
+using namespace dcpomatic;
int const AudioAnalysis::_current_state_version = 3;
void add_point (int c, AudioPoint const & p);
struct PeakTime {
- PeakTime (float p, DCPTime t)
+ PeakTime (float p, dcpomatic::DCPTime t)
: peak (p)
, time (t)
{}
float peak;
- DCPTime time;
+ dcpomatic::DCPTime time;
};
void set_sample_peak (std::vector<PeakTime> peak) {
using boost::dynamic_pointer_cast;
using boost::optional;
using dcp::raw_convert;
+using namespace dcpomatic;
/** Something stream-related has changed */
int const AudioContentProperty::STREAMS = 200;
void add_properties (boost::shared_ptr<const Film> film, std::list<UserProperty> &) const;
- void modify_position (boost::shared_ptr<const Film> film, DCPTime& pos) const;
- void modify_trim_start (ContentTime& pos) const;
+ void modify_position (boost::shared_ptr<const Film> film, dcpomatic::DCPTime& pos) const;
+ void modify_trim_start (dcpomatic::ContentTime& pos) const;
static boost::shared_ptr<AudioContent> from_xml (Content* parent, cxml::ConstNodePtr, int version);
using std::pair;
using boost::shared_ptr;
using boost::optional;
+using namespace dcpomatic;
AudioDecoder::AudioDecoder (Decoder* parent, shared_ptr<const AudioContent> content, bool fast)
: DecoderPart (parent)
public:
AudioDecoder (Decoder* parent, boost::shared_ptr<const AudioContent> content, bool fast);
- ContentTime position (boost::shared_ptr<const Film> film) const;
- void emit (boost::shared_ptr<const Film> film, AudioStreamPtr stream, boost::shared_ptr<const AudioBuffers>, ContentTime);
+ dcpomatic::ContentTime position (boost::shared_ptr<const Film> film) const;
+ void emit (boost::shared_ptr<const Film> film, AudioStreamPtr stream, boost::shared_ptr<const AudioBuffers>, dcpomatic::ContentTime);
void seek ();
void flush ();
- ContentTime stream_position (boost::shared_ptr<const Film> film, AudioStreamPtr stream) const;
+ dcpomatic::ContentTime stream_position (boost::shared_ptr<const Film> film, AudioStreamPtr stream) const;
/** @return Number of frames of data that were accepted */
boost::signals2::signal<void (AudioStreamPtr, ContentAudio)> Data;
using std::make_pair;
using boost::shared_ptr;
using boost::optional;
+using namespace dcpomatic;
AudioMerger::AudioMerger (int frame_rate)
: _frame_rate (frame_rate)
public:
explicit AudioMerger (int frame_rate);
- std::list<std::pair<boost::shared_ptr<AudioBuffers>, DCPTime> > pull (DCPTime time);
- void push (boost::shared_ptr<const AudioBuffers> audio, DCPTime time);
+ std::list<std::pair<boost::shared_ptr<AudioBuffers>, dcpomatic::DCPTime> > pull (dcpomatic::DCPTime time);
+ void push (boost::shared_ptr<const AudioBuffers> audio, dcpomatic::DCPTime time);
void clear ();
private:
- Frame frames (DCPTime t) const;
+ Frame frames (dcpomatic::DCPTime t) const;
class Buffer
{
* @param t Time
* @param r Frame rate.
*/
- Buffer (int c, int32_t f, DCPTime t, int r)
+ Buffer (int c, int32_t f, dcpomatic::DCPTime t, int r)
: audio (new AudioBuffers (c, f))
, time (t)
, frame_rate (r)
{}
- Buffer (boost::shared_ptr<AudioBuffers> a, DCPTime t, int r)
+ Buffer (boost::shared_ptr<AudioBuffers> a, dcpomatic::DCPTime t, int r)
: audio (a)
, time (t)
, frame_rate (r)
{}
boost::shared_ptr<AudioBuffers> audio;
- DCPTime time;
+ dcpomatic::DCPTime time;
int frame_rate;
- DCPTimePeriod period () const {
- return DCPTimePeriod (time, time + DCPTime::from_frames (audio->frames(), frame_rate));
+ dcpomatic::DCPTimePeriod period () const {
+ return dcpomatic::DCPTimePeriod (time, time + dcpomatic::DCPTime::from_frames (audio->frames(), frame_rate));
}
};
using std::list;
using boost::shared_ptr;
using boost::optional;
+using namespace dcpomatic;
AudioRingBuffers::AudioRingBuffers ()
: _used_in_head (0)
public:
AudioRingBuffers ();
- void put (boost::shared_ptr<const AudioBuffers> data, DCPTime time, int frame_rate);
- boost::optional<DCPTime> get (float* out, int channels, int frames);
- boost::optional<DCPTime> peek () const;
+ void put (boost::shared_ptr<const AudioBuffers> data, dcpomatic::DCPTime time, int frame_rate);
+ boost::optional<dcpomatic::DCPTime> get (float* out, int channels, int frames);
+ boost::optional<dcpomatic::DCPTime> peek () const;
void clear ();
Frame size () const;
private:
mutable boost::mutex _mutex;
- std::list<std::pair<boost::shared_ptr<const AudioBuffers>, DCPTime> > _buffers;
+ std::list<std::pair<boost::shared_ptr<const AudioBuffers>, dcpomatic::DCPTime> > _buffers;
int _used_in_head;
};
using boost::bind;
using boost::optional;
using boost::function;
+using namespace dcpomatic;
/** Minimum video readahead in frames */
#define MINIMUM_VIDEO_READAHEAD 10
~Butler ();
- void seek (DCPTime position, bool accurate);
+ void seek (dcpomatic::DCPTime position, bool accurate);
enum Error {
NONE,
AGAIN
};
- std::pair<boost::shared_ptr<PlayerVideo>, DCPTime> get_video (Error* e = 0);
- boost::optional<DCPTime> get_audio (float* out, Frame frames);
+ std::pair<boost::shared_ptr<PlayerVideo>, dcpomatic::DCPTime> get_video (Error* e = 0);
+ boost::optional<dcpomatic::DCPTime> get_audio (float* out, Frame frames);
boost::optional<TextRingBuffers::Data> get_closed_caption ();
void disable_audio ();
private:
void thread ();
- void video (boost::shared_ptr<PlayerVideo> video, DCPTime time);
- void audio (boost::shared_ptr<AudioBuffers> audio, DCPTime time, int frame_rate);
- void text (PlayerText pt, TextType type, boost::optional<DCPTextTrack> track, DCPTimePeriod period);
+ void video (boost::shared_ptr<PlayerVideo> video, dcpomatic::DCPTime time);
+ void audio (boost::shared_ptr<AudioBuffers> audio, dcpomatic::DCPTime time, int frame_rate);
+ void text (PlayerText pt, TextType type, boost::optional<DCPTextTrack> track, dcpomatic::DCPTimePeriod period);
bool should_run () const;
void prepare (boost::weak_ptr<PlayerVideo> video);
void player_change (ChangeType type, bool frequent);
- void seek_unlocked (DCPTime position, bool accurate);
+ void seek_unlocked (dcpomatic::DCPTime position, bool accurate);
boost::shared_ptr<Player> _player;
boost::thread* _thread;
boost::mutex _mutex;
boost::condition _summon;
boost::condition _arrived;
- boost::optional<DCPTime> _pending_seek_position;
+ boost::optional<dcpomatic::DCPTime> _pending_seek_position;
bool _pending_seek_accurate;
int _suspended;
bool _finished;
/** If we are waiting to be refilled following a seek, this is the time we were
seeking to.
*/
- boost::optional<DCPTime> _awaiting;
+ boost::optional<dcpomatic::DCPTime> _awaiting;
boost::signals2::scoped_connection _player_video_connection;
boost::signals2::scoped_connection _player_audio_connection;
using boost::optional;
using dcp::raw_convert;
using dcp::locale_convert;
+using namespace dcpomatic;
int const ContentProperty::PATH = 400;
int const ContentProperty::POSITION = 401;
{
public:
explicit Content ();
- Content (DCPTime);
+ Content (dcpomatic::DCPTime);
Content (boost::filesystem::path);
Content (cxml::ConstNodePtr);
Content (std::vector<boost::shared_ptr<Content> >);
virtual std::string technical_summary () const;
virtual void as_xml (xmlpp::Node *, bool with_paths) const;
- virtual DCPTime full_length (boost::shared_ptr<const Film>) const = 0;
- virtual DCPTime approximate_length () const = 0;
+ virtual dcpomatic::DCPTime full_length (boost::shared_ptr<const Film>) const = 0;
+ virtual dcpomatic::DCPTime approximate_length () const = 0;
virtual std::string identifier () const;
/** @return points at which to split this content when
* REELTYPE_BY_VIDEO_CONTENT is in use.
*/
- virtual std::list<DCPTime> reel_split_points (boost::shared_ptr<const Film>) const;
+ virtual std::list<dcpomatic::DCPTime> reel_split_points (boost::shared_ptr<const Film>) const;
boost::shared_ptr<Content> clone () const;
return _digest;
}
- void set_position (boost::shared_ptr<const Film> film, DCPTime, bool force_emit = false);
+ void set_position (boost::shared_ptr<const Film> film, dcpomatic::DCPTime, bool force_emit = false);
- /** DCPTime that this content starts; i.e. the time that the first
+ /** dcpomatic::DCPTime that this content starts; i.e. the time that the first
* bit of the content (trimmed or not) will happen.
*/
- DCPTime position () const {
+ dcpomatic::DCPTime position () const {
boost::mutex::scoped_lock lm (_mutex);
return _position;
}
- void set_trim_start (ContentTime);
+ void set_trim_start (dcpomatic::ContentTime);
- ContentTime trim_start () const {
+ dcpomatic::ContentTime trim_start () const {
boost::mutex::scoped_lock lm (_mutex);
return _trim_start;
}
- void set_trim_end (ContentTime);
+ void set_trim_end (dcpomatic::ContentTime);
- ContentTime trim_end () const {
+ dcpomatic::ContentTime trim_end () const {
boost::mutex::scoped_lock lm (_mutex);
return _trim_end;
}
/** @return Time immediately after the last thing in this content */
- DCPTime end (boost::shared_ptr<const Film> film) const {
+ dcpomatic::DCPTime end (boost::shared_ptr<const Film> film) const {
return position() + length_after_trim(film);
}
- DCPTime length_after_trim (boost::shared_ptr<const Film> film) const;
+ dcpomatic::DCPTime length_after_trim (boost::shared_ptr<const Film> film) const;
boost::optional<double> video_frame_rate () const {
boost::mutex::scoped_lock lm (_mutex);
std::vector<std::time_t> _last_write_times;
std::string _digest;
- DCPTime _position;
- ContentTime _trim_start;
- ContentTime _trim_end;
+ dcpomatic::DCPTime _position;
+ dcpomatic::ContentTime _trim_start;
+ dcpomatic::ContentTime _trim_end;
/** The video frame rate that this content is or was prepared to be used with,
* or empty if the effective rate of this content should be dictated by something
* else (either some video happening at the same time, or the rate of the DCP).
class ContentText
{
public:
- explicit ContentText (ContentTime f)
+ explicit ContentText (dcpomatic::ContentTime f)
: _from (f)
{}
- ContentTime from () const {
+ dcpomatic::ContentTime from () const {
return _from;
}
private:
- ContentTime _from;
+ dcpomatic::ContentTime _from;
};
class ContentBitmapText : public ContentText
{
public:
- ContentBitmapText (ContentTime f, boost::shared_ptr<Image> im, dcpomatic::Rect<double> r)
+ ContentBitmapText (dcpomatic::ContentTime f, boost::shared_ptr<Image> im, dcpomatic::Rect<double> r)
: ContentText (f)
, sub (im, r)
{}
class ContentStringText : public ContentText
{
public:
- ContentStringText (ContentTime f, std::list<dcp::SubtitleString> s)
+ ContentStringText (dcpomatic::ContentTime f, std::list<dcp::SubtitleString> s)
: ContentText (f)
, subs (s)
{}
using boost::function;
using boost::dynamic_pointer_cast;
using dcp::raw_convert;
+using namespace dcpomatic;
int const DCPContentProperty::NEEDS_ASSETS = 600;
int const DCPContentProperty::NEEDS_KDM = 601;
return boost::dynamic_pointer_cast<const DCPContent> (Content::shared_from_this ());
}
- DCPTime full_length (boost::shared_ptr<const Film> film) const;
- DCPTime approximate_length () const;
+ dcpomatic::DCPTime full_length (boost::shared_ptr<const Film> film) const;
+ dcpomatic::DCPTime approximate_length () const;
void examine (boost::shared_ptr<const Film> film, boost::shared_ptr<Job>);
std::string summary () const;
void take_settings_from (boost::shared_ptr<const Content> c);
void set_default_colour_conversion ();
- std::list<DCPTime> reel_split_points (boost::shared_ptr<const Film> film) const;
+ std::list<dcpomatic::DCPTime> reel_split_points (boost::shared_ptr<const Film> film) const;
std::vector<boost::filesystem::path> directories () const;
void read_directory (boost::filesystem::path);
void read_sub_directory (boost::filesystem::path);
- std::list<DCPTimePeriod> reels (boost::shared_ptr<const Film> film) const;
+ std::list<dcpomatic::DCPTimePeriod> reels (boost::shared_ptr<const Film> film) const;
bool can_reference (
boost::shared_ptr<const Film> film,
boost::function <bool (boost::shared_ptr<const Content>)>,
using boost::shared_ptr;
using boost::dynamic_pointer_cast;
using boost::optional;
+using namespace dcpomatic;
DCPDecoder::DCPDecoder (shared_ptr<const Film> film, shared_ptr<const DCPContent> c, bool fast)
: DCP (c)
void set_forced_reduction (boost::optional<int> reduction);
bool pass ();
- void seek (ContentTime t, bool accurate);
+ void seek (dcpomatic::ContentTime t, bool accurate);
private:
friend struct dcp_subtitle_within_dcp_test;
void next_reel ();
void get_readers ();
- void pass_texts (ContentTime next, dcp::Size size);
+ void pass_texts (dcpomatic::ContentTime next, dcp::Size size);
void pass_texts (
- ContentTime next,
+ dcpomatic::ContentTime next,
boost::shared_ptr<dcp::SubtitleAsset> asset,
bool reference,
int64_t entry_point,
);
/** Time of next thing to return from pass relative to the start of _reel */
- ContentTime _next;
+ dcpomatic::ContentTime _next;
std::list<boost::shared_ptr<dcp::Reel> > _reels;
std::list<boost::shared_ptr<dcp::Reel> >::iterator _reel;
using boost::weak_ptr;
using boost::dynamic_pointer_cast;
using boost::optional;
+using namespace dcpomatic;
/** Construct a DCP encoder.
* @param film Film that we are encoding.
private:
- void video (boost::shared_ptr<PlayerVideo>, DCPTime);
- void audio (boost::shared_ptr<AudioBuffers>, DCPTime);
- void text (PlayerText, TextType, boost::optional<DCPTextTrack>, DCPTimePeriod);
+ void video (boost::shared_ptr<PlayerVideo>, dcpomatic::DCPTime);
+ void audio (boost::shared_ptr<AudioBuffers>, dcpomatic::DCPTime);
+ void text (PlayerText, TextType, boost::optional<DCPTextTrack>, dcpomatic::DCPTimePeriod);
boost::shared_ptr<Writer> _writer;
boost::shared_ptr<J2KEncoder> _j2k_encoder;
using boost::shared_ptr;
using boost::dynamic_pointer_cast;
using dcp::raw_convert;
+using namespace dcpomatic;
DCPSubtitleContent::DCPSubtitleContent (boost::filesystem::path path)
: Content (path)
std::string summary () const;
std::string technical_summary () const;
void as_xml (xmlpp::Node *, bool with_paths) const;
- DCPTime full_length (boost::shared_ptr<const Film> film) const;
- DCPTime approximate_length () const;
+ dcpomatic::DCPTime full_length (boost::shared_ptr<const Film> film) const;
+ dcpomatic::DCPTime approximate_length () const;
private:
- ContentTime _length;
+ dcpomatic::ContentTime _length;
};
using boost::shared_ptr;
using boost::dynamic_pointer_cast;
using boost::bind;
+using namespace dcpomatic;
DCPSubtitleDecoder::DCPSubtitleDecoder (shared_ptr<const Film> film, shared_ptr<const DCPSubtitleContent> content)
: Decoder (film)
DCPSubtitleDecoder (boost::shared_ptr<const Film> film, boost::shared_ptr<const DCPSubtitleContent>);
bool pass ();
- void seek (ContentTime time, bool accurate);
+ void seek (dcpomatic::ContentTime time, bool accurate);
private:
- ContentTimePeriod content_time_period (boost::shared_ptr<dcp::Subtitle> s) const;
+ dcpomatic::ContentTimePeriod content_time_period (boost::shared_ptr<dcp::Subtitle> s) const;
std::list<boost::shared_ptr<dcp::Subtitle> > _subtitles;
std::list<boost::shared_ptr<dcp::Subtitle> >::const_iterator _next;
#include <inttypes.h>
using std::string;
+using namespace dcpomatic;
template <>
Time<ContentTimeDifferentiator, DCPTimeDifferentiator>::Time (DCPTime d, FrameRateChange f)
}
DCPTime
-min (DCPTime a, DCPTime b)
+dcpomatic::min (DCPTime a, DCPTime b)
{
if (a < b) {
return a;
}
DCPTime
-max (DCPTime a, DCPTime b)
+dcpomatic::max (DCPTime a, DCPTime b)
{
if (a > b) {
return a;
}
ContentTime
-min (ContentTime a, ContentTime b)
+dcpomatic::min (ContentTime a, ContentTime b)
{
if (a < b) {
return a;
}
ContentTime
-max (ContentTime a, ContentTime b)
+dcpomatic::max (ContentTime a, ContentTime b)
{
if (a > b) {
return a;
}
string
-to_string (ContentTime t)
+dcpomatic::to_string (ContentTime t)
{
char buffer[64];
#ifdef DCPOMATIC_WINDOWS
}
string
-to_string (DCPTime t)
+dcpomatic::to_string (DCPTime t)
{
char buffer[64];
#ifdef DCPOMATIC_WINDOWS
}
string
-to_string (DCPTimePeriod p)
+dcpomatic::to_string (DCPTimePeriod p)
{
char buffer[64];
#ifdef DCPOMATIC_WINDOWS
#include <iomanip>
#include <cstdio>
+struct dcpomatic_time_ceil_test;
+struct dcpomatic_time_floor_test;
+
+namespace dcpomatic {
+
/** A time in seconds, expressed as a number scaled up by Time::HZ. We want two different
- * versions of this class, ContentTime and DCPTime, and we want it to be impossible to
+ * versions of this class, dcpomatic::ContentTime and dcpomatic::DCPTime, and we want it to be impossible to
* convert implicitly between the two. Hence there's this template hack. I'm not
* sure if it's the best way to do it.
*
static const int HZ = 96000;
private:
- friend struct dcpomatic_time_ceil_test;
- friend struct dcpomatic_time_floor_test;
+ friend struct ::dcpomatic_time_ceil_test;
+ friend struct ::dcpomatic_time_floor_test;
Type _t;
};
std::string to_string (DCPTime t);
std::string to_string (DCPTimePeriod p);
+}
+
#endif
#include "dcpomatic_time.h"
#include <iostream>
+namespace dcpomatic {
+
/** @param periods Set of periods in ascending order of from time */
template <class T>
std::list<TimePeriod<T> > coalesce (std::list<TimePeriod<T> > periods)
return periods;
}
+
+}
using boost::optional;
using boost::shared_ptr;
using boost::weak_ptr;
+using namespace dcpomatic;
Decoder::Decoder (weak_ptr<const Film> film)
: _film (film)
* @return true if this decoder will emit no more data unless a seek() happens.
*/
virtual bool pass () = 0;
- virtual void seek (ContentTime time, bool accurate);
+ virtual void seek (dcpomatic::ContentTime time, bool accurate);
- ContentTime position () const;
+ dcpomatic::ContentTime position () const;
protected:
boost::shared_ptr<const Film> film () const;
DecoderPart (Decoder* parent);
virtual ~DecoderPart () {}
- virtual ContentTime position (boost::shared_ptr<const Film> film) const = 0;
+ virtual dcpomatic::ContentTime position (boost::shared_ptr<const Film> film) const = 0;
virtual void seek () = 0;
void set_ignore (bool i) {
using boost::shared_ptr;
using boost::dynamic_pointer_cast;
using boost::function;
+using namespace dcpomatic;
Empty::Empty (shared_ptr<const Film> film, list<shared_ptr<Piece> > pieces, function<bool (shared_ptr<Piece>)> part)
{
Empty () {}
Empty (boost::shared_ptr<const Film> film, std::list<boost::shared_ptr<Piece> > pieces, boost::function<bool (boost::shared_ptr<Piece>)> part);
- DCPTime position () const {
+ dcpomatic::DCPTime position () const {
return _position;
}
- DCPTimePeriod period_at_position () const;
+ dcpomatic::DCPTimePeriod period_at_position () const;
bool done () const;
- void set_position (DCPTime amount);
+ void set_position (dcpomatic::DCPTime amount);
private:
friend struct ::empty_test1;
friend struct ::empty_test2;
friend struct ::player_subframe_test;
- std::list<DCPTimePeriod> _periods;
- DCPTime _position;
+ std::list<dcpomatic::DCPTimePeriod> _periods;
+ dcpomatic::DCPTime _position;
};
#endif
using boost::shared_ptr;
using boost::optional;
using dcp::raw_convert;
+using namespace dcpomatic;
boost::mutex FFmpeg::_mutex;
protected:
AVCodecContext* video_codec_context () const;
AVCodecContext* subtitle_codec_context () const;
- ContentTime pts_offset (
- std::vector<boost::shared_ptr<FFmpegAudioStream> > audio_streams, boost::optional<ContentTime> first_video, double video_frame_rate
+ dcpomatic::ContentTime pts_offset (
+ std::vector<boost::shared_ptr<FFmpegAudioStream> > audio_streams, boost::optional<dcpomatic::ContentTime> first_video, double video_frame_rate
) const;
static FFmpegSubtitlePeriod subtitle_period (AVSubtitle const & sub);
using std::string;
using boost::optional;
using dcp::raw_convert;
+using namespace dcpomatic;
FFmpegAudioStream::FFmpegAudioStream (cxml::ConstNodePtr node, int version)
: FFmpegStream (node)
/* XXX: should probably be locked */
- boost::optional<ContentTime> first_audio;
+ boost::optional<dcpomatic::ContentTime> first_audio;
boost::optional<std::string> codec_name;
private:
using boost::dynamic_pointer_cast;
using boost::optional;
using dcp::raw_convert;
+using namespace dcpomatic;
int const FFmpegContentProperty::SUBTITLE_STREAMS = 100;
int const FFmpegContentProperty::SUBTITLE_STREAM = 101;
std::string summary () const;
std::string technical_summary () const;
void as_xml (xmlpp::Node *, bool with_paths) const;
- DCPTime full_length (boost::shared_ptr<const Film> film) const;
- DCPTime approximate_length () const;
+ dcpomatic::DCPTime full_length (boost::shared_ptr<const Film> film) const;
+ dcpomatic::DCPTime approximate_length () const;
std::string identifier () const;
void set_subtitle_stream (boost::shared_ptr<FFmpegSubtitleStream>);
- boost::optional<ContentTime> first_video () const {
+ boost::optional<dcpomatic::ContentTime> first_video () const {
boost::mutex::scoped_lock lm (_mutex);
return _first_video;
}
std::vector<boost::shared_ptr<FFmpegSubtitleStream> > _subtitle_streams;
boost::shared_ptr<FFmpegSubtitleStream> _subtitle_stream;
- boost::optional<ContentTime> _first_video;
+ boost::optional<dcpomatic::ContentTime> _first_video;
/** Video filters that should be used when generating DCPs */
std::vector<Filter const *> _filters;
using boost::optional;
using boost::dynamic_pointer_cast;
using dcp::Size;
+using namespace dcpomatic;
FFmpegDecoder::FFmpegDecoder (shared_ptr<const Film> film, shared_ptr<const FFmpegContent> c, bool fast)
: FFmpeg (c)
FFmpegDecoder (boost::shared_ptr<const Film> film, boost::shared_ptr<const FFmpegContent>, bool fast);
bool pass ();
- void seek (ContentTime time, bool);
+ void seek (dcpomatic::ContentTime time, bool);
private:
friend struct ::ffmpeg_pts_offset_test;
void decode_audio_packet ();
void decode_subtitle_packet ();
- void decode_bitmap_subtitle (AVSubtitleRect const * rect, ContentTime from);
- void decode_ass_subtitle (std::string ass, ContentTime from);
+ void decode_bitmap_subtitle (AVSubtitleRect const * rect, dcpomatic::ContentTime from);
+ void decode_ass_subtitle (std::string ass, dcpomatic::ContentTime from);
void maybe_add_subtitle ();
boost::shared_ptr<AudioBuffers> deinterleave_audio (boost::shared_ptr<FFmpegAudioStream> stream) const;
std::list<boost::shared_ptr<VideoFilterGraph> > _filter_graphs;
boost::mutex _filter_graphs_mutex;
- ContentTime _pts_offset;
- boost::optional<ContentTime> _current_subtitle_to;
+ dcpomatic::ContentTime _pts_offset;
+ boost::optional<dcpomatic::ContentTime> _current_subtitle_to;
/** true if we have a subtitle which has not had emit_stop called for it yet */
bool _have_current_subtitle;
boost::shared_ptr<Image> _black_image;
- std::vector<boost::optional<ContentTime> > _next_time;
+ std::vector<boost::optional<dcpomatic::ContentTime> > _next_time;
};
using boost::shared_ptr;
using boost::bind;
using boost::weak_ptr;
+using namespace dcpomatic;
FFmpegEncoder::FFmpegEncoder (
shared_ptr<const Film> film,
int _output_audio_channels;
mutable boost::mutex _mutex;
- DCPTime _last_time;
+ dcpomatic::DCPTime _last_time;
EventHistory _history;
using std::max;
using boost::shared_ptr;
using boost::optional;
+using namespace dcpomatic;
/** @param job job that the examiner is operating in, or 0 */
FFmpegExaminer::FFmpegExaminer (shared_ptr<const FFmpegContent> c, shared_ptr<Job> job)
return _audio_streams;
}
- boost::optional<ContentTime> first_video () const {
+ boost::optional<dcpomatic::ContentTime> first_video () const {
return _first_video;
}
std::string stream_name (AVStream* s) const;
std::string subtitle_stream_name (AVStream* s) const;
- boost::optional<ContentTime> frame_time (AVStream* s) const;
+ boost::optional<dcpomatic::ContentTime> frame_time (AVStream* s) const;
std::vector<boost::shared_ptr<FFmpegSubtitleStream> > _subtitle_streams;
std::vector<boost::shared_ptr<FFmpegAudioStream> > _audio_streams;
- boost::optional<ContentTime> _first_video;
+ boost::optional<dcpomatic::ContentTime> _first_video;
/** Video length, either obtained from the header or derived by running
* through the whole file.
*/
struct SubtitleStart
{
- SubtitleStart (std::string id_, bool image_, ContentTime time_)
+ SubtitleStart (std::string id_, bool image_, dcpomatic::ContentTime time_)
: id (id_)
, image (image_)
, time (time_)
std::string id;
/** true if it's an image subtitle, false for text */
bool image;
- ContentTime time;
+ dcpomatic::ContentTime time;
};
typedef std::map<boost::shared_ptr<FFmpegSubtitleStream>, boost::optional<SubtitleStart> > LastSubtitleMap;
using boost::shared_ptr;
using boost::bind;
using boost::weak_ptr;
+using namespace dcpomatic;
int FFmpegFileEncoder::_video_stream_index = 0;
int FFmpegFileEncoder::_audio_stream_index = 1;
boost::filesystem::path output
);
- void video (boost::shared_ptr<PlayerVideo>, DCPTime);
+ void video (boost::shared_ptr<PlayerVideo>, dcpomatic::DCPTime);
void audio (boost::shared_ptr<AudioBuffers>);
- void subtitle (PlayerText, DCPTimePeriod);
+ void subtitle (PlayerText, dcpomatic::DCPTimePeriod);
void flush ();
class FFmpegSubtitlePeriod
{
public:
- explicit FFmpegSubtitlePeriod (ContentTime f)
+ explicit FFmpegSubtitlePeriod (dcpomatic::ContentTime f)
: from (f)
{}
- FFmpegSubtitlePeriod (ContentTime f, ContentTime t)
+ FFmpegSubtitlePeriod (dcpomatic::ContentTime f, dcpomatic::ContentTime t)
: from (f)
, to (t)
{}
- ContentTime from;
- boost::optional<ContentTime> to;
+ dcpomatic::ContentTime from;
+ boost::optional<dcpomatic::ContentTime> to;
};
using boost::optional;
using boost::is_any_of;
using dcp::raw_convert;
+using namespace dcpomatic;
string const Film::metadata_file = "metadata.xml";
explicit Film (boost::optional<boost::filesystem::path> dir);
~Film ();
- boost::filesystem::path info_file (DCPTimePeriod p) const;
+ boost::filesystem::path info_file (dcpomatic::DCPTimePeriod p) const;
boost::filesystem::path j2c_path (int, Frame, Eyes, bool) const;
boost::filesystem::path internal_video_asset_dir () const;
- boost::filesystem::path internal_video_asset_filename (DCPTimePeriod p) const;
+ boost::filesystem::path internal_video_asset_filename (dcpomatic::DCPTimePeriod p) const;
boost::filesystem::path audio_analysis_path (boost::shared_ptr<const Playlist>) const;
/* Proxies for some Playlist methods */
ContentList content () const;
- DCPTime length () const;
+ dcpomatic::DCPTime length () const;
int best_video_frame_rate () const;
- FrameRateChange active_frame_rate_change (DCPTime) const;
+ FrameRateChange active_frame_rate_change (dcpomatic::DCPTime) const;
std::pair<double, double> speed_up_range (int dcp_frame_rate) const;
dcp::EncryptedKDM make_kdm (
return _playlist;
}
- std::list<DCPTimePeriod> reels () const;
+ std::list<dcpomatic::DCPTimePeriod> reels () const;
std::list<int> mapped_audio_channels () const;
- std::string content_summary (DCPTimePeriod period) const;
+ std::string content_summary (dcpomatic::DCPTimePeriod period) const;
bool references_dcp_video () const;
bool references_dcp_audio () const;
return _reencode_j2k;
}
- boost::optional<DCPTime> marker (dcp::Marker type) const;
- std::map<dcp::Marker, DCPTime> markers () const {
+ boost::optional<dcpomatic::DCPTime> marker (dcp::Marker type) const;
+ std::map<dcp::Marker, dcpomatic::DCPTime> markers () const {
return _markers;
}
void set_reel_length (int64_t);
void set_upload_after_make_dcp (bool);
void set_reencode_j2k (bool);
- void set_marker (dcp::Marker type, DCPTime time);
+ void set_marker (dcp::Marker type, dcpomatic::DCPTime time);
void unset_marker (dcp::Marker type);
void set_ratings (std::vector<dcp::Rating> r);
bool _reencode_j2k;
/** true if the user has ever explicitly set the video frame rate of this film */
bool _user_explicit_video_frame_rate;
- std::map<dcp::Marker, DCPTime> _markers;
+ std::map<dcp::Marker, dcpomatic::DCPTime> _markers;
std::vector<dcp::Rating> _ratings;
int _state_version;
using boost::weak_ptr;
using boost::optional;
using boost::bind;
+using namespace dcpomatic;
Hints::Hints (weak_ptr<const Film> film)
: _film (film)
private:
void thread ();
void hint (std::string h);
- void text (PlayerText text, TextType type, DCPTimePeriod period);
+ void text (PlayerText text, TextType type, dcpomatic::DCPTimePeriod period);
boost::weak_ptr<const Film> _film;
boost::thread* _thread;
bool _long_ccap;
bool _overlap_ccap;
bool _too_many_ccap_lines;
- boost::optional<DCPTimePeriod> _last;
+ boost::optional<dcpomatic::DCPTimePeriod> _last;
boost::mutex _mutex;
bool _stop;
using std::list;
using std::vector;
using boost::shared_ptr;
+using namespace dcpomatic;
ImageContent::ImageContent (boost::filesystem::path p)
{
std::string summary () const;
std::string technical_summary () const;
void as_xml (xmlpp::Node *, bool with_paths) const;
- DCPTime full_length (boost::shared_ptr<const Film> film) const;
- DCPTime approximate_length () const;
+ dcpomatic::DCPTime full_length (boost::shared_ptr<const Film> film) const;
+ dcpomatic::DCPTime approximate_length () const;
std::string identifier () const;
using std::cout;
using boost::shared_ptr;
using dcp::Size;
+using namespace dcpomatic;
ImageDecoder::ImageDecoder (shared_ptr<const Film> film, shared_ptr<const ImageContent> c)
: Decoder (film)
}
bool pass ();
- void seek (ContentTime, bool);
+ void seek (dcpomatic::ContentTime, bool);
private:
using boost::weak_ptr;
using boost::optional;
using dcp::Data;
+using namespace dcpomatic;
/** @param film Film that we are encoding.
* @param writer Writer that we are using.
void begin ();
/** Called to pass a bit of video to be encoded as the next DCP frame */
- void encode (boost::shared_ptr<PlayerVideo> pv, DCPTime time);
+ void encode (boost::shared_ptr<PlayerVideo> pv, dcpomatic::DCPTime time);
/** Called when a processing run has finished */
void end ();
Waker _waker;
boost::shared_ptr<PlayerVideo> _last_player_video[EYES_COUNT];
- boost::optional<DCPTime> _last_player_video_time;
+ boost::optional<dcpomatic::DCPTime> _last_player_video_time;
boost::signals2::scoped_connection _server_found_connection;
};
using boost::shared_ptr;
using boost::optional;
using boost::function;
+using namespace dcpomatic;
/** @param film Associated film, or 0 */
Job::Job (shared_ptr<const Film> film)
using boost::shared_ptr;
using boost::function;
+using namespace dcpomatic;
ContentList overlaps (shared_ptr<const Film> film, ContentList cl, function<bool (shared_ptr<const Content>)> part, DCPTime from, DCPTime to)
{
* ContentList
*/
ContentList overlaps (
- boost::shared_ptr<const Film> film, ContentList cl, boost::function<bool (boost::shared_ptr<const Content>)> part, DCPTime from, DCPTime to
+ boost::shared_ptr<const Film> film, ContentList cl, boost::function<bool (boost::shared_ptr<const Content>)> part, dcpomatic::DCPTime from, dcpomatic::DCPTime to
);
using boost::dynamic_pointer_cast;
using boost::optional;
using boost::scoped_ptr;
+using namespace dcpomatic;
int const PlayerProperty::VIDEO_CONTAINER_SIZE = 700;
int const PlayerProperty::PLAYLIST = 701;
~Player ();
bool pass ();
- void seek (DCPTime time, bool accurate);
+ void seek (dcpomatic::DCPTime time, bool accurate);
std::list<boost::shared_ptr<Font> > get_subtitle_fonts ();
std::list<ReferencedReelAsset> get_reel_assets ();
void set_play_referenced ();
void set_dcp_decode_reduction (boost::optional<int> reduction);
- boost::optional<DCPTime> content_time_to_dcp (boost::shared_ptr<Content> content, ContentTime t);
+ boost::optional<dcpomatic::DCPTime> content_time_to_dcp (boost::shared_ptr<Content> content, dcpomatic::ContentTime t);
boost::signals2::signal<void (ChangeType, int, bool)> Change;
/** Emitted when a video frame is ready. These emissions happen in the correct order. */
- boost::signals2::signal<void (boost::shared_ptr<PlayerVideo>, DCPTime)> Video;
- boost::signals2::signal<void (boost::shared_ptr<AudioBuffers>, DCPTime, int)> Audio;
+ boost::signals2::signal<void (boost::shared_ptr<PlayerVideo>, dcpomatic::DCPTime)> Video;
+ boost::signals2::signal<void (boost::shared_ptr<AudioBuffers>, dcpomatic::DCPTime, int)> Audio;
/** Emitted when a text is ready. This signal may be emitted considerably
* after the corresponding Video.
*/
- boost::signals2::signal<void (PlayerText, TextType, boost::optional<DCPTextTrack>, DCPTimePeriod)> Text;
+ boost::signals2::signal<void (PlayerText, TextType, boost::optional<DCPTextTrack>, dcpomatic::DCPTimePeriod)> Text;
private:
friend class PlayerWrapper;
void film_change (ChangeType, Film::Property);
void playlist_change (ChangeType);
void playlist_content_change (ChangeType, int, bool);
- 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_resampled_audio (boost::shared_ptr<const Piece> piece, DCPTime t) const;
- DCPTime resampled_audio_to_dcp (boost::shared_ptr<const Piece> piece, Frame f) const;
- ContentTime dcp_to_content_time (boost::shared_ptr<const Piece> piece, DCPTime t) const;
- DCPTime content_time_to_dcp (boost::shared_ptr<const Piece> piece, ContentTime t) const;
+ Frame dcp_to_content_video (boost::shared_ptr<const Piece> piece, dcpomatic::DCPTime t) const;
+ dcpomatic::DCPTime content_video_to_dcp (boost::shared_ptr<const Piece> piece, Frame f) const;
+ Frame dcp_to_resampled_audio (boost::shared_ptr<const Piece> piece, dcpomatic::DCPTime t) const;
+ dcpomatic::DCPTime resampled_audio_to_dcp (boost::shared_ptr<const Piece> piece, Frame f) const;
+ dcpomatic::ContentTime dcp_to_content_time (boost::shared_ptr<const Piece> piece, dcpomatic::DCPTime t) const;
+ dcpomatic::DCPTime content_time_to_dcp (boost::shared_ptr<const Piece> piece, dcpomatic::ContentTime t) const;
boost::shared_ptr<PlayerVideo> black_player_video_frame (Eyes eyes) const;
void video (boost::weak_ptr<Piece>, ContentVideo);
void audio (boost::weak_ptr<Piece>, AudioStreamPtr, ContentAudio);
void bitmap_text_start (boost::weak_ptr<Piece>, boost::weak_ptr<const TextContent>, ContentBitmapText);
void plain_text_start (boost::weak_ptr<Piece>, boost::weak_ptr<const TextContent>, ContentStringText);
- void subtitle_stop (boost::weak_ptr<Piece>, boost::weak_ptr<const TextContent>, ContentTime);
- DCPTime one_video_frame () const;
- void fill_audio (DCPTimePeriod period);
- std::pair<boost::shared_ptr<AudioBuffers>, DCPTime> discard_audio (
- boost::shared_ptr<const AudioBuffers> audio, DCPTime time, DCPTime discard_to
+ void subtitle_stop (boost::weak_ptr<Piece>, boost::weak_ptr<const TextContent>, dcpomatic::ContentTime);
+ dcpomatic::DCPTime one_video_frame () const;
+ void fill_audio (dcpomatic::DCPTimePeriod period);
+ std::pair<boost::shared_ptr<AudioBuffers>, dcpomatic::DCPTime> discard_audio (
+ boost::shared_ptr<const AudioBuffers> audio, dcpomatic::DCPTime time, dcpomatic::DCPTime discard_to
) const;
- boost::optional<PositionImage> open_subtitles_for_frame (DCPTime time) const;
- void emit_video (boost::shared_ptr<PlayerVideo> pv, DCPTime time);
- void do_emit_video (boost::shared_ptr<PlayerVideo> pv, DCPTime time);
- void emit_audio (boost::shared_ptr<AudioBuffers> data, DCPTime time);
+ boost::optional<PositionImage> open_subtitles_for_frame (dcpomatic::DCPTime time) const;
+ void emit_video (boost::shared_ptr<PlayerVideo> pv, dcpomatic::DCPTime time);
+ void do_emit_video (boost::shared_ptr<PlayerVideo> pv, dcpomatic::DCPTime time);
+ void emit_audio (boost::shared_ptr<AudioBuffers> data, dcpomatic::DCPTime time);
/** Mutex to protect the whole Player state. When it's used for the preview we have
seek() and pass() called from the Butler thread and lots of other stuff called
bool _play_referenced;
/** Time just after the last video frame we emitted, or the time of the last accurate seek */
- boost::optional<DCPTime> _last_video_time;
+ boost::optional<dcpomatic::DCPTime> _last_video_time;
boost::optional<Eyes> _last_video_eyes;
/** Time just after the last audio frame we emitted, or the time of the last accurate seek */
- boost::optional<DCPTime> _last_audio_time;
+ boost::optional<dcpomatic::DCPTime> _last_audio_time;
boost::optional<int> _dcp_decode_reduction;
AudioMerger _audio_merger;
Shuffler* _shuffler;
- std::list<std::pair<boost::shared_ptr<PlayerVideo>, DCPTime> > _delay;
+ std::list<std::pair<boost::shared_ptr<PlayerVideo>, dcpomatic::DCPTime> > _delay;
class StreamState
{
public:
StreamState () {}
- StreamState (boost::shared_ptr<Piece> p, DCPTime l)
+ StreamState (boost::shared_ptr<Piece> p, dcpomatic::DCPTime l)
: piece(p)
, last_push_end(l)
{}
boost::shared_ptr<Piece> piece;
- DCPTime last_push_end;
+ dcpomatic::DCPTime last_push_end;
};
std::map<AudioStreamPtr, StreamState> _stream_states;
using boost::shared_ptr;
using boost::weak_ptr;
using boost::dynamic_pointer_cast;
+using namespace dcpomatic;
Playlist::Playlist ()
: _sequence (true)
std::string video_identifier () const;
- DCPTime length (boost::shared_ptr<const Film> film) const;
- boost::optional<DCPTime> start () const;
+ dcpomatic::DCPTime length (boost::shared_ptr<const Film> film) const;
+ boost::optional<dcpomatic::DCPTime> start () const;
int64_t required_disk_space (boost::shared_ptr<const Film> film, int j2k_bandwidth, int audio_channels, int audio_frame_rate) const;
int best_video_frame_rate () const;
- DCPTime video_end (boost::shared_ptr<const Film> film) const;
- DCPTime text_end (boost::shared_ptr<const Film> film) const;
- FrameRateChange active_frame_rate_change (DCPTime, int dcp_frame_rate) const;
- std::string content_summary (boost::shared_ptr<const Film> film, DCPTimePeriod period) const;
+ dcpomatic::DCPTime video_end (boost::shared_ptr<const Film> film) const;
+ dcpomatic::DCPTime text_end (boost::shared_ptr<const Film> film) const;
+ FrameRateChange active_frame_rate_change (dcpomatic::DCPTime, int dcp_frame_rate) const;
+ std::string content_summary (boost::shared_ptr<const Film> film, dcpomatic::DCPTimePeriod period) const;
std::pair<double, double> speed_up_range (int dcp_video_frame_rate) const;
void set_sequence (bool);
using boost::dynamic_pointer_cast;
using dcp::Data;
using dcp::raw_convert;
+using namespace dcpomatic;
int const ReelWriter::_info_size = 48;
public:
ReelWriter (
boost::shared_ptr<const Film> film,
- DCPTimePeriod period,
+ dcpomatic::DCPTimePeriod period,
boost::shared_ptr<Job> job,
int reel_index,
int reel_count,
void fake_write (Frame frame, Eyes eyes, int size);
void repeat_write (Frame frame, Eyes eyes);
void write (boost::shared_ptr<const AudioBuffers> audio);
- void write (PlayerText text, TextType type, boost::optional<DCPTextTrack> track, DCPTimePeriod period);
+ void write (PlayerText text, TextType type, boost::optional<DCPTextTrack> track, dcpomatic::DCPTimePeriod period);
void finish ();
boost::shared_ptr<dcp::Reel> create_reel (std::list<ReferencedReelAsset> const & refs, std::list<boost::shared_ptr<Font> > const & fonts);
Frame start () const;
- DCPTimePeriod period () const {
+ dcpomatic::DCPTimePeriod period () const {
return _period;
}
boost::shared_ptr<const Film> _film;
- DCPTimePeriod _period;
+ dcpomatic::DCPTimePeriod _period;
/** the first picture frame index that does not already exist in our MXF */
int _first_nonexistant_frame;
/** the data of the last written frame, if there is one */
class ReferencedReelAsset
{
public:
- ReferencedReelAsset (boost::shared_ptr<dcp::ReelAsset> asset_, DCPTimePeriod period_)
+ ReferencedReelAsset (boost::shared_ptr<dcp::ReelAsset> asset_, dcpomatic::DCPTimePeriod period_)
: asset (asset_)
, period (period_)
{}
/** The asset */
boost::shared_ptr<dcp::ReelAsset> asset;
/** Period that this asset covers in the DCP */
- DCPTimePeriod period;
+ dcpomatic::DCPTimePeriod period;
};
#endif
using boost::shared_ptr;
using boost::optional;
using boost::algorithm::replace_all;
+using namespace dcpomatic;
static FcConfig* fc_config = 0;
static list<pair<boost::filesystem::path, string> > fc_config_fonts;
std::string marked_up (std::list<StringText> subtitles, int target_height, float fade_factor);
std::list<PositionImage> render_text (
- std::list<StringText>, std::list<boost::shared_ptr<Font> > fonts, dcp::Size, DCPTime, int
+ std::list<StringText>, std::list<boost::shared_ptr<Font> > fonts, dcp::Size, dcpomatic::DCPTime, int
);
using boost::scoped_array;
using boost::optional;
using dcp::Data;
+using namespace dcpomatic;
StringTextFile::StringTextFile (shared_ptr<const StringTextFileContent> content)
{
public:
explicit StringTextFile (boost::shared_ptr<const StringTextFileContent>);
- boost::optional<ContentTime> first () const;
- ContentTime length () const;
+ boost::optional<dcpomatic::ContentTime> first () const;
+ dcpomatic::ContentTime length () const;
protected:
std::vector<sub::Subtitle> _subtitles;
using boost::shared_ptr;
using boost::optional;
using dcp::raw_convert;
+using namespace dcpomatic;
StringTextFileContent::StringTextFileContent (boost::filesystem::path path)
: Content (path)
std::string summary () const;
std::string technical_summary () const;
void as_xml (xmlpp::Node *, bool with_paths) const;
- DCPTime full_length (boost::shared_ptr<const Film> film) const;
- DCPTime approximate_length () const;
+ dcpomatic::DCPTime full_length (boost::shared_ptr<const Film> film) const;
+ dcpomatic::DCPTime approximate_length () const;
std::string identifier () const;
private:
- ContentTime _length;
+ dcpomatic::ContentTime _length;
};
using boost::shared_ptr;
using boost::optional;
using boost::dynamic_pointer_cast;
+using namespace dcpomatic;
StringTextFileDecoder::StringTextFileDecoder (shared_ptr<const Film> film, shared_ptr<const StringTextFileContent> content)
: Decoder (film)
public:
StringTextFileDecoder (boost::shared_ptr<const Film> film, boost::shared_ptr<const StringTextFileContent>);
- void seek (ContentTime time, bool accurate);
+ void seek (dcpomatic::ContentTime time, bool accurate);
bool pass ();
private:
- ContentTimePeriod content_time_period (sub::Subtitle s) const;
+ dcpomatic::ContentTimePeriod content_time_period (sub::Subtitle s) const;
size_t _next;
};
using boost::dynamic_pointer_cast;
using boost::optional;
using dcp::raw_convert;
+using namespace dcpomatic;
int const TextContentProperty::X_OFFSET = 500;
int const TextContentProperty::Y_OFFSET = 501;
void set_effect_colour (dcp::Colour);
void unset_effect_colour ();
void set_line_spacing (double s);
- void set_fade_in (ContentTime);
+ void set_fade_in (dcpomatic::ContentTime);
void unset_fade_in ();
- void set_fade_out (ContentTime);
+ void set_fade_out (dcpomatic::ContentTime);
void set_outline_width (int);
void unset_fade_out ();
void set_type (TextType type);
return _line_spacing;
}
- boost::optional<ContentTime> fade_in () const {
+ boost::optional<dcpomatic::ContentTime> fade_in () const {
boost::mutex::scoped_lock lm (_mutex);
return _fade_in;
}
- boost::optional<ContentTime> fade_out () const {
+ boost::optional<dcpomatic::ContentTime> fade_out () const {
boost::mutex::scoped_lock lm (_mutex);
return _fade_out;
}
boost::optional<dcp::Colour> _effect_colour;
/** scaling factor for line spacing; 1 is "standard", < 1 is closer together, > 1 is further apart */
double _line_spacing;
- boost::optional<ContentTime> _fade_in;
- boost::optional<ContentTime> _fade_out;
+ boost::optional<dcpomatic::ContentTime> _fade_in;
+ boost::optional<dcpomatic::ContentTime> _fade_out;
int _outline_width;
/** what these captions will be used for in the output DCP (not necessarily what
* they were originally).
using boost::shared_ptr;
using boost::optional;
using boost::function;
+using namespace dcpomatic;
TextDecoder::TextDecoder (
Decoder* parent,
TextDecoder (
Decoder* parent,
boost::shared_ptr<const TextContent>,
- ContentTime first
+ dcpomatic::ContentTime first
);
- ContentTime position (boost::shared_ptr<const Film>) const {
+ dcpomatic::ContentTime position (boost::shared_ptr<const Film>) const {
return _position;
}
- void emit_bitmap_start (ContentTime from, boost::shared_ptr<Image> image, dcpomatic::Rect<double> rect);
- void emit_bitmap (ContentTimePeriod period, boost::shared_ptr<Image> image, dcpomatic::Rect<double> rect);
- void emit_plain_start (ContentTime from, std::list<dcp::SubtitleString> s);
- void emit_plain_start (ContentTime from, sub::Subtitle const & subtitle);
- void emit_plain (ContentTimePeriod period, std::list<dcp::SubtitleString> s);
- void emit_plain (ContentTimePeriod period, sub::Subtitle const & subtitle);
- void emit_stop (ContentTime to);
+ void emit_bitmap_start (dcpomatic::ContentTime from, boost::shared_ptr<Image> image, dcpomatic::Rect<double> rect);
+ void emit_bitmap (dcpomatic::ContentTimePeriod period, boost::shared_ptr<Image> image, dcpomatic::Rect<double> rect);
+ void emit_plain_start (dcpomatic::ContentTime from, std::list<dcp::SubtitleString> s);
+ void emit_plain_start (dcpomatic::ContentTime from, sub::Subtitle const & subtitle);
+ void emit_plain (dcpomatic::ContentTimePeriod period, std::list<dcp::SubtitleString> s);
+ void emit_plain (dcpomatic::ContentTimePeriod period, sub::Subtitle const & subtitle);
+ void emit_stop (dcpomatic::ContentTime to);
void seek ();
boost::signals2::signal<void (ContentBitmapText)> BitmapStart;
boost::signals2::signal<void (ContentStringText)> PlainStart;
- boost::signals2::signal<void (ContentTime)> Stop;
+ boost::signals2::signal<void (dcpomatic::ContentTime)> Stop;
private:
boost::shared_ptr<const TextContent> _content;
- ContentTime _position;
+ dcpomatic::ContentTime _position;
};
#endif
using std::pair;
using boost::optional;
+using namespace dcpomatic;
void
TextRingBuffers::put (PlayerText text, DCPTextTrack track, DCPTimePeriod period)
class TextRingBuffers
{
public:
- void put (PlayerText text, DCPTextTrack track, DCPTimePeriod period);
+ void put (PlayerText text, DCPTextTrack track, dcpomatic::DCPTimePeriod period);
struct Data {
- Data (PlayerText text_, DCPTextTrack track_, DCPTimePeriod period_)
+ Data (PlayerText text_, DCPTextTrack track_, dcpomatic::DCPTimePeriod period_)
: text (text_)
, track (track_)
, period (period_)
PlayerText text;
DCPTextTrack track;
- DCPTimePeriod period;
+ dcpomatic::DCPTimePeriod period;
};
boost::optional<Data> get ();
using dcp::Size;
using dcp::raw_convert;
using dcp::locale_convert;
+using namespace dcpomatic;
/** Path to our executable, required by the stacktrace stuff and filled
* in during App::onInit().
class TextDecoder;
extern std::string seconds_to_hms (int);
-extern std::string time_to_hmsf (DCPTime time, Frame rate);
+extern std::string time_to_hmsf (dcpomatic::DCPTime time, Frame rate);
extern std::string seconds_to_approximate_hms (int);
extern double seconds (struct timeval);
extern void dcpomatic_setup ();
extern void checked_fwrite (void const * ptr, size_t size, FILE* stream, boost::filesystem::path path);
extern size_t utf8_strlen (std::string s);
extern std::string day_of_week_to_string (boost::gregorian::greg_weekday d);
-extern void emit_subtitle_image (ContentTimePeriod period, dcp::SubtitleImage sub, dcp::Size size, boost::shared_ptr<TextDecoder> decoder);
+extern void emit_subtitle_image (dcpomatic::ContentTimePeriod period, dcp::SubtitleImage sub, dcp::Size size, boost::shared_ptr<TextDecoder> decoder);
#ifdef DCPOMATIC_VARIANT_SWAROOP
extern boost::shared_ptr<dcp::CertificateChain> read_swaroop_chain (boost::filesystem::path path);
extern void write_swaroop_chain (boost::shared_ptr<const dcp::CertificateChain> chain, boost::filesystem::path output);
using boost::optional;
using boost::dynamic_pointer_cast;
using dcp::raw_convert;
+using namespace dcpomatic;
VideoContent::VideoContent (Content* parent)
: ContentPart (parent)
void take_from_examiner (boost::shared_ptr<VideoExaminer>);
void add_properties (std::list<UserProperty> &) const;
- void modify_position (boost::shared_ptr<const Film> film, DCPTime& pos) const;
- void modify_trim_start (ContentTime& pos) const;
+ void modify_position (boost::shared_ptr<const Film> film, dcpomatic::DCPTime& pos) const;
+ void modify_trim_start (dcpomatic::ContentTime& pos) const;
static boost::shared_ptr<VideoContent> from_xml (Content* parent, cxml::ConstNodePtr, int);
using std::back_inserter;
using boost::shared_ptr;
using boost::optional;
+using namespace dcpomatic;
VideoDecoder::VideoDecoder (Decoder* parent, shared_ptr<const Content> c)
: DecoderPart (parent)
friend struct ffmpeg_pts_offset_test;
friend void ffmpeg_decoder_sequential_test_one (boost::filesystem::path file, float fps, int gaps, int video_length);
- ContentTime position (boost::shared_ptr<const Film>) const {
+ dcpomatic::ContentTime position (boost::shared_ptr<const Film>) const {
return _position;
}
/** Time of last thing to be emitted */
boost::shared_ptr<const Content> _content;
boost::optional<Frame> _last_emitted;
- ContentTime _position;
+ dcpomatic::ContentTime _position;
};
#endif
using std::list;
using std::string;
using boost::shared_ptr;
+using namespace dcpomatic;
VideoMXFContent::VideoMXFContent (boost::filesystem::path path)
: Content (path)
std::string technical_summary () const;
std::string identifier () const;
void as_xml (xmlpp::Node* node, bool with_paths) const;
- DCPTime full_length (boost::shared_ptr<const Film> film) const;
- DCPTime approximate_length () const;
+ dcpomatic::DCPTime full_length (boost::shared_ptr<const Film> film) const;
+ dcpomatic::DCPTime approximate_length () const;
void add_properties (boost::shared_ptr<const Film> film, std::list<UserProperty>& p) const;
static bool valid_mxf (boost::filesystem::path path);
using boost::shared_ptr;
using boost::optional;
+using namespace dcpomatic;
VideoMXFDecoder::VideoMXFDecoder (shared_ptr<const Film> film, shared_ptr<const VideoMXFContent> content)
: Decoder (film)
VideoMXFDecoder (boost::shared_ptr<const Film> film, boost::shared_ptr<const VideoMXFContent>);
bool pass ();
- void seek (ContentTime t, bool accurate);
+ void seek (dcpomatic::ContentTime t, bool accurate);
private:
boost::shared_ptr<const VideoMXFContent> _content;
/** Time of next thing to return from pass */
- ContentTime _next;
+ dcpomatic::ContentTime _next;
boost::shared_ptr<dcp::MonoPictureAssetReader> _mono_reader;
boost::shared_ptr<dcp::StereoPictureAssetReader> _stereo_reader;
using std::string;
using boost::shared_ptr;
using boost::optional;
+using namespace dcpomatic;
void
VideoRingBuffers::put (shared_ptr<PlayerVideo> frame, DCPTime time)
class VideoRingBuffers : public boost::noncopyable
{
public:
- void put (boost::shared_ptr<PlayerVideo> frame, DCPTime time);
- std::pair<boost::shared_ptr<PlayerVideo>, DCPTime> get ();
+ void put (boost::shared_ptr<PlayerVideo> frame, dcpomatic::DCPTime time);
+ std::pair<boost::shared_ptr<PlayerVideo>, dcpomatic::DCPTime> get ();
void clear ();
Frame size () const;
private:
mutable boost::mutex _mutex;
- std::list<std::pair<boost::shared_ptr<PlayerVideo>, DCPTime> > _data;
+ std::list<std::pair<boost::shared_ptr<PlayerVideo>, dcpomatic::DCPTime> > _data;
};
using boost::dynamic_pointer_cast;
using boost::optional;
using dcp::Data;
+using namespace dcpomatic;
Writer::Writer (shared_ptr<const Film> film, weak_ptr<Job> j)
: _film (film)
void fake_write (Frame, Eyes);
bool can_repeat (Frame) const;
void repeat (Frame, Eyes);
- void write (boost::shared_ptr<const AudioBuffers>, DCPTime time);
- void write (PlayerText text, TextType type, boost::optional<DCPTextTrack>, DCPTimePeriod period);
+ void write (boost::shared_ptr<const AudioBuffers>, dcpomatic::DCPTime time);
+ void write (PlayerText text, TextType type, boost::optional<DCPTextTrack>, dcpomatic::DCPTimePeriod period);
void write (std::list<boost::shared_ptr<Font> > fonts);
void write (ReferencedReelAsset asset);
void finish ();
using boost::dynamic_pointer_cast;
using boost::thread;
using boost::bind;
+using namespace dcpomatic;
enum {
ID_file_open = 1,
using boost::optional;
using boost::const_pointer_cast;
using boost::dynamic_pointer_cast;
+using namespace dcpomatic;
/** @param parent Parent window.
* @param film Film we are using.
bool Show (bool show = true);
- void set_cursor (boost::optional<DCPTime> time, boost::optional<float> db);
+ void set_cursor (boost::optional<dcpomatic::DCPTime> time, boost::optional<float> db);
private:
void film_change (ChangeType, int);
using boost::bind;
using boost::optional;
using boost::shared_ptr;
+using namespace dcpomatic;
int const AudioPlot::_minimum = -70;
int const AudioPlot::_cursor_size = 8;
wxColour colour (int n) const;
- boost::signals2::signal<void (boost::optional<DCPTime>, boost::optional<float>)> Cursor;
+ boost::signals2::signal<void (boost::optional<dcpomatic::DCPTime>, boost::optional<float>)> Cursor;
static const int max_smoothing;
: db(0)
{}
- Point (wxPoint draw_, DCPTime time_, float db_)
+ Point (wxPoint draw_, dcpomatic::DCPTime time_, float db_)
: draw(draw_)
, time(time_)
, db(db_)
{}
wxPoint draw;
- DCPTime time;
+ dcpomatic::DCPTime time;
float db;
};
using boost::shared_ptr;
using boost::weak_ptr;
using boost::optional;
+using namespace dcpomatic;
ClosedCaptionsDialog::ClosedCaptionsDialog (wxWindow* parent, FilmViewer* viewer)
: wxDialog (parent, wxID_ANY, _("Closed captions"), wxDefaultPosition, wxDefaultSize,
public:
explicit ClosedCaptionsDialog (wxWindow* parent, FilmViewer* viewer);
- void update (DCPTime);
+ void update (dcpomatic::DCPTime);
void clear ();
void set_film_and_butler (boost::shared_ptr<Film>, boost::weak_ptr<Butler>);
std::vector<wxString> _lines;
std::vector<DCPTextTrack> _tracks;
boost::weak_ptr<Butler> _butler;
- DCPTime _last_update;
+ dcpomatic::DCPTime _last_update;
};
using boost::weak_ptr;
using boost::dynamic_pointer_cast;
using boost::optional;
+using namespace dcpomatic;
class LimitedSplitter : public wxSplitterWindow
{
using boost::weak_ptr;
using boost::optional;
using boost::dynamic_pointer_cast;
+using namespace dcpomatic;
ContentView::ContentView (wxWindow* parent)
: wxListCtrl (parent, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLC_REPORT | wxLC_NO_HEADER)
using boost::shared_ptr;
using boost::weak_ptr;
using boost::dynamic_pointer_cast;
+using namespace dcpomatic;
Controls::Controls (wxWindow* parent, shared_ptr<FilmViewer> viewer, bool editor_controls)
: wxPanel (parent)
void jump_to_selected_clicked ();
void timecode_clicked ();
void active_jobs_changed (boost::optional<std::string>);
- DCPTime nudge_amount (wxKeyboardState& ev);
+ dcpomatic::DCPTime nudge_amount (wxKeyboardState& ev);
void image_changed (boost::weak_ptr<PlayerVideo>);
void outline_content_changed ();
void eye_changed ();
using boost::weak_ptr;
using boost::optional;
using dcp::Size;
+using namespace dcpomatic;
static
int
return _film;
}
- void seek (DCPTime t, bool accurate);
- void seek (boost::shared_ptr<Content> content, ContentTime p, bool accurate);
- void seek_by (DCPTime by, bool accurate);
+ void seek (dcpomatic::DCPTime t, bool accurate);
+ void seek (boost::shared_ptr<Content> content, dcpomatic::ContentTime p, bool accurate);
+ void seek_by (dcpomatic::DCPTime by, bool accurate);
/** @return our `playhead' position; this may not lie exactly on a frame boundary */
- DCPTime position () const {
+ dcpomatic::DCPTime position () const {
return _video_position;
}
- DCPTime one_video_frame () const;
+ dcpomatic::DCPTime one_video_frame () const;
void start ();
bool stop ();
boost::signals2::signal<void (boost::weak_ptr<PlayerVideo>)> ImageChanged;
boost::signals2::signal<void ()> PositionChanged;
- boost::signals2::signal<void (DCPTime)> Started;
- boost::signals2::signal<void (DCPTime)> Stopped;
+ boost::signals2::signal<void (dcpomatic::DCPTime)> Started;
+ boost::signals2::signal<void (dcpomatic::DCPTime)> Stopped;
/** While playing back we reached the end of the film (emitted from GUI thread) */
boost::signals2::signal<void ()> Finished;
void config_changed (Config::Property);
bool maybe_draw_background_image (wxPaintDC& dc);
- DCPTime time () const;
- DCPTime uncorrected_time () const;
+ dcpomatic::DCPTime time () const;
+ dcpomatic::DCPTime uncorrected_time () const;
Frame average_latency () const;
void refresh_panel ();
bool _coalesce_player_changes;
std::list<int> _pending_player_changes;
- std::pair<boost::shared_ptr<PlayerVideo>, DCPTime> _player_video;
+ std::pair<boost::shared_ptr<PlayerVideo>, dcpomatic::DCPTime> _player_video;
boost::shared_ptr<const Image> _frame;
- DCPTime _video_position;
+ dcpomatic::DCPTime _video_position;
Position<int> _inter_position;
dcp::Size _inter_size;
using boost::shared_ptr;
using boost::weak_ptr;
using boost::optional;
+using dcpomatic::DCPTime;
class Marker
{
weak_ptr<FilmViewer> viewer;
dcp::Marker type;
CheckBox* checkbox;
- Timecode<DCPTime>* timecode;
+ Timecode<dcpomatic::DCPTime>* timecode;
Button* set_button;
};
using std::list;
using boost::shared_ptr;
using boost::optional;
+using namespace dcpomatic;
MoveToDialog::MoveToDialog (wxWindow* parent, optional<DCPTime> position, shared_ptr<const Film> film)
: TableDialog (parent, _("Move content"), 2, 0, true)
class MoveToDialog : public TableDialog
{
public:
- MoveToDialog (wxWindow* parent, boost::optional<DCPTime> position, boost::shared_ptr<const Film> film);
+ MoveToDialog (wxWindow* parent, boost::optional<dcpomatic::DCPTime> position, boost::shared_ptr<const Film> film);
- DCPTime position () const;
+ dcpomatic::DCPTime position () const;
private:
boost::weak_ptr<const Film> _film;
#include <dcp/locale_convert.h>
using dcp::locale_convert;
+using namespace dcpomatic;
PlayheadToFrameDialog::PlayheadToFrameDialog (wxWindow* parent, int fps)
: TableDialog (parent, _("Go to frame"), 2, 1, true)
public:
PlayheadToFrameDialog (wxWindow* parent, int fps);
- DCPTime get () const;
+ dcpomatic::DCPTime get () const;
private:
wxTextCtrl* _frame;
#include "playhead_to_timecode_dialog.h"
+using namespace dcpomatic;
+
PlayheadToTimecodeDialog::PlayheadToTimecodeDialog (wxWindow* parent, int fps)
: TableDialog (parent, _("Go to timecode"), 2, 1, true)
, _fps (fps)
public:
PlayheadToTimecodeDialog (wxWindow* parent, int fps);
- DCPTime get () const;
+ dcpomatic::DCPTime get () const;
private:
- Timecode<DCPTime>* _timecode;
+ Timecode<dcpomatic::DCPTime>* _timecode;
int _fps;
};
using boost::bind;
using boost::dynamic_pointer_cast;
using boost::optional;
+using namespace dcpomatic;
int const SubtitleAppearanceDialog::NONE = 0;
int const SubtitleAppearanceDialog::OUTLINE = 1;
wxCheckBox* _force_effect_colour;
wxColourPickerCtrl* _effect_colour;
wxCheckBox* _force_fade_in;
- Timecode<ContentTime>* _fade_in;
+ Timecode<dcpomatic::ContentTime>* _fade_in;
wxCheckBox* _force_fade_out;
- Timecode<ContentTime>* _fade_out;
+ Timecode<dcpomatic::ContentTime>* _fade_out;
wxSpinCtrl* _outline_width;
wxGridBagSizer* _table;
std::map<RGBA, RGBAColourPicker*> _pickers;
using boost::shared_ptr;
using boost::dynamic_pointer_cast;
using boost::optional;
+using namespace dcpomatic;
SwaroopControls::SwaroopControls (wxWindow* parent, shared_ptr<FilmViewer> viewer)
: Controls (parent, viewer, false)
using boost::weak_ptr;
using boost::bind;
using boost::dynamic_pointer_cast;
+using namespace dcpomatic;
TextView::TextView (
wxWindow* parent, shared_ptr<Film> film, shared_ptr<Content> content, shared_ptr<TextContent> text, shared_ptr<Decoder> decoder, weak_ptr<FilmViewer> viewer
private:
void data_start (ContentStringText cts);
- void data_stop (ContentTime time);
+ void data_stop (dcpomatic::ContentTime time);
void subtitle_selected (wxListEvent &);
wxListCtrl* _list;
int _subs;
boost::optional<FrameRateChange> _frc;
boost::optional<int> _last_count;
- std::vector<ContentTime> _start_times;
+ std::vector<dcpomatic::ContentTime> _start_times;
boost::weak_ptr<Content> _content;
boost::weak_ptr<FilmViewer> _film_viewer;
};
using boost::dynamic_pointer_cast;
using boost::bind;
using boost::optional;
+using namespace dcpomatic;
/* 3 hours in 640 pixels */
double const Timeline::_minimum_pixels_per_second = 640.0 / (60 * 60 * 3);
boost::shared_ptr<TimelineView> event_to_view (wxMouseEvent &);
TimelineContentViewList selected_views () const;
ContentList selected_content () const;
- void maybe_snap (DCPTime a, DCPTime b, boost::optional<DCPTime>& nearest_distance) const;
+ void maybe_snap (dcpomatic::DCPTime a, dcpomatic::DCPTime b, boost::optional<dcpomatic::DCPTime>& nearest_distance) const;
wxScrolledCanvas* _labels_canvas;
wxScrolledCanvas* _main_canvas;
wxPoint _down_point;
boost::optional<wxPoint> _zoom_point;
boost::shared_ptr<TimelineContentView> _down_view;
- DCPTime _down_view_position;
+ dcpomatic::DCPTime _down_view_position;
bool _first_move;
ContentMenu _menu;
bool _snap;
- std::list<DCPTime> _start_snaps;
- std::list<DCPTime> _end_snaps;
+ std::list<dcpomatic::DCPTime> _start_snaps;
+ std::list<dcpomatic::DCPTime> _end_snaps;
Tool _tool;
int _x_scroll_rate;
int _y_scroll_rate;
using std::list;
using boost::shared_ptr;
+using namespace dcpomatic;
TimelineContentView::TimelineContentView (Timeline& tl, shared_ptr<Content> c)
: TimelineView (tl)
using std::min;
using std::list;
+using namespace dcpomatic;
TimelineReelsView::TimelineReelsView (Timeline& tl, int y)
: TimelineView (tl)
using std::list;
using std::cout;
+using namespace dcpomatic;
TimelineTimeAxisView::TimelineTimeAxisView (Timeline& tl, int y)
: TimelineView (tl)
#include "timeline.h"
using std::list;
+using namespace dcpomatic;
/** @class TimelineView
* @brief Parent class for components of the timeline (e.g. a piece of content or an axis).
protected:
virtual void do_paint (wxGraphicsContext *, std::list<dcpomatic::Rect<int> > overlaps) = 0;
- int time_x (DCPTime t) const;
+ int time_x (dcpomatic::DCPTime t) const;
Timeline& _timeline;
using boost::dynamic_pointer_cast;
using boost::optional;
using dcp::locale_convert;
+using namespace dcpomatic;
TimingPanel::TimingPanel (ContentPanel* p, weak_ptr<FilmViewer> viewer)
/* horrid hack for apparent lack of context support with wxWidgets i18n code */
wxStaticText* _colon[3];
wxStaticText* _tip;
wxStaticText* _position_label;
- Timecode<DCPTime>* _position;
+ Timecode<dcpomatic::DCPTime>* _position;
wxButton* _move_to_start_of_reel;
wxStaticText* _full_length_label;
- Timecode<DCPTime>* _full_length;
+ Timecode<dcpomatic::DCPTime>* _full_length;
wxStaticText* _trim_start_label;
- Timecode<ContentTime>* _trim_start;
+ Timecode<dcpomatic::ContentTime>* _trim_start;
wxButton* _trim_start_to_playhead;
wxButton* _trim_end_to_playhead;
wxStaticText* _trim_end_label;
- Timecode<ContentTime>* _trim_end;
+ Timecode<dcpomatic::ContentTime>* _trim_end;
wxStaticText* _play_length_label;
- Timecode<DCPTime>* _play_length;
+ Timecode<dcpomatic::DCPTime>* _play_length;
wxStaticText* _video_frame_rate_label;
wxTextCtrl* _video_frame_rate;
wxButton* _set_video_frame_rate;
using boost::dynamic_pointer_cast;
using boost::bind;
using boost::optional;
+using namespace dcpomatic;
static VideoContentScale
index_to_scale (int n)
wxStaticText* _bottom_crop_label;
ContentSpinCtrl<VideoContent>* _bottom_crop;
wxStaticText* _fade_in_label;
- Timecode<ContentTime>* _fade_in;
+ Timecode<dcpomatic::ContentTime>* _fade_in;
wxStaticText* _fade_out_label;
- Timecode<ContentTime>* _fade_out;
+ Timecode<dcpomatic::ContentTime>* _fade_out;
wxStaticText* _scale_to_label;
ContentChoice<VideoContent, VideoContentScale>* _scale;
wxStaticText* _description;
using boost::shared_ptr;
using boost::optional;
using dcp::locale_convert;
+using namespace dcpomatic;
wxStaticText *
#ifdef __WXOSX__
extern void dcpomatic_setup_i18n ();
extern wxString context_translation (wxString);
extern std::string string_client_data (wxClientData* o);
-extern wxString time_to_timecode (DCPTime t, double fps);
+extern wxString time_to_timecode (dcpomatic::DCPTime t, double fps);
extern void setup_audio_channels_choice (wxChoice* choice, int minimum);
extern wxSplashScreen* maybe_show_splash ();
extern double calculate_mark_interval (double start);
using std::vector;
using boost::shared_ptr;
+using namespace dcpomatic;
static float
random_float ()
using std::cout;
using boost::shared_ptr;
using boost::bind;
+using namespace dcpomatic;
static shared_ptr<const AudioBuffers> last_audio;
using std::cout;
using boost::shared_ptr;
+using namespace dcpomatic;
#define CANARY 9999
using std::map;
using boost::shared_ptr;
using boost::dynamic_pointer_cast;
+using namespace dcpomatic;
/** Build a small DCP with no picture and a single subtitle overlaid onto it from a SubRip file */
BOOST_AUTO_TEST_CASE (burnt_subtitle_test_subrip)
#include <boost/test/unit_test.hpp>
using boost::shared_ptr;
+using namespace dcpomatic;
BOOST_AUTO_TEST_CASE (butler_test1)
{
#include <boost/test/unit_test.hpp>
using boost::shared_ptr;
+using namespace dcpomatic;
/** There has been garbled audio with this piece of content */
BOOST_AUTO_TEST_CASE (content_test1)
using std::pair;
using boost::shared_ptr;
using boost::optional;
+using namespace dcpomatic;
/** Simulate the work that the player does, for profiling */
BOOST_AUTO_TEST_CASE (dcp_playback_test)
using std::list;
using boost::shared_ptr;
using boost::optional;
+using namespace dcpomatic;
optional<ContentStringText> stored;
using std::list;
using std::cout;
+using namespace dcpomatic;
BOOST_AUTO_TEST_CASE (dcpomatic_time_test)
{
#include <boost/test/unit_test.hpp>
using boost::shared_ptr;
+using namespace dcpomatic;
bool
has_video (shared_ptr<Piece> piece)
using std::cout;
using boost::shared_ptr;
using boost::optional;
+using namespace dcpomatic;
static optional<ContentVideo> stored;
static bool
using boost::shared_ptr;
using boost::optional;
using boost::bind;
+using namespace dcpomatic;
static DCPTime next;
static DCPTime frame;
using std::string;
using boost::shared_ptr;
+using namespace dcpomatic;
static void
ffmpeg_content_test (int number, boost::filesystem::path content, ExportFormat format)
#include "test.h"
using boost::shared_ptr;
+using namespace dcpomatic;
BOOST_AUTO_TEST_CASE (ffmpeg_examiner_test)
{
#include "test.h"
using boost::shared_ptr;
+using namespace dcpomatic;
BOOST_AUTO_TEST_CASE (ffmpeg_pts_offset_test)
{
using boost::shared_ptr;
using boost::bind;
using boost::optional;
+using namespace dcpomatic;
static shared_ptr<AudioBuffers> accumulated;
using std::list;
using std::cout;
using boost::shared_ptr;
+using namespace dcpomatic;
/** Test Film::reels() */
BOOST_AUTO_TEST_CASE (reels_test1)
BOOST_REQUIRE (!wait_for_jobs());
film->set_video_frame_rate (24);
- content->set_trim_start (ContentTime(4003));
+ content->set_trim_start (dcpomatic::ContentTime(4003));
film->make_dcp ();
BOOST_REQUIRE (!wait_for_jobs());
using std::string;
using std::list;
using boost::shared_ptr;
+using namespace dcpomatic;
/** Make a very short DCP with a single subtitle from .srt with no specified fonts */
BOOST_AUTO_TEST_CASE (srt_subtitle_test)
#include <boost/test/unit_test.hpp>
using boost::shared_ptr;
+using namespace dcpomatic;
/** Check for no crash when trimming DCP subtitles (#1275) */
BOOST_AUTO_TEST_CASE (subtitle_trim_test1)
using std::string;
using std::list;
using boost::shared_ptr;
+using namespace dcpomatic;
static string const xml = "<Content>"
"<Type>FFmpeg</Type>"
using std::cout;
using boost::shared_ptr;
using boost::dynamic_pointer_cast;
+using namespace dcpomatic;
/** Test start/end trim and positioning of some audio content */
BOOST_AUTO_TEST_CASE (torture_test1)
#include "test.h"
using boost::shared_ptr;
+using namespace dcpomatic;
static SNDFILE* L;
static SNDFILE* R;
using std::string;
using std::vector;
using boost::shared_ptr;
+using namespace dcpomatic;
BOOST_AUTO_TEST_CASE (digest_head_tail_test)
{
using std::cout;
using boost::shared_ptr;
using boost::dynamic_pointer_cast;
+using namespace dcpomatic;
/** Test the logic which decides whether a DCP can be referenced or not */
BOOST_AUTO_TEST_CASE (vf_test1)