summaryrefslogtreecommitdiff
path: root/src/lib/player_video.h
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2018-02-24 01:05:14 +0000
committerCarl Hetherington <cth@carlh.net>2018-02-24 23:35:11 +0000
commit14cccb179fff7bbbf422e13f9d2e3264239c93c7 (patch)
tree15b8c2f07965f22aabd3fcfa0494ffa51d8e09e6 /src/lib/player_video.h
parent63eb29920980dfecf4c5f06a1746dad830b7ea32 (diff)
Speed some operations by re-using the last PlayerVideo but with
updated metadata (where possible). Helps with #1194.
Diffstat (limited to 'src/lib/player_video.h')
-rw-r--r--src/lib/player_video.h11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/lib/player_video.h b/src/lib/player_video.h
index a6e39d66e..7cc00f46b 100644
--- a/src/lib/player_video.h
+++ b/src/lib/player_video.h
@@ -30,6 +30,7 @@ extern "C" {
#include <libavutil/pixfmt.h>
}
#include <boost/shared_ptr.hpp>
+#include <boost/weak_ptr.hpp>
class Image;
class ImageProxy;
@@ -50,7 +51,9 @@ public:
dcp::Size,
Eyes,
Part,
- boost::optional<ColourConversion>
+ boost::optional<ColourConversion>,
+ boost::weak_ptr<Content>,
+ boost::optional<Frame>
);
PlayerVideo (boost::shared_ptr<cxml::Node>, boost::shared_ptr<Socket>);
@@ -68,6 +71,8 @@ public:
void add_metadata (xmlpp::Node* node) const;
void send_binary (boost::shared_ptr<Socket> socket) const;
+ void reset_metadata (dcp::Size video_container_size, dcp::Size film_frame_size);
+
bool has_j2k () const;
dcp::Data j2k () const;
@@ -105,6 +110,10 @@ private:
Part _part;
boost::optional<ColourConversion> _colour_conversion;
boost::optional<PositionImage> _subtitle;
+ /** Content that we came from. This is so that reset_metadata() can work */
+ boost::weak_ptr<Content> _content;
+ /** Video frame that we came from. Again, this is for reset_metadata() */
+ boost::optional<Frame> _video_frame;
};
#endif