summaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2014-07-07 13:21:42 +0100
committerCarl Hetherington <cth@carlh.net>2014-07-07 13:21:42 +0100
commit42a122334d594b824c666e5263168386a76801cc (patch)
tree5cccae45529bd4b5d10ce5f85cf2c68eecbe8d45 /src/lib
parent0f20f8f31a5699f5afada954cd421a7701497298 (diff)
Initial hack to support 12-bit colour.
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/dcp_video_frame.cc2
-rw-r--r--src/lib/image.cc2
-rw-r--r--src/lib/player_video_frame.cc4
-rw-r--r--src/lib/player_video_frame.h5
4 files changed, 9 insertions, 4 deletions
diff --git a/src/lib/dcp_video_frame.cc b/src/lib/dcp_video_frame.cc
index 09b909696..c8f8c3cc5 100644
--- a/src/lib/dcp_video_frame.cc
+++ b/src/lib/dcp_video_frame.cc
@@ -127,7 +127,7 @@ DCPVideoFrame::encode_locally ()
}
shared_ptr<libdcp::XYZFrame> xyz = libdcp::rgb_to_xyz (
- _frame->image(),
+ _frame->image(AV_PIX_FMT_RGB48BE),
in_lut,
libdcp::GammaLUT::cache.get (16, 1 / _frame->colour_conversion().output_gamma),
matrix
diff --git a/src/lib/image.cc b/src/lib/image.cc
index f340637dc..1c6c02979 100644
--- a/src/lib/image.cc
+++ b/src/lib/image.cc
@@ -320,6 +320,8 @@ Image::make_black ()
case PIX_FMT_ABGR:
case PIX_FMT_BGRA:
case PIX_FMT_RGB555LE:
+ case PIX_FMT_RGB48LE:
+ case PIX_FMT_RGB48BE:
memset (data()[0], 0, lines(0) * stride()[0]);
break;
diff --git a/src/lib/player_video_frame.cc b/src/lib/player_video_frame.cc
index 94760e495..63ddc637b 100644
--- a/src/lib/player_video_frame.cc
+++ b/src/lib/player_video_frame.cc
@@ -84,7 +84,7 @@ PlayerVideoFrame::set_subtitle (shared_ptr<const Image> image, Position<int> pos
}
shared_ptr<Image>
-PlayerVideoFrame::image () const
+PlayerVideoFrame::image (AVPixelFormat pixel_format) const
{
shared_ptr<Image> im = _in->image ();
@@ -106,7 +106,7 @@ PlayerVideoFrame::image () const
break;
}
- shared_ptr<Image> out = im->crop_scale_window (total_crop, _inter_size, _out_size, _scaler, PIX_FMT_RGB24, false);
+ shared_ptr<Image> out = im->crop_scale_window (total_crop, _inter_size, _out_size, _scaler, pixel_format, false);
Position<int> const container_offset ((_out_size.width - _inter_size.width) / 2, (_out_size.height - _inter_size.width) / 2);
diff --git a/src/lib/player_video_frame.h b/src/lib/player_video_frame.h
index b085cb609..6a6868292 100644
--- a/src/lib/player_video_frame.h
+++ b/src/lib/player_video_frame.h
@@ -18,6 +18,9 @@
*/
#include <boost/shared_ptr.hpp>
+extern "C" {
+#include <libavutil/pixfmt.h>
+}
#include "types.h"
#include "position.h"
#include "colour_conversion.h"
@@ -40,7 +43,7 @@ public:
void set_subtitle (boost::shared_ptr<const Image>, Position<int>);
- boost::shared_ptr<Image> image () const;
+ boost::shared_ptr<Image> image (AVPixelFormat) const;
void add_metadata (xmlpp::Node* node) const;
void send_binary (boost::shared_ptr<Socket> socket) const;