diff options
| author | Carl Hetherington <cth@carlh.net> | 2014-07-07 13:21:42 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2014-07-07 13:21:42 +0100 |
| commit | 42a122334d594b824c666e5263168386a76801cc (patch) | |
| tree | 5cccae45529bd4b5d10ce5f85cf2c68eecbe8d45 /src/lib | |
| parent | 0f20f8f31a5699f5afada954cd421a7701497298 (diff) | |
Initial hack to support 12-bit colour.
Diffstat (limited to 'src/lib')
| -rw-r--r-- | src/lib/dcp_video_frame.cc | 2 | ||||
| -rw-r--r-- | src/lib/image.cc | 2 | ||||
| -rw-r--r-- | src/lib/player_video_frame.cc | 4 | ||||
| -rw-r--r-- | src/lib/player_video_frame.h | 5 |
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; |
