summaryrefslogtreecommitdiff
path: root/source/dng_simple_image.cpp
diff options
context:
space:
mode:
authorKinan Hakim <kinan@google.com>2015-12-17 13:11:06 +0100
committerKinan Hakim <kinan@google.com>2015-12-18 10:33:53 +0100
commit6e09dfbee0b1643a5cb2b32d0399c1a0c69551a0 (patch)
treedf296b288b8669379de737cebc294400593ff3bd /source/dng_simple_image.cpp
parentffee7a66caebb7027d7591405e8494e3c9e8517e (diff)
downloaddng_sdk-6e09dfbee0b1643a5cb2b32d0399c1a0c69551a0.tar.gz
Add Google security patches to dng_sdk
Change-Id: Id7f4dea009b3842f9a00d4a7e80d0bd286547e79
Diffstat (limited to 'source/dng_simple_image.cpp')
-rw-r--r--source/dng_simple_image.cpp381
1 files changed, 184 insertions, 197 deletions
diff --git a/source/dng_simple_image.cpp b/source/dng_simple_image.cpp
index 03b5b59..46d0011 100644
--- a/source/dng_simple_image.cpp
+++ b/source/dng_simple_image.cpp
@@ -1,197 +1,184 @@
-/*****************************************************************************/
-// Copyright 2006-2008 Adobe Systems Incorporated
-// All Rights Reserved.
-//
-// NOTICE: Adobe permits you to use, modify, and distribute this file in
-// accordance with the terms of the Adobe license agreement accompanying it.
-/*****************************************************************************/
-
-/* $Id: //mondo/dng_sdk_1_4/dng_sdk/source/dng_simple_image.cpp#1 $ */
-/* $DateTime: 2012/05/30 13:28:51 $ */
-/* $Change: 832332 $ */
-/* $Author: tknoll $ */
-
-/*****************************************************************************/
-
-#include "dng_simple_image.h"
-
-#include "dng_memory.h"
-#include "dng_orientation.h"
-#include "dng_tag_types.h"
-
-/*****************************************************************************/
-
-dng_simple_image::dng_simple_image (const dng_rect &bounds,
- uint32 planes,
- uint32 pixelType,
- dng_memory_allocator &allocator)
-
- : dng_image (bounds,
- planes,
- pixelType)
-
- , fMemory ()
- , fBuffer ()
- , fAllocator (allocator)
-
- {
-
- uint32 pixelSize = TagTypeSize (pixelType);
-
- uint32 bytes = bounds.H () * bounds.W () * planes * pixelSize;
-
- fMemory.Reset (allocator.Allocate (bytes));
-
- fBuffer.fArea = bounds;
-
- fBuffer.fPlane = 0;
- fBuffer.fPlanes = planes;
-
- fBuffer.fRowStep = planes * bounds.W ();
- fBuffer.fColStep = planes;
- fBuffer.fPlaneStep = 1;
-
- fBuffer.fPixelType = pixelType;
- fBuffer.fPixelSize = pixelSize;
-
- fBuffer.fData = fMemory->Buffer ();
-
- }
-
-/*****************************************************************************/
-
-dng_simple_image::~dng_simple_image ()
- {
-
- }
-
-/*****************************************************************************/
-
-dng_image * dng_simple_image::Clone () const
- {
-
- AutoPtr<dng_simple_image> result (new dng_simple_image (Bounds (),
- Planes (),
- PixelType (),
- fAllocator));
-
- result->fBuffer.CopyArea (fBuffer,
- Bounds (),
- 0,
- Planes ());
-
- return result.Release ();
-
- }
-
-/*****************************************************************************/
-
-void dng_simple_image::SetPixelType (uint32 pixelType)
- {
-
- dng_image::SetPixelType (pixelType);
-
- fBuffer.fPixelType = pixelType;
-
- }
-
-/*****************************************************************************/
-
-void dng_simple_image::Trim (const dng_rect &r)
- {
-
- fBounds.t = 0;
- fBounds.l = 0;
-
- fBounds.b = r.H ();
- fBounds.r = r.W ();
-
- fBuffer.fData = fBuffer.DirtyPixel (r.t, r.l);
-
- fBuffer.fArea = fBounds;
-
- }
-
-/*****************************************************************************/
-
-void dng_simple_image::Rotate (const dng_orientation &orientation)
- {
-
- int32 originH = fBounds.l;
- int32 originV = fBounds.t;
-
- int32 colStep = fBuffer.fColStep;
- int32 rowStep = fBuffer.fRowStep;
-
- uint32 width = fBounds.W ();
- uint32 height = fBounds.H ();
-
- if (orientation.FlipH ())
- {
-
- originH += width - 1;
-
- colStep = -colStep;
-
- }
-
- if (orientation.FlipV ())
- {
-
- originV += height - 1;
-
- rowStep = -rowStep;
-
- }
-
- if (orientation.FlipD ())
- {
-
- int32 temp = colStep;
-
- colStep = rowStep;
- rowStep = temp;
-
- width = fBounds.H ();
- height = fBounds.W ();
-
- }
-
- fBuffer.fData = fBuffer.DirtyPixel (originV, originH);
-
- fBuffer.fColStep = colStep;
- fBuffer.fRowStep = rowStep;
-
- fBounds.r = fBounds.l + width;
- fBounds.b = fBounds.t + height;
-
- fBuffer.fArea = fBounds;
-
- }
-
-/*****************************************************************************/
-
-void dng_simple_image::AcquireTileBuffer (dng_tile_buffer &buffer,
- const dng_rect &area,
- bool dirty) const
- {
-
- buffer.fArea = area;
-
- buffer.fPlane = fBuffer.fPlane;
- buffer.fPlanes = fBuffer.fPlanes;
- buffer.fRowStep = fBuffer.fRowStep;
- buffer.fColStep = fBuffer.fColStep;
- buffer.fPlaneStep = fBuffer.fPlaneStep;
- buffer.fPixelType = fBuffer.fPixelType;
- buffer.fPixelSize = fBuffer.fPixelSize;
-
- buffer.fData = (void *) fBuffer.ConstPixel (buffer.fArea.t,
- buffer.fArea.l,
- buffer.fPlane);
-
- buffer.fDirty = dirty;
-
- }
-
-/*****************************************************************************/
+/*****************************************************************************/
+// Copyright 2006-2008 Adobe Systems Incorporated
+// All Rights Reserved.
+//
+// NOTICE: Adobe permits you to use, modify, and distribute this file in
+// accordance with the terms of the Adobe license agreement accompanying it.
+/*****************************************************************************/
+
+/* $Id: //mondo/dng_sdk_1_4/dng_sdk/source/dng_simple_image.cpp#1 $ */
+/* $DateTime: 2012/05/30 13:28:51 $ */
+/* $Change: 832332 $ */
+/* $Author: tknoll $ */
+
+/*****************************************************************************/
+
+#include "dng_simple_image.h"
+
+#include "dng_memory.h"
+#include "dng_orientation.h"
+#include "dng_tag_types.h"
+#include "dng_tag_values.h"
+
+/*****************************************************************************/
+
+dng_simple_image::dng_simple_image (const dng_rect &bounds,
+ uint32 planes,
+ uint32 pixelType,
+ dng_memory_allocator &allocator)
+
+ : dng_image (bounds,
+ planes,
+ pixelType)
+
+ , fMemory ()
+ , fAllocator (allocator)
+
+ {
+
+ uint32 bytes =
+ ComputeBufferSize (pixelType, bounds.Size (), planes, pad16Bytes);
+
+ fMemory.Reset (allocator.Allocate (bytes));
+
+ fBuffer = dng_pixel_buffer (bounds, 0, planes, pixelType, pcInterleaved, fMemory->Buffer ());
+
+ }
+
+/*****************************************************************************/
+
+dng_simple_image::~dng_simple_image ()
+ {
+
+ }
+
+/*****************************************************************************/
+
+dng_image * dng_simple_image::Clone () const
+ {
+
+ AutoPtr<dng_simple_image> result (new dng_simple_image (Bounds (),
+ Planes (),
+ PixelType (),
+ fAllocator));
+
+ result->fBuffer.CopyArea (fBuffer,
+ Bounds (),
+ 0,
+ Planes ());
+
+ return result.Release ();
+
+ }
+
+/*****************************************************************************/
+
+void dng_simple_image::SetPixelType (uint32 pixelType)
+ {
+
+ dng_image::SetPixelType (pixelType);
+
+ fBuffer.fPixelType = pixelType;
+
+ }
+
+/*****************************************************************************/
+
+void dng_simple_image::Trim (const dng_rect &r)
+ {
+
+ fBounds.t = 0;
+ fBounds.l = 0;
+
+ fBounds.b = r.H ();
+ fBounds.r = r.W ();
+
+ fBuffer.fData = fBuffer.DirtyPixel (r.t, r.l);
+
+ fBuffer.fArea = fBounds;
+
+ }
+
+/*****************************************************************************/
+
+void dng_simple_image::Rotate (const dng_orientation &orientation)
+ {
+
+ int32 originH = fBounds.l;
+ int32 originV = fBounds.t;
+
+ int32 colStep = fBuffer.fColStep;
+ int32 rowStep = fBuffer.fRowStep;
+
+ uint32 width = fBounds.W ();
+ uint32 height = fBounds.H ();
+
+ if (orientation.FlipH ())
+ {
+
+ originH += width - 1;
+
+ colStep = -colStep;
+
+ }
+
+ if (orientation.FlipV ())
+ {
+
+ originV += height - 1;
+
+ rowStep = -rowStep;
+
+ }
+
+ if (orientation.FlipD ())
+ {
+
+ int32 temp = colStep;
+
+ colStep = rowStep;
+ rowStep = temp;
+
+ width = fBounds.H ();
+ height = fBounds.W ();
+
+ }
+
+ fBuffer.fData = fBuffer.DirtyPixel (originV, originH);
+
+ fBuffer.fColStep = colStep;
+ fBuffer.fRowStep = rowStep;
+
+ fBounds.r = fBounds.l + width;
+ fBounds.b = fBounds.t + height;
+
+ fBuffer.fArea = fBounds;
+
+ }
+
+/*****************************************************************************/
+
+void dng_simple_image::AcquireTileBuffer (dng_tile_buffer &buffer,
+ const dng_rect &area,
+ bool dirty) const
+ {
+
+ buffer.fArea = area;
+
+ buffer.fPlane = fBuffer.fPlane;
+ buffer.fPlanes = fBuffer.fPlanes;
+ buffer.fRowStep = fBuffer.fRowStep;
+ buffer.fColStep = fBuffer.fColStep;
+ buffer.fPlaneStep = fBuffer.fPlaneStep;
+ buffer.fPixelType = fBuffer.fPixelType;
+ buffer.fPixelSize = fBuffer.fPixelSize;
+
+ buffer.fData = (void *) fBuffer.ConstPixel (buffer.fArea.t,
+ buffer.fArea.l,
+ buffer.fPlane);
+
+ buffer.fDirty = dirty;
+
+ }
+
+/*****************************************************************************/