X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Flib%2Freel_writer.h;h=09c29adae05a1e7efacdf22448ed81ac0e6ce31e;hb=2ea3a0d0e4066a166c0700bd1d53daa7f1c50dff;hp=0b5a3dad59c321101b161fbdfb0eaf01d409dded;hpb=6e003ef110717dd3e4ecdb009d33671f7834e024;p=dcpomatic.git diff --git a/src/lib/reel_writer.h b/src/lib/reel_writer.h index 0b5a3dad5..09c29adae 100644 --- a/src/lib/reel_writer.h +++ b/src/lib/reel_writer.h @@ -1,5 +1,5 @@ /* - Copyright (C) 2012-2019 Carl Hetherington + Copyright (C) 2012-2020 Carl Hetherington This file is part of DCP-o-matic. @@ -18,12 +18,14 @@ */ +#include "atmos_metadata.h" #include "types.h" #include "dcpomatic_time.h" #include "referenced_reel_asset.h" #include "player_text.h" #include "dcp_text_track.h" #include +#include #include #include @@ -47,6 +49,7 @@ namespace dcp { class SoundAsset; class SoundAssetWriter; class SubtitleAsset; + class AtmosAsset; class ReelAsset; class Reel; } @@ -63,11 +66,12 @@ public: boost::optional content_summary ); - void write (boost::optional encoded, Frame frame, Eyes eyes); + void write (boost::shared_ptr encoded, Frame frame, Eyes eyes); void fake_write (int size); void repeat_write (Frame frame, Eyes eyes); void write (boost::shared_ptr audio); void write (PlayerText text, TextType type, boost::optional track, dcpomatic::DCPTimePeriod period); + void write (boost::shared_ptr atmos, AtmosMetadata metadata); void finish (); boost::shared_ptr create_reel (std::list const & refs, std::list > const & fonts); @@ -100,7 +104,7 @@ private: /** 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 */ - boost::optional _last_written[EYES_COUNT]; + boost::shared_ptr _last_written[EYES_COUNT]; /** index of this reel within the DCP (starting from 0) */ int _reel_index; /** number of reels in the DCP */ @@ -115,6 +119,8 @@ private: boost::shared_ptr _sound_asset_writer; boost::shared_ptr _subtitle_asset; std::map > _closed_caption_assets; + boost::shared_ptr _atmos_asset; + boost::shared_ptr _atmos_asset_writer; static int const _info_size; };