}
}
+MonoPictureFrame::MonoPictureFrame ()
+{
+ _buffer = new ASDCP::JP2K::FrameBuffer (4 * Kumu::Megabyte);
+}
+
/** MonoPictureFrame destructor */
MonoPictureFrame::~MonoPictureFrame ()
{
return _buffer->RoData ();
}
+/** @return Pointer to JPEG2000 data */
+uint8_t *
+MonoPictureFrame::j2k_data ()
+{
+ return _buffer->Data ();
+}
+
/** @return Size of JPEG2000 data in bytes */
int
MonoPictureFrame::j2k_size () const
shared_ptr<ARGBFrame>
MonoPictureFrame::argb_frame (int reduce, float srgb_gamma) const
{
- return xyz_to_rgb (
+ return xyz_to_rgba (
decompress_j2k (const_cast<uint8_t*> (_buffer->RoData()), _buffer->Size(), reduce),
GammaLUT::cache.get (12, DCI_GAMMA, false), GammaLUT::cache.get (12, 1 / srgb_gamma, false)
);
}
+
+void
+MonoPictureFrame::rgb_frame (uint8_t* buffer) const
+{
+ xyz_to_rgb (
+ decompress_j2k (const_cast<uint8_t*> (_buffer->RoData()), _buffer->Size(), 0),
+ GammaLUT::cache.get (12, DCI_GAMMA, false), GammaLUT::cache.get (12, 1 / 2.4, false),
+ buffer
+ );
+}