Improve efficiency of DCP -> image decoding.
authorCarl Hetherington <cth@carlh.net>
Mon, 2 Feb 2015 18:46:58 +0000 (18:46 +0000)
committerCarl Hetherington <cth@carlh.net>
Mon, 2 Feb 2015 18:46:58 +0000 (18:46 +0000)
cscript
src/lib/dcp_examiner.cc
src/lib/j2k_image_proxy.cc

diff --git a/cscript b/cscript
index 2fcfe454d96ea2367ca0c124cf29de3bbf81df1a..5e2168944be1c1f1076b469acf60a943762f2864 100644 (file)
--- a/cscript
+++ b/cscript
@@ -156,7 +156,7 @@ def make_control(debian_version, bits, filename, debug):
 
 def dependencies(target):
     return (('ffmpeg-cdist', 'f69bb08'),
-            ('libdcp', 'a8d0450'),
+            ('libdcp', '923d5a1'),
             ('libsub', 'f66b11f'))
 
 def build(target, options):
index de7e9539976c08ff94c7dae4c567b625adb92197..35be422c1685722ef43bda20cd467721af41b9e9 100644 (file)
@@ -120,9 +120,9 @@ DCPExaminer::DCPExaminer (shared_ptr<const DCPContent> content)
                        shared_ptr<Image> image (new Image (PIX_FMT_RGB48LE, _video_size.get(), false));
                        
                        if (mono) {
-                               mono->get_frame(0)->rgb_frame (reinterpret_cast<uint16_t*> (image->data()[0]));
+                               mono->get_frame(0)->rgb_frame (image);
                        } else {
-                               stereo->get_frame(0)->rgb_frame (dcp::EYE_LEFT, reinterpret_cast<uint16_t*> (image->data()[0]));
+                               stereo->get_frame(0)->rgb_frame (dcp::EYE_LEFT, image);
                        }
                        
                }
index 09eaa4695beff11a0ba446c074b6cb0ab99f1145..2c4a2db5b1763e89611d1c6d3bcc9242bb6b1711 100644 (file)
@@ -77,15 +77,15 @@ J2KImageProxy::J2KImageProxy (shared_ptr<cxml::Node> xml, shared_ptr<Socket> soc
 shared_ptr<Image>
 J2KImageProxy::image (optional<dcp::NoteHandler> note) const
 {
-       shared_ptr<Image> image (new Image (PIX_FMT_RGB48LE, _size, false));
+       shared_ptr<Image> image (new Image (PIX_FMT_RGB48LE, _size, true));
 
        if (_mono) {
-               _mono->rgb_frame (reinterpret_cast<uint16_t*> (image->data()[0]), note);
+               _mono->rgb_frame (image, note);
        } else {
-               _stereo->rgb_frame (_eye, reinterpret_cast<uint16_t*> (image->data()[0]));
+               _stereo->rgb_frame (_eye, image);
        }
 
-       return shared_ptr<Image> (new Image (image, true));
+       return image;
 }
 
 void