--- /dev/null
+/*
+ Copyright (C) 2012 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 "argb_frame.h"
+
+using namespace libdcp;
+
+ARGBFrame::ARGBFrame (int width, int height)
+ : _width (width)
+ , _height (height)
+{
+ _data = new uint8_t[width * height * 4];
+}
+
+
+ARGBFrame::~ARGBFrame ()
+{
+ delete[] _data;
+}
+
+int
+ARGBFrame::stride () const
+{
+ return _width * 4;
+}
--- /dev/null
+/*
+ Copyright (C) 2012 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 <stdint.h>
+
+namespace libdcp
+{
+
+class ARGBFrame
+{
+public:
+ ARGBFrame (int width, int height);
+ ~ARGBFrame ();
+
+ uint8_t* data () const {
+ return _data;
+ }
+
+ int stride () const;
+
+private:
+ int _width;
+ int _height;
+ uint8_t* _data;
+};
+
+}
#include "KM_fileio.h"
#include "picture_frame.h"
#include "exceptions.h"
-#include "rgba_frame.h"
+#include "argb_frame.h"
#include "lut.h"
using namespace std;
return _buffer->Size ();
}
-shared_ptr<RGBAFrame>
-PictureFrame::rgba_frame () const
+/** @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<ARGBFrame>
+PictureFrame::argb_frame () const
{
/* JPEG2000 -> decompressed XYZ */
int* xyz_y = xyz_frame->comps[1].data;
int* xyz_z = xyz_frame->comps[2].data;
- shared_ptr<RGBAFrame> rgba_frame (new RGBAFrame (xyz_frame->x1, xyz_frame->y1));
+ shared_ptr<ARGBFrame> argb_frame (new ARGBFrame (xyz_frame->x1, xyz_frame->y1));
- uint8_t* rgba = rgba_frame->data ();
+ uint8_t* argb = argb_frame->data ();
for (int y = 0; y < xyz_frame->y1; ++y) {
- uint8_t* rgba_line = rgba;
+ uint8_t* argb_line = argb;
for (int x = 0; x < xyz_frame->x1; ++x) {
assert (*xyz_x >= 0 && *xyz_y >= 0 && *xyz_z >= 0 && *xyz_x < 4096 && *xyz_x < 4096 && *xyz_z < 4096);
d.b = max (d.b, 0.0);
/* Out gamma LUT */
- *rgba_line++ = lut_out[(int) (d.r * COLOR_DEPTH)];
- *rgba_line++ = lut_out[(int) (d.g * COLOR_DEPTH)];
- *rgba_line++ = lut_out[(int) (d.b * COLOR_DEPTH)];
- *rgba_line++ = 0xff;
+ *argb_line++ = lut_out[(int) (d.b * COLOR_DEPTH)];
+ *argb_line++ = lut_out[(int) (d.g * COLOR_DEPTH)];
+ *argb_line++ = lut_out[(int) (d.r * COLOR_DEPTH)];
+ *argb_line++ = 0xff;
}
- rgba += rgba_frame->stride ();
+ argb += argb_frame->stride ();
}
opj_cio_close (cio);
opj_image_destroy (xyz_frame);
- return rgba_frame;
+ return argb_frame;
}
namespace libdcp {
-class RGBAFrame;
+class ARGBFrame;
class PictureFrame
{
uint8_t const * data () const;
int size () const;
- boost::shared_ptr<RGBAFrame> rgba_frame () const;
+ boost::shared_ptr<ARGBFrame> argb_frame () const;
private:
ASDCP::JP2K::FrameBuffer* _buffer;
+++ /dev/null
-/*
- Copyright (C) 2012 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 "rgba_frame.h"
-
-using namespace libdcp;
-
-RGBAFrame::RGBAFrame (int width, int height)
- : _width (width)
- , _height (height)
-{
- _data = new uint8_t[width * height * 4];
-}
-
-
-RGBAFrame::~RGBAFrame ()
-{
- delete[] _data;
-}
-
-int
-RGBAFrame::stride () const
-{
- return _width * 4;
-}
+++ /dev/null
-/*
- Copyright (C) 2012 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 <stdint.h>
-
-namespace libdcp
-{
-
-class RGBAFrame
-{
-public:
- RGBAFrame (int width, int height);
- ~RGBAFrame ();
-
- uint8_t* data () const {
- return _data;
- }
-
- int stride () const;
-
-private:
- int _width;
- int _height;
- uint8_t* _data;
-};
-
-}
picture_frame.cc
pkl.cc
reel.cc
- rgba_frame.cc
+ argb_frame.cc
sound_asset.cc
sound_frame.cc
subtitle_asset.cc
picture_asset.h
picture_frame.h
reel.h
- rgba_frame.h
+ argb_frame.h
sound_asset.h
sound_frame.h
subtitle_asset.h