Add new GLError constructor.
[dcpomatic.git] / src / lib / dcp_decoder.cc
index 566ed2935ccb10206df23acea28e49507f0f7728..59b44ae975ee5080c48ec6599535bf21d390c915 100644 (file)
@@ -67,7 +67,6 @@ using namespace dcpomatic;
 DCPDecoder::DCPDecoder (shared_ptr<const Film> film, shared_ptr<const DCPContent> c, bool fast, bool tolerant, shared_ptr<DCPDecoder> old)
        : DCP (c, tolerant)
        , Decoder (film)
-       , _decode_referenced (false)
 {
        if (c->can_be_played()) {
                if (c->video) {
@@ -125,7 +124,6 @@ DCPDecoder::DCPDecoder (shared_ptr<const Film> film, shared_ptr<const DCPContent
        set_decode_referenced (false);
 
        _reel = _reels.begin ();
-       _offset = 0;
        get_readers ();
 }
 
@@ -162,41 +160,35 @@ DCPDecoder::pass ()
                if (_mono_reader) {
                        video->emit (
                                film(),
-                               shared_ptr<ImageProxy> (
-                                       new J2KImageProxy (
-                                               _mono_reader->get_frame (entry_point + frame),
-                                               picture_asset->size(),
-                                               AV_PIX_FMT_XYZ12LE,
-                                               _forced_reduction
-                                               )
+                               std::make_shared<J2KImageProxy>(
+                                       _mono_reader->get_frame (entry_point + frame),
+                                       picture_asset->size(),
+                                       AV_PIX_FMT_XYZ12LE,
+                                       _forced_reduction
                                        ),
                                _offset + frame
                                );
                } else {
                        video->emit (
                                film(),
-                               shared_ptr<ImageProxy> (
-                                       new J2KImageProxy (
-                                               _stereo_reader->get_frame (entry_point + frame),
-                                               picture_asset->size(),
-                                               dcp::Eye::LEFT,
-                                               AV_PIX_FMT_XYZ12LE,
-                                               _forced_reduction
-                                               )
+                               std::make_shared<J2KImageProxy>(
+                                       _stereo_reader->get_frame (entry_point + frame),
+                                       picture_asset->size(),
+                                       dcp::Eye::LEFT,
+                                       AV_PIX_FMT_XYZ12LE,
+                                       _forced_reduction
                                        ),
                                _offset + frame
                                );
 
                        video->emit (
                                film(),
-                               shared_ptr<ImageProxy> (
-                                       new J2KImageProxy (
-                                               _stereo_reader->get_frame (entry_point + frame),
-                                               picture_asset->size(),
-                                               dcp::Eye::RIGHT,
-                                               AV_PIX_FMT_XYZ12LE,
-                                               _forced_reduction
-                                               )
+                               std::make_shared<J2KImageProxy>(
+                                       _stereo_reader->get_frame (entry_point + frame),
+                                       picture_asset->size(),
+                                       dcp::Eye::RIGHT,
+                                       AV_PIX_FMT_XYZ12LE,
+                                       _forced_reduction
                                        ),
                                _offset + frame
                                );
@@ -365,9 +357,11 @@ DCPDecoder::get_readers ()
                DCPOMATIC_ASSERT (mono || stereo);
                if (mono) {
                        _mono_reader = mono->start_read ();
+                       _mono_reader->set_check_hmac (false);
                        _stereo_reader.reset ();
                } else {
                        _stereo_reader = stereo->start_read ();
+                       _stereo_reader->set_check_hmac (false);
                        _mono_reader.reset ();
                }
        } else {
@@ -377,6 +371,7 @@ DCPDecoder::get_readers ()
 
        if ((*_reel)->main_sound()) {
                _sound_reader = (*_reel)->main_sound()->asset()->start_read ();
+               _sound_reader->set_check_hmac (false);
        } else {
                _sound_reader.reset ();
        }
@@ -384,6 +379,7 @@ DCPDecoder::get_readers ()
        if ((*_reel)->atmos()) {
                shared_ptr<dcp::AtmosAsset> asset = (*_reel)->atmos()->asset();
                _atmos_reader = asset->start_read();
+               _atmos_reader->set_check_hmac (false);
                _atmos_metadata = AtmosMetadata (asset);
        } else {
                _atmos_reader.reset ();