FDL Core Library
ASC Framing Decision List — C/C++ Reference Implementation
Loading...
Searching...
No Matches
fdl_constants.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: 2024-present American Society Of Cinematographers
2// SPDX-License-Identifier: Apache-2.0
12#ifndef FDL_CONSTANTS_INTERNAL_H
13#define FDL_CONSTANTS_INTERNAL_H
14
15#include <cstddef>
16#include <cstdint>
17
18namespace fdl::constants {
19
24constexpr double kAlignStart = 0.0;
25constexpr double kAlignCenter = 0.5;
26constexpr double kAlignEnd = 1.0;
30constexpr double kCenterDivisor = 2.0;
31
34constexpr double kIdentitySqueeze = 1.0;
40constexpr double kHalfway = 0.5;
41constexpr double kFpHalfwayTolerance = 1e-15;
42constexpr int kEvenDivisor = 2;
43constexpr int64_t kPositiveSign = 1;
44constexpr int64_t kNegativeSign = -1;
45constexpr int64_t kEvenRoundingAdjustment = 1;
51constexpr double kProtectionBase = 1.0;
56constexpr unsigned kPackKey2Shift = 32;
57constexpr unsigned kPackKey3HighShift = 40;
58constexpr unsigned kPackKey3MidShift = 20;
63constexpr int kDefaultVersionMajor = 2;
64constexpr int kDefaultVersionMinor = 0;
69constexpr size_t kErrorBufferSize = 256;
75constexpr int kGeometryNotFound = 1;
76constexpr int kGeometryInvalidPath = -1;
81constexpr size_t kHashCombineShift = 1;
86constexpr int64_t kDefaultAspectRatio = 1;
90constexpr int kDefaultJsonIndent = 2;
91
94constexpr int kCustomAttrSuccess = 0;
95constexpr int kCustomAttrError = -1;
96constexpr uint32_t kCustomAttrTypeNone = 0;
97constexpr uint32_t kCustomAttrTypeString = 1;
98constexpr uint32_t kCustomAttrTypeInt = 2;
99constexpr uint32_t kCustomAttrTypeFloat = 3;
100constexpr uint32_t kCustomAttrTypeBool = 4;
101constexpr uint32_t kCustomAttrTypePointF64 = 5;
102constexpr uint32_t kCustomAttrTypeDimsF64 = 6;
103constexpr uint32_t kCustomAttrTypeDimsI64 = 7;
104constexpr uint32_t kCustomAttrTypeOther = 8;
110constexpr double kRelTol = 1e-9;
111constexpr double kAbsTol = 1e-6;
116constexpr size_t kTlCacheMaxEntries = 256;
120constexpr char kCustomAttrPrefix = '_';
121
125constexpr const char* kAttrScaleFactor = "scale_factor";
126constexpr const char* kAttrContentTranslation = "content_translation";
127constexpr const char* kAttrScaledBoundingBox = "scaled_bounding_box";
130} // namespace fdl::constants
131
132#endif // FDL_CONSTANTS_INTERNAL_H
constexpr int64_t kDefaultAspectRatio
1:1 aspect ratio for generated framing intents.
Definition fdl_constants.h:86
constexpr const char * kAttrContentTranslation
Template content translation (point_f64).
Definition fdl_constants.h:126
constexpr size_t kErrorBufferSize
Size of snprintf error message buffers.
Definition fdl_constants.h:69
constexpr int kDefaultJsonIndent
Default JSON serialization indent (spaces per level).
Definition fdl_constants.h:90
constexpr int kCustomAttrSuccess
Operation succeeded.
Definition fdl_constants.h:94
constexpr double kFpHalfwayTolerance
FP tolerance for detecting exact halfway values.
Definition fdl_constants.h:41
constexpr double kIdentitySqueeze
No anamorphic distortion (1:1 squeeze).
Definition fdl_constants.h:34
constexpr uint32_t kCustomAttrTypeBool
Boolean attribute.
Definition fdl_constants.h:100
constexpr int kDefaultVersionMajor
Default FDL specification version major.
Definition fdl_constants.h:63
constexpr int kDefaultVersionMinor
Default FDL specification version minor.
Definition fdl_constants.h:64
constexpr uint32_t kCustomAttrTypePointF64
Point (x, y) attribute.
Definition fdl_constants.h:101
constexpr int kCustomAttrError
Operation failed (type mismatch, not found, etc.).
Definition fdl_constants.h:95
constexpr int64_t kNegativeSign
Negative sign multiplier.
Definition fdl_constants.h:44
constexpr double kProtectionBase
Base factor for protection calculation (100%).
Definition fdl_constants.h:51
constexpr uint32_t kCustomAttrTypeDimsI64
Dimensions (width, height) integer attribute.
Definition fdl_constants.h:103
constexpr size_t kTlCacheMaxEntries
Max entries before a thread-local string cache auto-clears.
Definition fdl_constants.h:116
constexpr uint32_t kCustomAttrTypeNone
Attribute not found.
Definition fdl_constants.h:96
constexpr double kAlignEnd
Right or bottom alignment factor.
Definition fdl_constants.h:26
constexpr int kGeometryInvalidPath
Invalid geometry path enum value.
Definition fdl_constants.h:76
constexpr int kEvenDivisor
Divisor for even/odd detection (v % 2).
Definition fdl_constants.h:42
constexpr unsigned kPackKey2Shift
Shift for packing two 32-bit indices into a 64-bit key.
Definition fdl_constants.h:56
constexpr unsigned kPackKey3MidShift
Mid-index shift in three-value pack (bits [20..39]).
Definition fdl_constants.h:58
constexpr uint32_t kCustomAttrTypeString
String attribute.
Definition fdl_constants.h:97
constexpr int64_t kPositiveSign
Positive sign multiplier.
Definition fdl_constants.h:43
constexpr double kHalfway
Halfway value for rounding decisions.
Definition fdl_constants.h:40
constexpr size_t kHashCombineShift
Bit shift for XOR-based hash combination.
Definition fdl_constants.h:81
constexpr double kAbsTol
Absolute tolerance for fp comparison.
Definition fdl_constants.h:111
constexpr const char * kAttrScaleFactor
Template scale factor (float).
Definition fdl_constants.h:125
constexpr uint32_t kCustomAttrTypeInt
Integer attribute.
Definition fdl_constants.h:98
constexpr double kCenterDivisor
Divisor for centering content (span / 2 = center offset).
Definition fdl_constants.h:30
constexpr double kRelTol
Relative tolerance for fp comparison.
Definition fdl_constants.h:110
constexpr uint32_t kCustomAttrTypeFloat
Floating-point attribute.
Definition fdl_constants.h:99
constexpr char kCustomAttrPrefix
Custom attribute key prefix character.
Definition fdl_constants.h:120
constexpr unsigned kPackKey3HighShift
High-index shift in three-value pack (bits [40..59]).
Definition fdl_constants.h:57
constexpr int kGeometryNotFound
Requested geometry layer is not present.
Definition fdl_constants.h:75
constexpr double kAlignStart
Left or top alignment factor.
Definition fdl_constants.h:24
constexpr double kAlignCenter
Center alignment factor.
Definition fdl_constants.h:25
constexpr uint32_t kCustomAttrTypeOther
Unsupported JSON type.
Definition fdl_constants.h:104
constexpr uint32_t kCustomAttrTypeDimsF64
Dimensions (width, height) float attribute.
Definition fdl_constants.h:102
constexpr const char * kAttrScaledBoundingBox
Template scaled bounding box (dims_f64).
Definition fdl_constants.h:127
constexpr int64_t kEvenRoundingAdjustment
Step for adjusting even-rounding results (v +/- 1).
Definition fdl_constants.h:45