#include <dcp/reel_subtitle_asset.h>
#include <dcp/reel_picture_asset.h>
#include <boost/foreach.hpp>
-#include <boost/make_shared.hpp>
#include <stdint.h>
#include <algorithm>
#include <iostream>
using std::make_pair;
using std::copy;
using boost::shared_ptr;
-using boost::make_shared;
using boost::weak_ptr;
using boost::dynamic_pointer_cast;
using boost::optional;
continue;
}
- shared_ptr<Decoder> decoder = decoder_factory (i, _film->log(), _fast);
+ shared_ptr<Decoder> decoder = decoder_factory (i, _film->log());
FrameRateChange frc (i->active_video_frame_rate(), _film->video_frame_rate());
if (!decoder) {
decoder->audio->set_ignore ();
}
- _pieces.push_back (make_shared<Piece> (i, decoder, frc));
+ if (decoder->audio && _fast) {
+ decoder->audio->set_fast ();
+ }
+
+ shared_ptr<DCPDecoder> dcp = dynamic_pointer_cast<DCPDecoder> (decoder);
+ if (dcp && _play_referenced) {
+ dcp->set_decode_referenced ();
+ }
+
+ _pieces.push_back (shared_ptr<Piece> (new Piece (i, decoder, frc)));
}
_have_valid_pieces = true;
{
return shared_ptr<PlayerVideo> (
new PlayerVideo (
- make_shared<RawImageProxy> (_black_image),
+ shared_ptr<const ImageProxy> (new RawImageProxy (_black_image)),
time,
Crop (),
optional<double> (),
Frame const length_frames = length.frames_round (_film->audio_frame_rate ());
- shared_ptr<AudioBuffers> audio = make_shared<AudioBuffers> (_film->audio_channels(), length_frames);
+ shared_ptr<AudioBuffers> audio (new AudioBuffers (_film->audio_channels(), length_frames));
audio->make_silent ();
list<shared_ptr<Piece> > ov = overlaps (time, time + length, has_audio);
/* Gain */
if (i->content->audio->gain() != 0) {
- shared_ptr<AudioBuffers> gain = make_shared<AudioBuffers> (all.audio);
+ shared_ptr<AudioBuffers> gain (new AudioBuffers (all.audio));
gain->apply_gain (i->content->audio->gain ());
all.audio = gain;
}
/* Remap channels */
- shared_ptr<AudioBuffers> dcp_mapped = make_shared<AudioBuffers> (_film->audio_channels(), all.audio->frames());
+ shared_ptr<AudioBuffers> dcp_mapped (new AudioBuffers (_film->audio_channels(), all.audio->frames()));
dcp_mapped->make_silent ();
AudioMapping map = j->mapping ();
for (int i = 0; i < map.input_channels(); ++i) {
scoped_ptr<DCPDecoder> decoder;
try {
- decoder.reset (new DCPDecoder (j, _film->log(), false));
+ decoder.reset (new DCPDecoder (j, _film->log()));
} catch (...) {
return a;
}