diff options
| author | Carl Hetherington <cth@carlh.net> | 2015-02-02 22:33:27 +0000 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2015-02-02 22:33:27 +0000 |
| commit | 989f182558193a51e0a26603fb2ca59f827216a0 (patch) | |
| tree | 7d2b2511967e5417838a4343341e5aa9d26cf2b8 /src | |
| parent | 0d7fe66361a40702cb97357955cf35256f1d2c26 (diff) | |
Remove Image and ARGBImage and just dump RGB data into
uint8_t* buffers. This is hopefully simpler than trying
to come up with some Image hierarchy that suits everything.
Diffstat (limited to 'src')
| -rw-r--r-- | src/argb_image.cc | 49 | ||||
| -rw-r--r-- | src/argb_image.h | 71 | ||||
| -rw-r--r-- | src/image.cc | 47 | ||||
| -rw-r--r-- | src/image.h | 46 | ||||
| -rw-r--r-- | src/mono_picture_frame.cc | 27 | ||||
| -rw-r--r-- | src/mono_picture_frame.h | 7 | ||||
| -rw-r--r-- | src/rgb_xyz.cc | 89 | ||||
| -rw-r--r-- | src/rgb_xyz.h | 15 | ||||
| -rw-r--r-- | src/stereo_picture_frame.cc | 36 | ||||
| -rw-r--r-- | src/stereo_picture_frame.h | 9 | ||||
| -rw-r--r-- | src/types.h | 23 | ||||
| -rw-r--r-- | src/util.cc | 1 | ||||
| -rw-r--r-- | src/util.h | 23 | ||||
| -rw-r--r-- | src/wscript | 4 |
14 files changed, 102 insertions, 345 deletions
diff --git a/src/argb_image.cc b/src/argb_image.cc deleted file mode 100644 index 79dcd85a..00000000 --- a/src/argb_image.cc +++ /dev/null @@ -1,49 +0,0 @@ -/* - Copyright (C) 2012-2015 Carl Hetherington <cth@carlh.net> - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - -*/ - -/** @file src/argb_image.cc - * @brief ARGBImage class. - */ - -#include "argb_image.h" - -using namespace dcp; - -/** Construct an empty ARGBImage of a given size and with - * undefined contents. - * @param size Size in pixels. - */ -ARGBImage::ARGBImage (Size size) - : _size (size) -{ - _data = new uint8_t[_size.width * _size.height * 4]; -} - - -ARGBImage::~ARGBImage () -{ - delete[] _data; -} - -/** @return The stride, in bytes; that is, the number of bytes per row of the image */ -int -ARGBImage::stride () const -{ - return _size.width * 4; -} diff --git a/src/argb_image.h b/src/argb_image.h deleted file mode 100644 index 805d0a22..00000000 --- a/src/argb_image.h +++ /dev/null @@ -1,71 +0,0 @@ -/* - Copyright (C) 2012-2014 Carl Hetherington <cth@carlh.net> - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - -*/ - -/** @file src/argb_image.h - * @brief ARGBImage class. - */ - -#include "util.h" -#include <stdint.h> - -namespace dcp -{ - -/** @class ARGBImage - * @brief A single frame of picture data held in an ARGB buffer. - * - * The format of the data is: - * - * <pre> - * Byte /- 0 -------|- 1 --------|- 2 --------|- 3 --------|- 4 --------|- 5 --------| ... - * |(0, 0) Blue|(0, 0)Green |(0, 0) Red |(0, 0) Alpha|(0, 1) Blue |(0, 1) Green| ... - * </pre> - * - * So that the first byte is the blue component of the pixel at x=0, y=0, the second - * is the green component, and so on. - * - * Lines are packed so that the second row directly follows the first. - * - * XXX: this should probably be an Image...? - */ -class ARGBImage : boost::noncopyable -{ -public: - ARGBImage (Size size); - ~ARGBImage (); - - /** @return pointer to the image data */ - uint8_t* data () const { - return _data; - } - - /** @return length of one picture row in bytes */ - int stride () const; - - /** @return size of the picture in pixels */ - Size size () const { - return _size; - } - -private: - Size _size; ///< frame size in pixels - uint8_t* _data; ///< pointer to image data -}; - -} diff --git a/src/image.cc b/src/image.cc deleted file mode 100644 index 15ff24dc..00000000 --- a/src/image.cc +++ /dev/null @@ -1,47 +0,0 @@ -/* - Copyright (C) 2012-2014 Carl Hetherington <cth@carlh.net> - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - -*/ - -#include "image.h" - -using boost::shared_ptr; -using namespace dcp; - -Image::Image (Size s) - : _size (s) -{ - -} - -Image::Image (Image const & other) - : _size (other._size) -{ - -} - -Image::Image (boost::shared_ptr<const Image> other) - : _size (other->_size) -{ - -} - -void -Image::swap (Image& other) -{ - std::swap (_size, other._size); -} diff --git a/src/image.h b/src/image.h deleted file mode 100644 index 7033564f..00000000 --- a/src/image.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - Copyright (C) 2012-2014 Carl Hetherington <cth@carlh.net> - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - -*/ - -#include "util.h" - -namespace dcp { - -class Image -{ -public: - Image (Size); - Image (Image const &); - Image (boost::shared_ptr<const Image>); - - virtual ~Image () {} - virtual uint8_t * const * data () const = 0; - /** @return array of strides in bytes */ - virtual int const * stride () const = 0; - - Size size () const { - return _size; - } - -protected: - virtual void swap (Image& other); - - Size _size; -}; - -} diff --git a/src/mono_picture_frame.cc b/src/mono_picture_frame.cc index 1edfd411..689a8b21 100644 --- a/src/mono_picture_frame.cc +++ b/src/mono_picture_frame.cc @@ -23,7 +23,6 @@ #include "mono_picture_frame.h" #include "exceptions.h" -#include "argb_image.h" #include "util.h" #include "rgb_xyz.h" #include "colour_conversion.h" @@ -112,29 +111,9 @@ MonoPictureFrame::j2k_size () const /** @param reduce a factor by which to reduce the resolution * of the image, expressed as a power of two (pass 0 for no * reduction). - * @param srgb_gamma Reciprocal of output gamma to use after - * the conversion from XYZ to RGB. - * - * @return An ARGB representation of this frame. This is ARGB in the - * Cairo sense, so that each pixel takes up 4 bytes; the first byte - * is blue, second green, third red and fourth alpha (always 255). */ -shared_ptr<ARGBImage> -MonoPictureFrame::argb_image (int reduce) const +shared_ptr<XYZImage> +MonoPictureFrame::xyz_image (int reduce) const { - return xyz_to_rgba ( - decompress_j2k (const_cast<uint8_t*> (_buffer->RoData()), _buffer->Size(), reduce), - ColourConversion::xyz_to_srgb () - ); -} - -void -MonoPictureFrame::rgb_frame (shared_ptr<Image> rgb, optional<NoteHandler> note) const -{ - xyz_to_rgb ( - decompress_j2k (const_cast<uint8_t*> (_buffer->RoData()), _buffer->Size(), 0), - ColourConversion::xyz_to_srgb (), - rgb, - note - ); + return decompress_j2k (const_cast<uint8_t*> (_buffer->RoData()), _buffer->Size(), reduce); } diff --git a/src/mono_picture_frame.h b/src/mono_picture_frame.h index c9183a12..91089262 100644 --- a/src/mono_picture_frame.h +++ b/src/mono_picture_frame.h @@ -38,8 +38,7 @@ namespace ASDCP { namespace dcp { -class ARGBImage; -class Image; +class XYZImage; /** @class MonoPictureFrame * @brief A single frame of a 2D (monoscopic) picture asset. @@ -52,8 +51,8 @@ public: MonoPictureFrame (); ~MonoPictureFrame (); - boost::shared_ptr<ARGBImage> argb_image (int reduce = 0) const; - void rgb_frame (boost::shared_ptr<Image> rgb, boost::optional<NoteHandler> note = boost::optional<NoteHandler> ()) const; + boost::shared_ptr<XYZImage> xyz_image (int reduce = 0) const; + uint8_t const * j2k_data () const; uint8_t* j2k_data (); int j2k_size () const; diff --git a/src/rgb_xyz.cc b/src/rgb_xyz.cc index f44b1a30..97755b78 100644 --- a/src/rgb_xyz.cc +++ b/src/rgb_xyz.cc @@ -18,9 +18,7 @@ */ #include "rgb_xyz.h" -#include "argb_image.h" #include "xyz_image.h" -#include "image.h" #include "colour_matrix.h" #include "colour_conversion.h" #include "transfer_function.h" @@ -36,14 +34,26 @@ using namespace dcp; #define DCI_COEFFICIENT (48.0 / 52.37) -/** Convert an openjpeg XYZ image to RGBA. +/** Convert an XYZ image to RGBA. * @param xyz_image Image in XYZ. - * @return RGB image. + * @param conversion Colour conversion to use. + * @param argb Buffer to fill with RGBA data. The format of the data is: + * + * <pre> + * Byte /- 0 -------|- 1 --------|- 2 --------|- 3 --------|- 4 --------|- 5 --------| ... + * |(0, 0) Blue|(0, 0)Green |(0, 0) Red |(0, 0) Alpha|(0, 1) Blue |(0, 1) Green| ... + * </pre> + * + * So that the first byte is the blue component of the pixel at x=0, y=0, the second + * is the green component, and so on. + * + * Lines are packed so that the second row directly follows the first. */ -shared_ptr<ARGBImage> +void dcp::xyz_to_rgba ( boost::shared_ptr<const XYZImage> xyz_image, - ColourConversion const & conversion + ColourConversion const & conversion, + uint8_t* argb ) { int const max_colour = pow (2, 12) - 1; @@ -60,16 +70,16 @@ dcp::xyz_to_rgba ( int* xyz_y = xyz_image->data (1); int* xyz_z = xyz_image->data (2); - shared_ptr<ARGBImage> argb_image (new ARGBImage (xyz_image->size ())); - uint8_t* argb = argb_image->data (); - double const * lut_in = conversion.in()->lut (16); double const * lut_out = conversion.out()->lut (12); boost::numeric::ublas::matrix<double> matrix = conversion.matrix (); - for (int y = 0; y < xyz_image->size().height; ++y) { + int const height = xyz_image->size().height; + int const width = xyz_image->size().width; + + for (int y = 0; y < height; ++y) { uint8_t* argb_line = argb; - for (int x = 0; x < xyz_image->size().width; ++x) { + for (int x = 0; x < width; ++x) { DCP_ASSERT (*xyz_x >= 0 && *xyz_y >= 0 && *xyz_z >= 0 && *xyz_x < 4096 && *xyz_y < 4096 && *xyz_z < 4096); @@ -103,26 +113,27 @@ dcp::xyz_to_rgba ( *argb_line++ = lut_out[int(rint(d.r * max_colour))] * 0xff; *argb_line++ = 0xff; } - - argb += argb_image->stride (); - } - return argb_image; + /* 4 bytes per pixel */ + argb += width * 4; + } } -/** Convert an openjpeg XYZ image to RGB. +/** Convert an XYZ image to 48bpp RGB. * @param xyz_image Frame in XYZ. * @param conversion Colour conversion to use. - * @param rgb Image to write RGB data to; must have space to be - * filled with packed RGB 16:16:16, 48bpp, 16R, 16G, 16B, - * with the 2-byte value for each R/G/B component stored as - * little-endian; i.e. AV_PIX_FMT_RGB48LE. + * @param rgb Buffer to fill with RGB data. Format is packed RGB + * 16:16:16, 48bpp, 16R, 16G, 16B, with the 2-byte value for each + * R/G/B component stored as little-endian; i.e. AV_PIX_FMT_RGB48LE. + * @param stride Stride for RGB data in bytes. + * @param note Optional handler for any notes that may be made during the conversion (e.g. when clamping occurs). */ void dcp::xyz_to_rgb ( shared_ptr<const XYZImage> xyz_image, ColourConversion const & conversion, - shared_ptr<Image> rgb, + uint8_t* rgb, + int stride, optional<NoteHandler> note ) { @@ -144,7 +155,7 @@ dcp::xyz_to_rgb ( boost::numeric::ublas::matrix<double> matrix = conversion.matrix (); for (int y = 0; y < xyz_image->size().height; ++y) { - uint16_t* rgb_line = reinterpret_cast<uint16_t*> (rgb->data()[0] + y * rgb->stride()[0]); + uint16_t* rgb_line = reinterpret_cast<uint16_t*> (rgb + y * stride); for (int x = 0; x < xyz_image->size().width; ++x) { int cx = *xyz_x++; @@ -203,16 +214,21 @@ dcp::xyz_to_rgb ( } } -/** rgb must be packed RGB 16:16:16, 48bpp, 16R, 16G, 16B, with the 2-byte value for each R/G/B component stored as little-endian; - * i.e. AV_PIX_FMT_RGB48LE. +/** @param rgb RGB data; packed RGB 16:16:16, 48bpp, 16R, 16G, 16B, + * with the 2-byte value for each R/G/B component stored as + * little-endian; i.e. AV_PIX_FMT_RGB48LE. + * @param size of RGB image in pixels. + * @param stride of RGB data in bytes. */ shared_ptr<dcp::XYZImage> dcp::rgb_to_xyz ( - boost::shared_ptr<const Image> rgb, + uint8_t const * rgb, + dcp::Size size, + int stride, ColourConversion const & conversion ) { - shared_ptr<XYZImage> xyz (new XYZImage (rgb->size ())); + shared_ptr<XYZImage> xyz (new XYZImage (size)); struct { double r, g, b; @@ -227,9 +243,9 @@ dcp::rgb_to_xyz ( boost::numeric::ublas::matrix<double> matrix = conversion.matrix (); int jn = 0; - for (int y = 0; y < rgb->size().height; ++y) { - uint16_t* p = reinterpret_cast<uint16_t*> (rgb->data()[0] + y * rgb->stride()[0]); - for (int x = 0; x < rgb->size().width; ++x) { + for (int y = 0; y < size.height; ++y) { + uint16_t const * p = reinterpret_cast<uint16_t const *> (rgb + y * stride); + for (int x = 0; x < size.width; ++x) { /* In gamma LUT (converting 16-bit to 12-bit) */ s.r = lut_in[*p++ >> 4]; @@ -263,18 +279,19 @@ dcp::rgb_to_xyz ( } -/** Image must be packed RGB 16:16:16, 48bpp, 16R, 16G, 16B, with the 2-byte value for each R/G/B component stored as little-endian; - * i.e. AV_PIX_FMT_RGB48LE. +/** @param xyz_16 XYZ image data in packed 16:16:16, 48bpp, 16X, 16Y, + * 16Z, with the 2-byte value for each X/Y/Z component stored as + * little-endian. */ shared_ptr<dcp::XYZImage> -dcp::xyz_to_xyz (shared_ptr<const Image> xyz_16) +dcp::xyz_to_xyz (uint8_t const * xyz_16, dcp::Size size, int stride) { - shared_ptr<XYZImage> xyz_12 (new XYZImage (xyz_16->size ())); + shared_ptr<XYZImage> xyz_12 (new XYZImage (size)); int jn = 0; - for (int y = 0; y < xyz_16->size().height; ++y) { - uint16_t* p = reinterpret_cast<uint16_t*> (xyz_16->data()[0] + y * xyz_16->stride()[0]); - for (int x = 0; x < xyz_16->size().width; ++x) { + for (int y = 0; y < size.height; ++y) { + uint16_t const * p = reinterpret_cast<uint16_t const *> (xyz_16 + y * stride); + for (int x = 0; x < size.width; ++x) { /* Truncate 16-bit to 12-bit */ xyz_12->data(0)[jn] = *p++ >> 4; xyz_12->data(1)[jn] = *p++ >> 4; diff --git a/src/rgb_xyz.h b/src/rgb_xyz.h index cd0125cb..5d1a4d17 100644 --- a/src/rgb_xyz.h +++ b/src/rgb_xyz.h @@ -29,14 +29,21 @@ class XYZImage; class Image; class ColourConversion; -extern boost::shared_ptr<ARGBImage> xyz_to_rgba (boost::shared_ptr<const XYZImage>, ColourConversion const & conversion); +extern void xyz_to_rgba ( + boost::shared_ptr<const XYZImage>, + ColourConversion const & conversion, + uint8_t* rgba + ); + extern void xyz_to_rgb ( boost::shared_ptr<const XYZImage>, ColourConversion const & conversion, - boost::shared_ptr<Image> rgb, + uint8_t* rgb, + int stride, boost::optional<NoteHandler> note = boost::optional<NoteHandler> () ); -extern boost::shared_ptr<XYZImage> rgb_to_xyz (boost::shared_ptr<const Image>, ColourConversion const & conversion); -extern boost::shared_ptr<XYZImage> xyz_to_xyz (boost::shared_ptr<const Image>); + +extern boost::shared_ptr<XYZImage> rgb_to_xyz (uint8_t const * rgb, dcp::Size size, int stride, ColourConversion const & conversion); +extern boost::shared_ptr<XYZImage> xyz_to_xyz (uint8_t const * xyz, dcp::Size size, int stride); } diff --git a/src/stereo_picture_frame.cc b/src/stereo_picture_frame.cc index 0eae7583..ac7d7bf1 100644 --- a/src/stereo_picture_frame.cc +++ b/src/stereo_picture_frame.cc @@ -19,7 +19,6 @@ #include "stereo_picture_frame.h" #include "exceptions.h" -#include "argb_image.h" #include "util.h" #include "rgb_xyz.h" #include "colour_conversion.h" @@ -67,43 +66,18 @@ StereoPictureFrame::~StereoPictureFrame () * @param reduce a factor by which to reduce the resolution * of the image, expressed as a power of two (pass 0 for no * reduction). - * - * @return An ARGB representation of one of the eyes (left or right) - * of this frame. This is ARGB in the Cairo sense, so that each - * pixel takes up 4 bytes; the first byte is blue, second green, - * third red and fourth alpha (always 255). - * */ -shared_ptr<ARGBImage> -StereoPictureFrame::argb_image (Eye eye, int reduce) const +shared_ptr<XYZImage> +StereoPictureFrame::xyz_image (Eye eye, int reduce) const { - shared_ptr<XYZImage> xyz_image; switch (eye) { case LEFT: - xyz_image = decompress_j2k (const_cast<uint8_t*> (_buffer->Left.RoData()), _buffer->Left.Size(), reduce); - break; + return decompress_j2k (const_cast<uint8_t*> (_buffer->Left.RoData()), _buffer->Left.Size(), reduce); case RIGHT: - xyz_image = decompress_j2k (const_cast<uint8_t*> (_buffer->Right.RoData()), _buffer->Right.Size(), reduce); - break; + return decompress_j2k (const_cast<uint8_t*> (_buffer->Right.RoData()), _buffer->Right.Size(), reduce); } - return xyz_to_rgba (xyz_image, ColourConversion::xyz_to_srgb ()); -} - -void -StereoPictureFrame::rgb_frame (Eye eye, shared_ptr<Image> image) const -{ - shared_ptr<XYZImage> xyz_image; - switch (eye) { - case LEFT: - xyz_image = decompress_j2k (const_cast<uint8_t*> (_buffer->Left.RoData()), _buffer->Left.Size(), 0); - break; - case RIGHT: - xyz_image = decompress_j2k (const_cast<uint8_t*> (_buffer->Right.RoData()), _buffer->Right.Size(), 0); - break; - } - - return xyz_to_rgb (xyz_image, ColourConversion::xyz_to_srgb (), image); + return shared_ptr<XYZImage> (); } uint8_t const * diff --git a/src/stereo_picture_frame.h b/src/stereo_picture_frame.h index ba78d922..0aeb6849 100644 --- a/src/stereo_picture_frame.h +++ b/src/stereo_picture_frame.h @@ -28,13 +28,11 @@ namespace ASDCP { namespace JP2K { struct SFrameBuffer; } - class AESDecContext; } namespace dcp { -class ARGBImage; -class Image; +class XYZImage; /** A single frame of a 3D (stereoscopic) picture asset */ class StereoPictureFrame : public boost::noncopyable @@ -44,11 +42,12 @@ public: StereoPictureFrame (); ~StereoPictureFrame (); - boost::shared_ptr<ARGBImage> argb_image (Eye eye, int reduce = 0) const; - void rgb_frame (Eye eye, boost::shared_ptr<Image>) const; + boost::shared_ptr<XYZImage> xyz_image (Eye eye, int reduce = 0) const; + uint8_t const * left_j2k_data () const; uint8_t* left_j2k_data (); int left_j2k_size () const; + uint8_t const * right_j2k_data () const; uint8_t* right_j2k_data (); int right_j2k_size () const; diff --git a/src/types.h b/src/types.h index 594bd7b7..4c303e0d 100644 --- a/src/types.h +++ b/src/types.h @@ -35,6 +35,29 @@ namespace parse { class AssetMap; } +/** @struct Size + * @brief The integer, two-dimensional size of something. + */ +struct Size +{ + Size () + : width (0) + , height (0) + {} + + Size (int w, int h) + : width (w) + , height (h) + {} + + float ratio () const { + return float (width) / height; + } + + int width; + int height; +}; + /** Identifier for a sound channel */ enum Channel { LEFT = 0, ///< left diff --git a/src/util.cc b/src/util.cc index 89b563ae..044801b7 100644 --- a/src/util.cc +++ b/src/util.cc @@ -24,7 +24,6 @@ #include "util.h" #include "exceptions.h" #include "types.h" -#include "argb_image.h" #include "certificates.h" #include "xyz_image.h" #include "dcp_assert.h" @@ -43,29 +43,6 @@ class ARGBImage; class CertificateChain; class GammaLUT; class XYZImage; - -/** @struct Size - * @brief The integer, two-dimensional size of something. - */ -struct Size -{ - Size () - : width (0) - , height (0) - {} - - Size (int w, int h) - : width (w) - , height (h) - {} - - float ratio () const { - return float (width) / height; - } - - int width; - int height; -}; extern bool operator== (Size const & a, Size const & b); extern bool operator!= (Size const & a, Size const & b); diff --git a/src/wscript b/src/wscript index af7b823e..f85b0032 100644 --- a/src/wscript +++ b/src/wscript @@ -2,7 +2,6 @@ from waflib import TaskGen def build(bld): source = """ - argb_image.cc asset.cc certificate_chain.cc certificates.cc @@ -19,7 +18,6 @@ def build(bld): file.cc font.cc gamma_transfer_function.cc - image.cc interop_load_font.cc interop_subtitle_content.cc key.cc @@ -78,7 +76,6 @@ def build(bld): encrypted_kdm.h exceptions.h gamma_transfer_function.h - image.h interop_load_font.h interop_subtitle_content.h key.h @@ -104,7 +101,6 @@ def build(bld): reel_stereo_picture_asset.h reel_subtitle_asset.h ref.h - argb_image.h signer.h smpte_load_font.h smpte_subtitle_content.h |
