summaryrefslogtreecommitdiff
path: root/src/lib/player_video.cc
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2014-07-10 09:40:56 +0100
committerCarl Hetherington <cth@carlh.net>2014-07-10 09:40:56 +0100
commit53a18f3564b6dcd431e44b01ab2a505be135d2b7 (patch)
tree633b1afa240e71a5a329503be8fc6092d7ec3a0a /src/lib/player_video.cc
parent63f506966cc4e9c459b3bcb430a11481f9d3a24a (diff)
Basics of direct write of J2K data without encode/decode.
Diffstat (limited to 'src/lib/player_video.cc')
-rw-r--r--src/lib/player_video.cc25
1 files changed, 24 insertions, 1 deletions
diff --git a/src/lib/player_video.cc b/src/lib/player_video.cc
index d1b394933..a44264ced 100644
--- a/src/lib/player_video.cc
+++ b/src/lib/player_video.cc
@@ -21,12 +21,14 @@
#include "player_video.h"
#include "image.h"
#include "image_proxy.h"
+#include "j2k_image_proxy.h"
#include "scaler.h"
using std::string;
using std::cout;
-using boost::shared_ptr;
using dcp::raw_convert;
+using boost::shared_ptr;
+using boost::dynamic_pointer_cast;
PlayerVideo::PlayerVideo (
shared_ptr<const ImageProxy> in,
@@ -148,3 +150,24 @@ PlayerVideo::send_binary (shared_ptr<Socket> socket, bool send_subtitles) const
_subtitle.image->write_to_socket (socket);
}
}
+
+bool
+PlayerVideo::has_j2k () const
+{
+ /* XXX: burnt-in subtitle; maybe other things */
+
+ shared_ptr<const J2KImageProxy> j2k = dynamic_pointer_cast<const J2KImageProxy> (_in);
+ if (!j2k) {
+ return false;
+ }
+
+ return _crop == Crop () && _inter_size == j2k->size();
+}
+
+shared_ptr<EncodedData>
+PlayerVideo::j2k () const
+{
+ shared_ptr<const J2KImageProxy> j2k = dynamic_pointer_cast<const J2KImageProxy> (_in);
+ assert (j2k);
+ return j2k->j2k ();
+}