Make terminate_threads() less likely to leave _threads containing invalid pointers.
[dcpomatic.git] / src / lib / raw_image_proxy.cc
index 0da547d0aa598740eb2bdc30bc163a7d6824015f..21201faa69264826db4129b7db3eaccb931e10c1 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (C) 2014 Carl Hetherington <cth@carlh.net>
+    Copyright (C) 2014-2018 Carl Hetherington <cth@carlh.net>
 
     This file is part of DCP-o-matic.
 
@@ -20,7 +20,7 @@
 
 #include "raw_image_proxy.h"
 #include "image.h"
-#include "raw_convert.h"
+#include <dcp/raw_convert.h>
 #include <dcp/util.h>
 #include <libcxml/cxml.h>
 extern "C" {
@@ -31,9 +31,12 @@ extern "C" {
 #include "i18n.h"
 
 using std::string;
+using std::pair;
+using std::make_pair;
 using boost::shared_ptr;
 using boost::dynamic_pointer_cast;
 using boost::optional;
+using dcp::raw_convert;
 
 RawImageProxy::RawImageProxy (shared_ptr<Image> image)
        : _image (image)
@@ -51,10 +54,10 @@ RawImageProxy::RawImageProxy (shared_ptr<cxml::Node> xml, shared_ptr<Socket> soc
        _image->read_from_socket (socket);
 }
 
-shared_ptr<Image>
-RawImageProxy::image (optional<dcp::NoteHandler>) const
+pair<shared_ptr<Image>, int>
+RawImageProxy::image (optional<dcp::Size>) const
 {
-       return _image;
+       return make_pair (_image, 0);
 }
 
 void
@@ -63,7 +66,7 @@ RawImageProxy::add_metadata (xmlpp::Node* node) const
        node->add_child("Type")->add_child_text (N_("Raw"));
        node->add_child("Width")->add_child_text (raw_convert<string> (_image->size().width));
        node->add_child("Height")->add_child_text (raw_convert<string> (_image->size().height));
-       node->add_child("PixelFormat")->add_child_text (raw_convert<string> (_image->pixel_format ()));
+       node->add_child("PixelFormat")->add_child_text (raw_convert<string> (static_cast<int> (_image->pixel_format ())));
 }
 
 void
@@ -80,11 +83,11 @@ RawImageProxy::same (shared_ptr<const ImageProxy> other) const
                return false;
        }
 
-       return (*_image.get()) == (*rp->image().get());
+       return (*_image.get()) == (*rp->image().first.get());
 }
 
-AVPixelFormat
-RawImageProxy::pixel_format () const
+size_t
+RawImageProxy::memory_used () const
 {
-       return _image->pixel_format ();
+       return _image->memory_used ();
 }