1 /*****************************************************************************/
2 // Copyright 2006-2019 Adobe Systems Incorporated
3 // All Rights Reserved.
4 //
5 // NOTICE:  Adobe permits you to use, modify, and distribute this file in
6 // accordance with the terms of the Adobe license agreement accompanying it.
7 /*****************************************************************************/
8 
9 /** \file
10  * Collection of constants detailing maximum values used in processing in the DNG SDK.
11  */
12 
13 /*****************************************************************************/
14 
15 #ifndef __dng_sdk_limits__
16 #define __dng_sdk_limits__
17 
18 /*****************************************************************************/
19 
20 #include "dng_types.h"
21 
22 /*****************************************************************************/
23 
24 /// The maximum number of previews (in addition to the main IFD's thumbnail)
25 /// that we support embedded in a DNG.
26 
27 const uint32 kMaxDNGPreviews = 20;
28 
29 /// The maximum number of SubIFDs that will be parsed.
30 
31 const uint32 kMaxSubIFDs = kMaxDNGPreviews + 1;
32 
33 /// The maximum number of chained IFDs that will be parsed.
34 
35 const uint32 kMaxChainedIFDs = 10;
36 
37 /// The maximum number of samples per pixel.
38 
39 const uint32 kMaxSamplesPerPixel = 4;
40 
41 /// Maximum number of color planes.
42 
43 const uint32 kMaxColorPlanes = kMaxSamplesPerPixel;
44 
45 /// The maximum size of a CFA repeating pattern.
46 
47 const uint32 kMaxCFAPattern = 8;
48 
49 /// The maximum size of a black level repeating pattern.
50 
51 const uint32 kMaxBlackPattern = 8;
52 
53 /// The maximum number of masked area rectangles.
54 
55 const uint32 kMaxMaskedAreas = 4;
56 
57 /// The maximum image size supported (pixels per side).
58 
59 const uint32 kMaxImageSide = 65000;
60 
61 /// The maximum number of tone curve points supported.
62 
63 const uint32 kMaxToneCurvePoints = 8192;
64 
65 /// Maximum number of MP threads for dng_area_task operations.
66 
67 #if qDNG64Bit
68 const uint32 kMaxMPThreads = 128; // EP! Needs much larger max!
69 #else
70 const uint32 kMaxMPThreads = 8;
71 #endif
72 
73 /// Maximum supported value of Stage3BlackLevelNormalized.
74 
75 const real64 kMaxStage3BlackLevelNormalized = 0.2;
76 
77 /*****************************************************************************/
78 
79 #endif
80 
81 /*****************************************************************************/
82