class Encoder : public VideoSink, public AudioSink
{
public:
- Encoder (boost::shared_ptr<const Film> f);
+ Encoder (boost::shared_ptr<Film> f);
virtual ~Encoder ();
/** Called to indicate that a processing run is about to begin */
void terminate_worker_threads ();
/** Film that we are encoding */
- boost::shared_ptr<const Film> _film;
+ boost::shared_ptr<Film> _film;
/** Mutex for _time_history, _just_skipped and _last_frame */
mutable boost::mutex _history_mutex;
unsigned int const Writer::_maximum_frames_in_memory = 8;
-Writer::Writer (shared_ptr<const Film> f)
+Writer::Writer (shared_ptr<Film> f)
: _film (f)
, _thread (0)
, _finish (false)
_picture_asset.reset (
new libdcp::MonoPictureAsset (
_film->dir (_film->dcp_name()),
- String::compose ("video_%1.mxf", 0),
+ "video.mxf",
DCPFrameRate (_film->frames_per_second()).frames_per_second,
_film->format()->dcp_size()
)
_sound_asset.reset (
new libdcp::SoundAsset (
_film->dir (_film->dcp_name()),
- String::compose ("audio_%1.mxf", 0),
+ "audio.mxf",
DCPFrameRate (_film->frames_per_second()).frames_per_second,
_film->audio_channels(),
dcp_audio_sample_rate (_film->audio_stream()->sample_rate())
int const frames = _last_written_frame + 1;
int const duration = frames - _film->trim_start() - _film->trim_end();
- _film->set_intrinsic_duration (frames);
+ _film->set_dcp_intrinsic_duration (frames);
_picture_asset->set_entry_point (_film->trim_start ());
_picture_asset->set_duration (duration);
class Writer
{
public:
- Writer (boost::shared_ptr<const Film>);
+ Writer (boost::shared_ptr<Film>);
void write (boost::shared_ptr<const EncodedData>, int);
void write (boost::shared_ptr<const AudioBuffers>);
void thread ();
- boost::shared_ptr<const Film> _film;
+ boost::shared_ptr<Film> _film;
boost::thread* _thread;
bool _finish;