@osmo.inc/cli-linux-arm64 0.1.22 → 0.1.24
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/studio.js +11834 -7989
- package/package.json +1 -1
- package/release.json +32 -32
- package/runtime/apps/native/tools/compile.mjs +20 -2
- package/runtime/packages/render-protocol/src/film-catalog.json +2543 -0
- package/runtime/packages/render-protocol/src/film-resources.mjs +91 -0
- package/runtime/packages/render-protocol/src/film-store.node.mjs +220 -0
- package/runtime/packages/scene/scripts/sync-film.mjs +8 -0
- package/runtime/packages/scene/scripts/validate-strict.mjs +14 -4
- package/runtime/packages/scene/scripts/verify-export-resolution.mjs +67 -0
- package/runtime/packages/scene/scripts/verify-film.mjs +66 -0
- package/runtime/packages/scene/src/effect-schemas.d.mts +246 -0
- package/runtime/packages/scene/src/effect-schemas.mjs +136 -0
- package/runtime/packages/scene/src/effects.ts +23 -6
- package/runtime/packages/scene/src/elements.ts +15 -3
- package/runtime/packages/scene/src/evaluate.ts +88 -12
- package/runtime/packages/scene/src/film-catalog.generated.ts +3 -0
- package/runtime/packages/scene/src/film.ts +39 -0
- package/runtime/packages/scene/src/index.ts +6 -2
- package/runtime/packages/scene/src/knob-schema.ts +5 -2
- package/runtime/packages/scene/src/metadata.d.mts +2 -1
- package/runtime/packages/scene/src/metadata.mjs +4 -4
- package/runtime/packages/scene/src/motion-blur.ts +30 -0
- package/src/starter/scene.tsx +1 -1
- package/studio/src/app.css +1 -1
- package/studio/src/app.js +236 -176
- package/studio/src/engine_bg.wasm +0 -0
- package/studio/src/preview-worker.js +33 -0
- package/third-party/braw/BlackmagicRawAPI.h +1137 -0
- package/third-party/braw/README.md +7 -0
- package/third-party/cargo/block-buffer@0.10.4/Cargo.toml +32 -0
- package/third-party/cargo/block-buffer@0.10.4/LICENSE-APACHE +201 -0
- package/third-party/cargo/block-buffer@0.10.4/LICENSE-MIT +25 -0
- package/third-party/cargo/cc@1.4.5/Cargo.toml +89 -0
- package/third-party/cargo/cc@1.4.5/LICENSE-APACHE +201 -0
- package/third-party/cargo/cc@1.4.5/LICENSE-MIT +25 -0
- package/third-party/cargo/cpufeatures@0.2.17/Cargo.toml +71 -0
- package/third-party/cargo/cpufeatures@0.2.17/LICENSE-APACHE +201 -0
- package/third-party/cargo/cpufeatures@0.2.17/LICENSE-MIT +25 -0
- package/third-party/cargo/crypto-common@0.1.7/Cargo.toml +62 -0
- package/third-party/cargo/crypto-common@0.1.7/LICENSE-APACHE +201 -0
- package/third-party/cargo/crypto-common@0.1.7/LICENSE-MIT +25 -0
- package/third-party/cargo/digest@0.10.7/Cargo.toml +70 -0
- package/third-party/cargo/digest@0.10.7/LICENSE-APACHE +201 -0
- package/third-party/cargo/digest@0.10.7/LICENSE-MIT +25 -0
- package/third-party/cargo/find-msvc-tools@0.1.12/Cargo.toml +49 -0
- package/third-party/cargo/find-msvc-tools@0.1.12/LICENSE-APACHE +201 -0
- package/third-party/cargo/find-msvc-tools@0.1.12/LICENSE-MIT +25 -0
- package/third-party/cargo/generic-array@0.14.7/Cargo.toml +75 -0
- package/third-party/cargo/generic-array@0.14.7/LICENSE +21 -0
- package/third-party/cargo/sha2@0.10.9/Cargo.toml +90 -0
- package/third-party/cargo/sha2@0.10.9/LICENSE-APACHE +201 -0
- package/third-party/cargo/sha2@0.10.9/LICENSE-MIT +27 -0
- package/third-party/cargo/shlex@2.0.1/Cargo.toml +51 -0
- package/third-party/cargo/shlex@2.0.1/LICENSE-APACHE +13 -0
- package/third-party/cargo/shlex@2.0.1/LICENSE-MIT +21 -0
- package/third-party/cargo/typenum@1.20.1/Cargo.toml +75 -0
- package/third-party/cargo/typenum@1.20.1/LICENSE +1 -0
- package/third-party/cargo/typenum@1.20.1/LICENSE-APACHE +201 -0
- package/third-party/cargo/typenum@1.20.1/LICENSE-MIT +21 -0
- package/third-party/film/camera-COLOUR-LICENSE +11 -0
- package/third-party/film/camera-CONFIG-LICENSE +26 -0
- package/third-party/film/camera-LICENSE +26 -0
- package/third-party/film/camera-metadata.json +344 -0
- package/third-party/film/provenance.json +7 -0
- package/third-party/inventory.json +140 -0
- package/vendor/osmo-lite +0 -0
- package/vendor/osmo-scene-0.1.0.tgz +0 -0
- package/vendor/platform.json +1 -1
|
@@ -0,0 +1,1137 @@
|
|
|
1
|
+
/* -LICENSE-START-
|
|
2
|
+
** Copyright (c) 2026 Blackmagic Design
|
|
3
|
+
**
|
|
4
|
+
** Permission is hereby granted, free of charge, to any person or organization
|
|
5
|
+
** obtaining a copy of the software and accompanying documentation covered by
|
|
6
|
+
** this license (the "Software") to use, reproduce, display, distribute,
|
|
7
|
+
** execute, and transmit the Software, and to prepare derivative works of the
|
|
8
|
+
** Software, and to permit third-parties to whom the Software is furnished to
|
|
9
|
+
** do so, all subject to the following:
|
|
10
|
+
**
|
|
11
|
+
** The copyright notices in the Software and this entire statement, including
|
|
12
|
+
** the above license grant, this restriction and the following disclaimer,
|
|
13
|
+
** must be included in all copies of the Software, in whole or in part, and
|
|
14
|
+
** all derivative works of the Software, unless such copies or derivative
|
|
15
|
+
** works are solely in the form of machine-executable object code generated by
|
|
16
|
+
** a source language processor.
|
|
17
|
+
**
|
|
18
|
+
** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
19
|
+
** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
20
|
+
** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
|
|
21
|
+
** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
|
|
22
|
+
** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
|
|
23
|
+
** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
|
24
|
+
** DEALINGS IN THE SOFTWARE.
|
|
25
|
+
** -LICENSE-END-
|
|
26
|
+
*/
|
|
27
|
+
|
|
28
|
+
#ifndef BMD_BLACKMAGICRAWAPI_H
|
|
29
|
+
#define BMD_BLACKMAGICRAWAPI_H
|
|
30
|
+
|
|
31
|
+
#ifndef BRAW_VERSION
|
|
32
|
+
# define BRAW_VERSION 600 // 100*major + 10*minor. sdk 6.0 does not support old interfaces. sdk 4.5 supports 3.x
|
|
33
|
+
#endif // BRAW_VERSION
|
|
34
|
+
#define BRAW_MAJOR (BRAW_VERSION / 100)
|
|
35
|
+
|
|
36
|
+
#ifndef BMD_CONST
|
|
37
|
+
#if defined(_MSC_VER)
|
|
38
|
+
#define BMD_CONST __declspec(selectany)
|
|
39
|
+
#else
|
|
40
|
+
#define BMD_CONST static const
|
|
41
|
+
#endif
|
|
42
|
+
#endif
|
|
43
|
+
|
|
44
|
+
#ifndef BMD_PUBLIC
|
|
45
|
+
#define BMD_PUBLIC
|
|
46
|
+
#endif
|
|
47
|
+
|
|
48
|
+
#if (__APPLE__ + 0)
|
|
49
|
+
#include <CoreFoundation/CoreFoundation.h>
|
|
50
|
+
#include <CoreFoundation/CFPlugInCOM.h>
|
|
51
|
+
#endif
|
|
52
|
+
#if (__linux__ + 0)
|
|
53
|
+
#include "LinuxCOM.h"
|
|
54
|
+
#endif
|
|
55
|
+
#include <stdint.h>
|
|
56
|
+
|
|
57
|
+
#if (_WIN32 + 0)
|
|
58
|
+
#include <comutil.h>
|
|
59
|
+
#include <oleauto.h> // VARIANT
|
|
60
|
+
//#include <wtype.h> // BSTR
|
|
61
|
+
typedef BSTR BRawStr;
|
|
62
|
+
struct CFUUIDBytes {
|
|
63
|
+
unsigned char byte0;
|
|
64
|
+
unsigned char byte1;
|
|
65
|
+
unsigned char byte2;
|
|
66
|
+
unsigned char byte3;
|
|
67
|
+
unsigned char byte4;
|
|
68
|
+
unsigned char byte5;
|
|
69
|
+
unsigned char byte6;
|
|
70
|
+
unsigned char byte7;
|
|
71
|
+
unsigned char byte8;
|
|
72
|
+
unsigned char byte9;
|
|
73
|
+
unsigned char byte10;
|
|
74
|
+
unsigned char byte11;
|
|
75
|
+
unsigned char byte12;
|
|
76
|
+
unsigned char byte13;
|
|
77
|
+
unsigned char byte14;
|
|
78
|
+
unsigned char byte15;
|
|
79
|
+
|
|
80
|
+
operator IID() const { return {(unsigned long)(byte0 << 24 | byte1 << 16 | byte2 << 8 | byte3), (unsigned short)(byte4 << 8 | byte5), (unsigned short)(byte6 << 8 | byte7), byte8, byte9, byte10, byte11, byte12, byte13, byte14, byte15};}
|
|
81
|
+
};
|
|
82
|
+
#elif (__APPLE__ + 0)
|
|
83
|
+
typedef CFStringRef BRawStr;
|
|
84
|
+
#else
|
|
85
|
+
typedef char* BRawStr;
|
|
86
|
+
#endif
|
|
87
|
+
|
|
88
|
+
typedef struct { void* iovBase; uint64_t iovLen; } BmdIoVec;
|
|
89
|
+
|
|
90
|
+
// Type Declarations
|
|
91
|
+
#if (BRAW_VERSION + 0) >= 450
|
|
92
|
+
# define IID_IBlackmagicRawClipResolutions IID_IBlackmagicRawClipResolutions4_5
|
|
93
|
+
# if (BRAW_VERSION + 0) >= 600
|
|
94
|
+
# define IID_IBlackmagicRawPipelineDevice IID_IBlackmagicRawPipelineDevice6
|
|
95
|
+
# else
|
|
96
|
+
# define IID_IBlackmagicRawPipelineDevice IID_IBlackmagicRawPipelineDevice4_5
|
|
97
|
+
# endif
|
|
98
|
+
#else
|
|
99
|
+
# define IID_IBlackmagicRawClipResolutions IID_IBlackmagicRawClipResolutions2
|
|
100
|
+
# if (BRAW_VERSION + 0) >= 400
|
|
101
|
+
# define IID_IBlackmagicRawPipelineDevice IID_IBlackmagicRawPipelineDevice4
|
|
102
|
+
# else
|
|
103
|
+
# define IID_IBlackmagicRawPipelineDevice IID_IBlackmagicRawPipelineDevice2
|
|
104
|
+
# endif
|
|
105
|
+
#endif
|
|
106
|
+
#if (BRAW_VERSION + 0) >= 300
|
|
107
|
+
# if (BRAW_VERSION + 0) >= 600
|
|
108
|
+
# define IID_IBlackmagicRaw IID_IBlackmagicRaw6
|
|
109
|
+
# else
|
|
110
|
+
# define IID_IBlackmagicRaw IID_IBlackmagicRaw3
|
|
111
|
+
# endif
|
|
112
|
+
#define IID_IBlackmagicRawFactory IID_IBlackmagicRawFactory3
|
|
113
|
+
#define IID_IBlackmagicRawConfiguration IID_IBlackmagicRawConfiguration3
|
|
114
|
+
#define IID_IBlackmagicRawPost3DLUT IID_IBlackmagicRawPost3DLUT2
|
|
115
|
+
#define IID_IBlackmagicRawClip IID_IBlackmagicRawClip2
|
|
116
|
+
#else
|
|
117
|
+
#define IID_IBlackmagicRaw IID_IBlackmagicRaw2
|
|
118
|
+
#define IID_IBlackmagicRawFactory IID_IBlackmagicRawFactory2
|
|
119
|
+
#define IID_IBlackmagicRawConfiguration IID_IBlackmagicRawConfiguration2
|
|
120
|
+
#define IID_IBlackmagicRawPost3DLUT IID_IBlackmagicRawPost3DLUT2
|
|
121
|
+
#define IID_IBlackmagicRawClip IID_IBlackmagicRawClip2
|
|
122
|
+
#endif
|
|
123
|
+
#if (BRAW_VERSION + 0) >= 600
|
|
124
|
+
# define IID_IBlackmagicRawClipProcessingAttributes IID_IBlackmagicRawClipProcessingAttributes6
|
|
125
|
+
# define IID_IBlackmagicRawClipEx IID_IBlackmagicRawClipEx6
|
|
126
|
+
# define IID_IBlackmagicRawClipMultiVideo IID_IBlackmagicRawClipMultiVideo6
|
|
127
|
+
#else
|
|
128
|
+
# define IID_IBlackmagicRawClipProcessingAttributes IID_IBlackmagicRawClipProcessingAttributes2
|
|
129
|
+
# define IID_IBlackmagicRawClipEx IID_IBlackmagicRawClipEx2
|
|
130
|
+
# define IID_IBlackmagicRawClipMultiVideo IID_IBlackmagicRawClipMultiVideo5
|
|
131
|
+
#endif
|
|
132
|
+
// Interface ID Declarations
|
|
133
|
+
BMD_CONST REFIID IID_IBlackmagicRaw2 = /* 5A540A06-1B62-4224-ACB0-A2385C6ED649 */ CFUUIDBytes{ 0x5A,0x54,0x0A,0x06,0x1B,0x62,0x42,0x24,0xAC,0xB0,0xA2,0x38,0x5C,0x6E,0xD6,0x49 };
|
|
134
|
+
BMD_CONST REFIID IID_IBlackmagicRawFactory2 = /* 74FEBEDC-12D6-490D-9A77-48F19E8F60CB */ CFUUIDBytes{ 0x74,0xFE,0xBE,0xDC,0x12,0xD6,0x49,0x0D,0x9A,0x77,0x48,0xF1,0x9E,0x8F,0x60,0xCB };
|
|
135
|
+
BMD_CONST REFIID IID_IBlackmagicRawConfiguration2 = /* F8588A3D-E31F-45BD-96C7-A5640EA8B8E7 */ CFUUIDBytes{ 0xF8,0x58,0x8A,0x3D,0xE3,0x1F,0x45,0xBD,0x96,0xC7,0xA5,0x64,0x0E,0xA8,0xB8,0xE7 };
|
|
136
|
+
BMD_CONST REFIID IID_IBlackmagicRawPost3DLUT2 = /* 72A53B50-BB40-4C69-83FB-58CF58AF35B6 */ CFUUIDBytes{ 0x72,0xA5,0x3B,0x50,0xBB,0x40,0x4C,0x69,0x83,0xFB,0x58,0xCF,0x58,0xAF,0x35,0xB6 };
|
|
137
|
+
BMD_CONST REFIID IID_IBlackmagicRawClip2 = /* 408F758F-347F-4CDA-BA9B-89B6F15603CF */ CFUUIDBytes{ 0x40,0x8F,0x75,0x8F,0x34,0x7F,0x4C,0xDA,0xBA,0x9B,0x89,0xB6,0xF1,0x56,0x03,0xCF };
|
|
138
|
+
|
|
139
|
+
BMD_CONST REFIID IID_IBlackmagicRaw3 = /* 558ABA39-B344-4E9B-A484-116CF2A4B5C6 */ CFUUIDBytes{ 0x55,0x8A,0xBA,0x39,0xB3,0x44,0x4E,0x9B,0xA4,0x84,0x11,0x6C,0xF2,0xA4,0xB5,0xC6 };
|
|
140
|
+
BMD_CONST REFIID IID_IBlackmagicRaw6 = /* C25C15E2-D1D0-4743-9EA8-F21F69751AF3 */ CFUUIDBytes{ 0xC2,0x5C,0x15,0xE2,0xD1,0xD0,0x47,0x43,0x9E,0xA8,0xF2,0x1F,0x69,0x75,0x1A,0xF3 };
|
|
141
|
+
BMD_CONST REFIID IID_IBlackmagicRawFactory3 = /* 78DEEB84-98C9-434A-B7E5-7AACC2988399 */ CFUUIDBytes{ 0x78,0xDE,0xEB,0x84,0x98,0xC9,0x43,0x4A,0xB7,0xE5,0x7A,0xAC,0xC2,0x98,0x83,0x99 };
|
|
142
|
+
BMD_CONST REFIID IID_IBlackmagicRawPipelineIterator = /* 051ED792-3D9D-4ED0-BB1F-3873E08773CB */ CFUUIDBytes{ 0x05,0x1E,0xD7,0x92,0x3D,0x9D,0x4E,0xD0,0xBB,0x1F,0x38,0x73,0xE0,0x87,0x73,0xCB };
|
|
143
|
+
BMD_CONST REFIID IID_IBlackmagicRawPipelineDeviceIterator = /* 32D3385F-06EE-4260-82EB-2BABFFFACED8 */ CFUUIDBytes{ 0x32,0xD3,0x38,0x5F,0x06,0xEE,0x42,0x60,0x82,0xEB,0x2B,0xAB,0xFF,0xFA,0xCE,0xD8 };
|
|
144
|
+
BMD_CONST REFIID IID_IBlackmagicRawOpenGLInteropHelper = /* 86444C8A-4398-4364-9166-7D10F41C315E */ CFUUIDBytes{ 0x86,0x44,0x4C,0x8A,0x43,0x98,0x43,0x64,0x91,0x66,0x7D,0x10,0xF4,0x1C,0x31,0x5E };
|
|
145
|
+
BMD_CONST REFIID IID_IBlackmagicRawPipelineDevice2 = /* 2B0D350D-8C17-431F-88AD-1E7945DF2F9F */ CFUUIDBytes{ 0x2B,0x0D,0x35,0x0D,0x8C,0x17,0x43,0x1F,0x88,0xAD,0x1E,0x79,0x45,0xDF,0x2F,0x9F };
|
|
146
|
+
BMD_CONST REFIID IID_IBlackmagicRawPipelineDevice4 = /* 67BB92E8-AD7E-432E-8BA5-E688A2A63F2F */ CFUUIDBytes{ 0x67,0xBB,0x92,0xE8,0xAD,0x7E,0x43,0x2E,0x8B,0xA5,0xE6,0x88,0xA2,0xA6,0x3F,0x2F };
|
|
147
|
+
BMD_CONST REFIID IID_IBlackmagicRawPipelineDevice4_5 = /* 5C7B0A9B-CF2C-4AB3-84C1-E1C7902360C8 */ CFUUIDBytes{ 0x5C,0x7B,0x0A,0x9B,0xCF,0x2C,0x4A,0xB3,0x84,0xC1,0xE1,0xC7,0x90,0x23,0x60,0xC8 };
|
|
148
|
+
BMD_CONST REFIID IID_IBlackmagicRawPipelineDevice6 = /* 078F1902-C143-4A49-A3C7-3408C755100A */ CFUUIDBytes{ 0x07,0x8F,0x19,0x02,0xC1,0x43,0x4A,0x49,0xA3,0xC7,0x34,0x08,0xC7,0x55,0x10,0x0A };
|
|
149
|
+
BMD_CONST REFIID IID_IBlackmagicRawToneCurve = /* 7E40C13D-3575-46B5-B2B7-85DAE1EEFD77 */ CFUUIDBytes{ 0x7E,0x40,0xC1,0x3D,0x35,0x75,0x46,0xB5,0xB2,0xB7,0x85,0xDA,0xE1,0xEE,0xFD,0x77 };
|
|
150
|
+
BMD_CONST REFIID IID_IBlackmagicRawConfiguration3 = /* 267E9866-FB40-4BFB-8BF8-96EA3F7DA36E */ CFUUIDBytes{ 0x26,0x7E,0x98,0x66,0xFB,0x40,0x4B,0xFB,0x8B,0xF8,0x96,0xEA,0x3F,0x7D,0xA3,0x6E };
|
|
151
|
+
BMD_CONST REFIID IID_IBlackmagicRawConfigurationEx = /* ACE9078F-ABA0-4B26-A954-EDA108DADA5A */ CFUUIDBytes{ 0xAC,0xE9,0x07,0x8F,0xAB,0xA0,0x4B,0x26,0xA9,0x54,0xED,0xA1,0x08,0xDA,0xDA,0x5A };
|
|
152
|
+
BMD_CONST REFIID IID_IBlackmagicRawClipGeometry = /* 22717196-36AE-4B8A-B5CC-24292F9660F0 */ CFUUIDBytes{ 0x22,0x71,0x71,0x96,0x36,0xAE,0x4B,0x8A,0xB5,0xCC,0x24,0x29,0x2F,0x96,0x60,0xF0 };
|
|
153
|
+
BMD_CONST REFIID IID_IBlackmagicRawResourceManager = /* 3C5C3C4A-812C-4AF0-99F0-06C6E197C189 */ CFUUIDBytes{ 0x3C,0x5C,0x3C,0x4A,0x81,0x2C,0x4A,0xF0,0x99,0xF0,0x06,0xC6,0xE1,0x97,0xC1,0x89 };
|
|
154
|
+
BMD_CONST REFIID IID_IBlackmagicRawMetadataIterator = /* F85AE78D-5DC2-40BC-8C1D-D0D805523ADA */ CFUUIDBytes{ 0xF8,0x5A,0xE7,0x8D,0x5D,0xC2,0x40,0xBC,0x8C,0x1D,0xD0,0xD8,0x05,0x52,0x3A,0xDA };
|
|
155
|
+
BMD_CONST REFIID IID_IBlackmagicRawClipProcessingAttributes2 = /* 1F53C8AE-2295-4C8E-B17F-5931F4F146AC */ CFUUIDBytes{ 0x1F,0x53,0xC8,0xAE,0x22,0x95,0x4C,0x8E,0xB1,0x7F,0x59,0x31,0xF4,0xF1,0x46,0xAC };
|
|
156
|
+
BMD_CONST REFIID IID_IBlackmagicRawClipProcessingAttributes6 = /* 7E5806E1-40B3-4DAD-8D03-5E294E65AC61 */ CFUUIDBytes{ 0x7E,0x58,0x06,0xE1,0x40,0xB3,0x4D,0xAD,0x8D,0x03,0x5E,0x29,0x4E,0x65,0xAC,0x61 };
|
|
157
|
+
BMD_CONST REFIID IID_IBlackmagicRawFrameProcessingAttributes = /* 5F7C5C0F-7138-445A-9D0D-6111B6409D17 */ CFUUIDBytes{ 0x5F,0x7C,0x5C,0x0F,0x71,0x38,0x44,0x5A,0x9D,0x0D,0x61,0x11,0xB6,0x40,0x9D,0x17 };
|
|
158
|
+
BMD_CONST REFIID IID_IBlackmagicRawPost3DLUT3 = /* 86052BC4-0231-48C6-B3C8-C771112AAD68 */ CFUUIDBytes{ 0x86,0x05,0x2B,0xC4,0x02,0x31,0x48,0xC6,0xB3,0xC8,0xC7,0x71,0x11,0x2A,0xAD,0x68 };
|
|
159
|
+
BMD_CONST REFIID IID_IBlackmagicRawProcessedImage = /* D87A0F72-A883-42BB-8488-0089411C5035 */ CFUUIDBytes{ 0xD8,0x7A,0x0F,0x72,0xA8,0x83,0x42,0xBB,0x84,0x88,0x00,0x89,0x41,0x1C,0x50,0x35 };
|
|
160
|
+
BMD_CONST REFIID IID_IBlackmagicRawJob = /* 34C05ACF-7118-45EA-8B71-887E0515395D */ CFUUIDBytes{ 0x34,0xC0,0x5A,0xCF,0x71,0x18,0x45,0xEA,0x8B,0x71,0x88,0x7E,0x05,0x15,0x39,0x5D };
|
|
161
|
+
BMD_CONST REFIID IID_IBlackmagicRawReadJobHints = /* 1069F99C-A4E2-415A-91C4-5E0CE0C6AF77 */ CFUUIDBytes{ 0x10,0x69,0xF9,0x9C,0xA4,0xE2,0x41,0x5A,0x91,0xC4,0x5E,0x0C,0xE0,0xC6,0xAF,0x77 };
|
|
162
|
+
BMD_CONST REFIID IID_IBlackmagicRawCallback = /* E9F98FAC-33DB-4A65-BB94-8A82B027AED0 */ CFUUIDBytes{ 0xE9,0xF9,0x8F,0xAC,0x33,0xDB,0x4A,0x65,0xBB,0x94,0x8A,0x82,0xB0,0x27,0xAE,0xD0 };
|
|
163
|
+
BMD_CONST REFIID IID_IBlackmagicRawClipAudio = /* 76D4ACED-E0D6-45BB-B547-56B7435B2A1D */ CFUUIDBytes{ 0x76,0xD4,0xAC,0xED,0xE0,0xD6,0x45,0xBB,0xB5,0x47,0x56,0xB7,0x43,0x5B,0x2A,0x1D };
|
|
164
|
+
BMD_CONST REFIID IID_IBlackmagicRawClipAccelerometerMotion = /* 983AACBB-F469-40C9-AA81-345B0B7CCD05 */ CFUUIDBytes{ 0x98,0x3A,0xAC,0xBB,0xF4,0x69,0x40,0xC9,0xAA,0x81,0x34,0x5B,0x0B,0x7C,0xCD,0x05 };
|
|
165
|
+
BMD_CONST REFIID IID_IBlackmagicRawClipGyroscopeMotion = /* 00543A2C-FDED-4C79-A60C-A460415F0296 */ CFUUIDBytes{ 0x00,0x54,0x3A,0x2C,0xFD,0xED,0x4C,0x79,0xA6,0x0C,0xA4,0x60,0x41,0x5F,0x02,0x96 };
|
|
166
|
+
BMD_CONST REFIID IID_IBlackmagicRawClipPDAFData = /* AAE71534-F951-4062-B6A9-69B8808CD267 */ CFUUIDBytes{ 0xAA,0xE7,0x15,0x34,0xF9,0x51,0x40,0x62,0xB6,0xA9,0x69,0xB8,0x80,0x8C,0xD2,0x67 };
|
|
167
|
+
BMD_CONST REFIID IID_IBlackmagicRawFrame = /* A500B253-1808-4EF2-8692-D23C692404EA */ CFUUIDBytes{ 0xA5,0x00,0xB2,0x53,0x18,0x08,0x4E,0xF2,0x86,0x92,0xD2,0x3C,0x69,0x24,0x04,0xEA };
|
|
168
|
+
BMD_CONST REFIID IID_IBlackmagicRawFrameEx = /* F8C6C374-D7FB-4BD3-AD0B-C533464FF450 */ CFUUIDBytes{ 0xF8,0xC6,0xC3,0x74,0xD7,0xFB,0x4B,0xD3,0xAD,0x0B,0xC5,0x33,0x46,0x4F,0xF4,0x50 };
|
|
169
|
+
BMD_CONST REFIID IID_IBlackmagicRawFrameMultiVideo = /* 96AE962B-30A4-4904-813D-A9EFFE5953C2 */ CFUUIDBytes{ 0x96,0xAE,0x96,0x2B,0x30,0xA4,0x49,0x04,0x81,0x3D,0xA9,0xEF,0xFE,0x59,0x53,0xC2 };
|
|
170
|
+
BMD_CONST REFIID IID_IBlackmagicRawManualDecoderFlow1 = /* 278815A6-A3C1-47C7-A0A6-6754DEAE5E7A */ CFUUIDBytes{ 0x27,0x88,0x15,0xA6,0xA3,0xC1,0x47,0xC7,0xA0,0xA6,0x67,0x54,0xDE,0xAE,0x5E,0x7A };
|
|
171
|
+
BMD_CONST REFIID IID_IBlackmagicRawManualDecoderFlow2 = /* DBEC4C39-B4C2-4A65-AA8C-2B3C7F4777E3 */ CFUUIDBytes{ 0xDB,0xEC,0x4C,0x39,0xB4,0xC2,0x4A,0x65,0xAA,0x8C,0x2B,0x3C,0x7F,0x47,0x77,0xE3 };
|
|
172
|
+
BMD_CONST REFIID IID_IBlackmagicRawClip3 = /* A2910203-787B-4BF2-A374-B1A459E2D351 */ CFUUIDBytes{ 0xA2,0x91,0x02,0x03,0x78,0x7B,0x4B,0xF2,0xA3,0x74,0xB1,0xA4,0x59,0xE2,0xD3,0x51 };
|
|
173
|
+
BMD_CONST REFIID IID_IBlackmagicRawClipEx2 = /* D260C7D0-93BD-4D68-B600-93B4CAB7F870 */ CFUUIDBytes{ 0xD2,0x60,0xC7,0xD0,0x93,0xBD,0x4D,0x68,0xB6,0x00,0x93,0xB4,0xCA,0xB7,0xF8,0x70 };
|
|
174
|
+
BMD_CONST REFIID IID_IBlackmagicRawClipEx6 = /* 7DB60B13-6BB2-49DE-9A24-AA14A9F3CA6B */ CFUUIDBytes{ 0x7D,0xB6,0x0B,0x13,0x6B,0xB2,0x49,0xDE,0x9A,0x24,0xAA,0x14,0xA9,0xF3,0xCA,0x6B };
|
|
175
|
+
BMD_CONST REFIID IID_IBlackmagicRawClipMultiVideo5 = /* C699E3E2-3268-4E08-8037-D5C4A2C5CE52 */ CFUUIDBytes{ 0xC6,0x99,0xE3,0xE2,0x32,0x68,0x4E,0x08,0x80,0x37,0xD5,0xC4,0xA2,0xC5,0xCE,0x52 };
|
|
176
|
+
BMD_CONST REFIID IID_IBlackmagicRawClipMultiVideo6 = /* B868316D-18E6-4792-ACF4-D7F25CB5CBB6 */ CFUUIDBytes{ 0xB8,0x68,0x31,0x6D,0x18,0xE6,0x47,0x92,0xAC,0xF4,0xD7,0xF2,0x5C,0xB5,0xCB,0xB6 };
|
|
177
|
+
BMD_CONST REFIID IID_IBlackmagicRawClipImmersiveVideo = /* 47D287A7-9148-4659-BFCF-C767A089A200 */ CFUUIDBytes{ 0x47,0xD2,0x87,0xA7,0x91,0x48,0x46,0x59,0xBF,0xCF,0xC7,0x67,0xA0,0x89,0xA2,0x00 };
|
|
178
|
+
BMD_CONST REFIID IID_IBlackmagicRawClipResolutions2 = /* 3070805E-ABE3-498C-9D77-8C991B2B77E5 */ CFUUIDBytes{ 0x30,0x70,0x80,0x5E,0xAB,0xE3,0x49,0x8C,0x9D,0x77,0x8C,0x99,0x1B,0x2B,0x77,0xE5 };
|
|
179
|
+
BMD_CONST REFIID IID_IBlackmagicRawClipResolutions4_5 = /* C63C290F-525B-4EBE-AB56-87B010CACE19 */ CFUUIDBytes{ 0xC6,0x3C,0x29,0x0F,0x52,0x5B,0x4E,0xBE,0xAB,0x56,0x87,0xB0,0x10,0xCA,0xCE,0x19 };
|
|
180
|
+
|
|
181
|
+
// 6.0
|
|
182
|
+
BMD_CONST REFIID IID_IBlackmagicRawFilesystem = /* 48640A3F-DC26-4CF9-B540-1CD8087986DD */ CFUUIDBytes{ 0x48,0x64,0x0A,0x3F,0xDC,0x26,0x4C,0xF9,0xB5,0x40,0x1C,0xD8,0x08,0x79,0x86,0xDD };
|
|
183
|
+
BMD_CONST REFIID IID_IBlackmagicRawFile = /* 9D0B46AB-C9DC-4BFB-8DDF-5E5A8F19BEFC */ CFUUIDBytes{ 0x9D,0x0B,0x46,0xAB,0xC9,0xDC,0x4B,0xFB,0x8D,0xDF,0x5E,0x5A,0x8F,0x19,0xBE,0xFC };
|
|
184
|
+
BMD_CONST REFIID IID_IBlackmagicRawAudioBuffer = /* 6FCA661F-35AA-469A-AFCE-3012B40760CC */ CFUUIDBytes{ 0x6F,0xCA,0x66,0x1F,0x35,0xAA,0x46,0x9A,0xAF,0xCE,0x30,0x12,0xB4,0x07,0x60,0xCC };
|
|
185
|
+
|
|
186
|
+
|
|
187
|
+
/* Enum BlackmagicRawVariantType - Variant types that may be stored as metadata */
|
|
188
|
+
|
|
189
|
+
#ifndef _WIN32
|
|
190
|
+
enum {
|
|
191
|
+
VT_EMPTY = 0,
|
|
192
|
+
VT_UI1 = 1,
|
|
193
|
+
VT_I2 = 2,
|
|
194
|
+
VT_UI2 = 3,
|
|
195
|
+
VT_I4 = 4,
|
|
196
|
+
VT_UI4 = 5,
|
|
197
|
+
VT_R4 = 6,
|
|
198
|
+
VT_BSTR = 7,
|
|
199
|
+
VT_SAFEARRAY = 8,
|
|
200
|
+
VT_R8 = 9,
|
|
201
|
+
};
|
|
202
|
+
#endif
|
|
203
|
+
typedef uint32_t BlackmagicRawVariantType;
|
|
204
|
+
enum _BlackmagicRawVariantType {
|
|
205
|
+
blackmagicRawVariantTypeEmpty = VT_EMPTY,
|
|
206
|
+
blackmagicRawVariantTypeU8 = VT_UI1,
|
|
207
|
+
blackmagicRawVariantTypeS16 = VT_I2,
|
|
208
|
+
blackmagicRawVariantTypeU16 = VT_UI2,
|
|
209
|
+
blackmagicRawVariantTypeS32 = VT_I4,
|
|
210
|
+
blackmagicRawVariantTypeU32 = VT_UI4,
|
|
211
|
+
blackmagicRawVariantTypeFloat32 = VT_R4,
|
|
212
|
+
blackmagicRawVariantTypeString = VT_BSTR,
|
|
213
|
+
blackmagicRawVariantTypeSafeArray = VT_SAFEARRAY,
|
|
214
|
+
blackmagicRawVariantTypeFloat64 = VT_R8,
|
|
215
|
+
};
|
|
216
|
+
|
|
217
|
+
/* Enum BlackmagicRawResourceType - Used in IBlackmagicRawResourceManager */
|
|
218
|
+
|
|
219
|
+
typedef uint32_t BlackmagicRawResourceType;
|
|
220
|
+
enum _BlackmagicRawResourceType {
|
|
221
|
+
blackmagicRawResourceTypeBufferCPU = /* 'cpub' */ 0x63707562, // block of CPU memory
|
|
222
|
+
blackmagicRawResourceTypeBufferMetal = /* 'metb' */ 0x6D657462, // a MTLBuffer
|
|
223
|
+
blackmagicRawResourceTypeBufferCUDA = /* 'cudb' */ 0x63756462, // a CUdeviceptr
|
|
224
|
+
blackmagicRawResourceTypeBufferOpenCL = /* 'oclb' */ 0x6F636C62 // a cl_mem
|
|
225
|
+
};
|
|
226
|
+
|
|
227
|
+
/* Enum BlackmagicRawResourceFormat - Used for resource allocation */
|
|
228
|
+
|
|
229
|
+
typedef uint32_t BlackmagicRawResourceFormat;
|
|
230
|
+
enum _BlackmagicRawResourceFormat {
|
|
231
|
+
blackmagicRawResourceFormatRGBAU8 = /* 'rgba' */ 0x72676261,
|
|
232
|
+
blackmagicRawResourceFormatBGRAU8 = /* 'bgra' */ 0x62677261,
|
|
233
|
+
blackmagicRawResourceFormatRGBU16 = /* '16il' */ 0x3136696C,
|
|
234
|
+
blackmagicRawResourceFormatRGBAU16 = /* '16al' */ 0x3136616C,
|
|
235
|
+
blackmagicRawResourceFormatBGRAU16 = /* '16la' */ 0x31366C61,
|
|
236
|
+
blackmagicRawResourceFormatRGBU16Planar = /* '16pl' */ 0x3136706C,
|
|
237
|
+
blackmagicRawResourceFormatRGBF32 = /* 'f32s' */ 0x66333273,
|
|
238
|
+
blackmagicRawResourceFormatRGBAF32 = /* 'f32l' */ 0x6633326C,
|
|
239
|
+
blackmagicRawResourceFormatBGRAF32 = /* 'f32a' */ 0x66333261,
|
|
240
|
+
blackmagicRawResourceFormatRGBF32Planar = /* 'f32p' */ 0x66333270,
|
|
241
|
+
blackmagicRawResourceFormatRGBF16 = /* 'f16s' */ 0x66313673,
|
|
242
|
+
blackmagicRawResourceFormatRGBAF16 = /* 'f16l' */ 0x6631366C,
|
|
243
|
+
blackmagicRawResourceFormatBGRAF16 = /* 'f16a' */ 0x66313661,
|
|
244
|
+
blackmagicRawResourceFormatRGBF16Planar = /* 'f16p' */ 0x66313670,
|
|
245
|
+
};
|
|
246
|
+
|
|
247
|
+
/* Enum BlackmagicRawResourceUsage - Used in IBlackmagicRawResourceManager */
|
|
248
|
+
|
|
249
|
+
typedef uint32_t BlackmagicRawResourceUsage;
|
|
250
|
+
enum _BlackmagicRawResourceUsage {
|
|
251
|
+
blackmagicRawResourceUsageReadCPUWriteCPU = /* 'rcwc' */ 0x72637763,
|
|
252
|
+
blackmagicRawResourceUsageReadGPUWriteGPU = /* 'rgwg' */ 0x72677767,
|
|
253
|
+
blackmagicRawResourceUsageReadGPUWriteCPU = /* 'rgwc' */ 0x72677763,
|
|
254
|
+
blackmagicRawResourceUsageReadCPUWriteGPU = /* 'rcwg' */ 0x72637767
|
|
255
|
+
};
|
|
256
|
+
|
|
257
|
+
/* Enum BlackmagicRawPipeline - Used in IBlackmagicRawConfiguration. Each pipeline has different mappings to context/commandQueue */
|
|
258
|
+
|
|
259
|
+
typedef uint32_t BlackmagicRawPipeline;
|
|
260
|
+
enum _BlackmagicRawPipeline {
|
|
261
|
+
blackmagicRawPipelineCPU = /* 'cpub' */ 0x63707562,
|
|
262
|
+
blackmagicRawPipelineCUDA = /* 'cuda' */ 0x63756461, // context/commandQueue maps to CUcontext/CUstream
|
|
263
|
+
blackmagicRawPipelineMetal = /* 'metl' */ 0x6D65746C, // context/commandQueue maps to nil/MTLCommandQueue
|
|
264
|
+
blackmagicRawPipelineOpenCL = /* 'opcl' */ 0x6F70636C // context/commandQueue maps to cl_context/cl_command_queue
|
|
265
|
+
};
|
|
266
|
+
|
|
267
|
+
/* Enum BlackmagicRawInstructionSet - Used in IBlackmagicRawConfiguration */
|
|
268
|
+
|
|
269
|
+
typedef uint32_t BlackmagicRawInstructionSet;
|
|
270
|
+
enum _BlackmagicRawInstructionSet {
|
|
271
|
+
blackmagicRawInstructionSetSSE41 = /* 'se41' */ 0x73653431,
|
|
272
|
+
blackmagicRawInstructionSetAVX = /* 'avx_' */ 0x6176785F,
|
|
273
|
+
blackmagicRawInstructionSetAVX2 = /* 'avx2' */ 0x61767832,
|
|
274
|
+
blackmagicRawInstructionSetNEON = /* 'neon' */ 0x6E656F6E
|
|
275
|
+
};
|
|
276
|
+
|
|
277
|
+
/* Enum BlackmagicRawAudioFormat - Used in IBlackmagicRawFileAudio */
|
|
278
|
+
|
|
279
|
+
typedef uint32_t BlackmagicRawAudioFormat;
|
|
280
|
+
enum _BlackmagicRawAudioFormat {
|
|
281
|
+
blackmagicRawAudioFormatPCMLittleEndian = /* 'pcml' */ 0x70636D6C
|
|
282
|
+
};
|
|
283
|
+
|
|
284
|
+
/* Enum BlackmagicRawResolutionScale - Used in IBlackmagicRawFrame */
|
|
285
|
+
|
|
286
|
+
typedef uint32_t BlackmagicRawResolutionScale;
|
|
287
|
+
enum _BlackmagicRawResolutionScale {
|
|
288
|
+
blackmagicRawResolutionScaleFull = /* 'full' */ 0x66756C6C,
|
|
289
|
+
blackmagicRawResolutionScaleHalf = /* 'half' */ 0x68616C66,
|
|
290
|
+
blackmagicRawResolutionScaleQuarter = /* 'qrtr' */ 0x71727472,
|
|
291
|
+
blackmagicRawResolutionScaleEighth = /* 'eith' */ 0x65697468,
|
|
292
|
+
};
|
|
293
|
+
|
|
294
|
+
/* Enum BlackmagicRawClipProcessingAttribute - Variant types that may be stored as metadata */
|
|
295
|
+
|
|
296
|
+
typedef uint32_t BlackmagicRawClipProcessingAttribute;
|
|
297
|
+
enum _BlackmagicRawClipProcessingAttribute {
|
|
298
|
+
blackmagicRawClipProcessingAttributeColorScienceGen = /* 'csgn' */ 0x6373676E, // u16
|
|
299
|
+
blackmagicRawClipProcessingAttributeGamma = /* 'gama' */ 0x67616D61, // string
|
|
300
|
+
blackmagicRawClipProcessingAttributeGamut = /* 'gamt' */ 0x67616D74, // string
|
|
301
|
+
blackmagicRawClipProcessingAttributeToneCurveContrast = /* 'tcon' */ 0x74636F6E, // float
|
|
302
|
+
blackmagicRawClipProcessingAttributeToneCurveSaturation = /* 'tsat' */ 0x74736174, // float
|
|
303
|
+
blackmagicRawClipProcessingAttributeToneCurveMidpoint = /* 'tmid' */ 0x746D6964, // float
|
|
304
|
+
blackmagicRawClipProcessingAttributeToneCurveHighlights = /* 'thih' */ 0x74686968, // float
|
|
305
|
+
blackmagicRawClipProcessingAttributeToneCurveShadows = /* 'tsha' */ 0x74736861, // float
|
|
306
|
+
blackmagicRawClipProcessingAttributeToneCurveVideoBlackLevel = /* 'tvbl' */ 0x7476626C, // u16
|
|
307
|
+
blackmagicRawClipProcessingAttributeToneCurveBlackLevel = /* 'tblk' */ 0x74626C6B, // float
|
|
308
|
+
blackmagicRawClipProcessingAttributeToneCurveWhiteLevel = /* 'twit' */ 0x74776974, // float
|
|
309
|
+
blackmagicRawClipProcessingAttributeHighlightRecovery = /* 'hlry' */ 0x686C7279, // u16
|
|
310
|
+
blackmagicRawClipProcessingAttributeAnalogGainIsConstant = /* 'agic' */ 0x61676963, // u16
|
|
311
|
+
blackmagicRawClipProcessingAttributeAnalogGain = /* 'gain' */ 0x6761696E, // float
|
|
312
|
+
blackmagicRawClipProcessingAttributePost3DLUTMode = /* 'lutm' */ 0x6C75746D, // string
|
|
313
|
+
blackmagicRawClipProcessingAttributeEmbeddedPost3DLUTName = /* 'emln' */ 0x656D6C6E, // string
|
|
314
|
+
blackmagicRawClipProcessingAttributeEmbeddedPost3DLUTTitle = /* 'emlt' */ 0x656D6C74, // string
|
|
315
|
+
blackmagicRawClipProcessingAttributeEmbeddedPost3DLUTSize = /* 'emls' */ 0x656D6C73, // u16
|
|
316
|
+
blackmagicRawClipProcessingAttributeEmbeddedPost3DLUTData = /* 'emld' */ 0x656D6C64, // float array, size*size*size*3 elements
|
|
317
|
+
blackmagicRawClipProcessingAttributeSidecarPost3DLUTName = /* 'scln' */ 0x73636C6E, // string
|
|
318
|
+
blackmagicRawClipProcessingAttributeSidecarPost3DLUTTitle = /* 'sclt' */ 0x73636C74, // string
|
|
319
|
+
blackmagicRawClipProcessingAttributeSidecarPost3DLUTSize = /* 'scls' */ 0x73636C73, // u16
|
|
320
|
+
blackmagicRawClipProcessingAttributeSidecarPost3DLUTData = /* 'scld' */ 0x73636C64, // float array, size*size*size*3 elements
|
|
321
|
+
blackmagicRawClipProcessingAttributeGamutCompressionEnable = /* 'gace' */ 0x67616365, // u16, 0=disabled, 1=enabled
|
|
322
|
+
blackmagicRawClipProcessingAttributeLensShadingEnable = /* 'shde' */ 0x73686465, // u16
|
|
323
|
+
blackmagicRawClipProcessingAttributeLensDistortionCorrectionEnable = /* 'dice' */ 0x64696365, // u16
|
|
324
|
+
blackmagicRawClipProcessingAttributeLensChromaticAberrationCorrectionEnable = /* 'cace' */ 0x63616365, // u16
|
|
325
|
+
};
|
|
326
|
+
|
|
327
|
+
/* Enum BlackmagicRawFrameProcessingAttribute - Variant types that may be stored as metadata */
|
|
328
|
+
|
|
329
|
+
typedef uint32_t BlackmagicRawFrameProcessingAttribute;
|
|
330
|
+
enum _BlackmagicRawFrameProcessingAttribute {
|
|
331
|
+
blackmagicRawFrameProcessingAttributeWhiteBalanceKelvin = /* 'wbkv' */ 0x77626B76, // u32
|
|
332
|
+
blackmagicRawFrameProcessingAttributeWhiteBalanceTint = /* 'wbtn' */ 0x7762746E, // s16
|
|
333
|
+
blackmagicRawFrameProcessingAttributeExposure = /* 'expo' */ 0x6578706F, // float
|
|
334
|
+
blackmagicRawFrameProcessingAttributeISO = /* 'fiso' */ 0x6669736F, // u32
|
|
335
|
+
blackmagicRawFrameProcessingAttributeAnalogGain = /* 'agpf' */ 0x61677066 // float
|
|
336
|
+
};
|
|
337
|
+
|
|
338
|
+
/* Enum BlackmagicRawImmersiveAttribute - Variant types that may be stored as metadata */
|
|
339
|
+
|
|
340
|
+
typedef uint32_t BlackmagicRawImmersiveAttribute;
|
|
341
|
+
enum _BlackmagicRawImmersiveAttribute {
|
|
342
|
+
blackmagicRawImmersiveAttributeOpticalLensProcessingDataFileUUID = /* 'oldu' */ 0x6F6C6475, // string
|
|
343
|
+
blackmagicRawImmersiveAttributeOpticalILPDFileName = /* 'oldf' */ 0x6F6C6466, // string
|
|
344
|
+
blackmagicRawImmersiveAttributeOpticalInteraxial = /* 'olix' */ 0x6F6C6978, // i8
|
|
345
|
+
blackmagicRawImmersiveAttributeOpticalProjectionKind = /* 'olpk' */ 0x6F6C706B, // string
|
|
346
|
+
blackmagicRawImmersiveAttributeOpticalCalibrationType = /* 'olct' */ 0x6F6C6374, // string
|
|
347
|
+
blackmagicRawImmersiveAttributeOpticalProjectionData = /* 'olpd' */ 0x6F6C7064 // string
|
|
348
|
+
};
|
|
349
|
+
|
|
350
|
+
/* Enum BlackmagicRawInterop - */
|
|
351
|
+
|
|
352
|
+
typedef uint32_t BlackmagicRawInterop;
|
|
353
|
+
enum _BlackmagicRawInterop {
|
|
354
|
+
blackmagicRawInteropNone = /* 'none' */ 0x6E6F6E65,
|
|
355
|
+
blackmagicRawInteropOpenGL = /* 'opgl' */ 0x6F70676C
|
|
356
|
+
};
|
|
357
|
+
|
|
358
|
+
/* Enum BlackmagicRawAnamorphicRatio - */
|
|
359
|
+
|
|
360
|
+
typedef uint32_t BlackmagicRawAnamorphicRatio;
|
|
361
|
+
enum _BlackmagicRawAnamorphicRatio {
|
|
362
|
+
blackmagicRawAnamorphicRatioFromMetadata = /* 'meta' */ 0x6D657461,
|
|
363
|
+
blackmagicRawAnamorphicRatioDisabled = /* 'dsbl' */ 0x6473626C,
|
|
364
|
+
blackmagicRawAnamorphicRatio133x = /* '133x' */ 0x31333378,
|
|
365
|
+
blackmagicRawAnamorphicRatio15x = /* '15x_' */ 0x3135785F,
|
|
366
|
+
blackmagicRawAnamorphicRatio16x = /* '16x_' */ 0x3136785F,
|
|
367
|
+
blackmagicRawAnamorphicRatio166x = /* '166x' */ 0x31363678,
|
|
368
|
+
blackmagicRawAnamorphicRatio18x = /* '18x_' */ 0x3138785F,
|
|
369
|
+
blackmagicRawAnamorphicRatio2x = /* '2x__' */ 0x32785F5F
|
|
370
|
+
};
|
|
371
|
+
|
|
372
|
+
/* Enum BlackmagicRawRotation - */
|
|
373
|
+
|
|
374
|
+
typedef uint32_t BlackmagicRawRotation;
|
|
375
|
+
enum _BlackmagicRawRotation {
|
|
376
|
+
blackmagicRawRotationFromMetadata = /* 'meta' */ 0x6D657461,
|
|
377
|
+
blackmagicRawRotationDisabled = /* 'dsbl' */ 0x6473626C,
|
|
378
|
+
blackmagicRawRotationClockwise90 = /* 'r90_' */ 0x7239305F,
|
|
379
|
+
blackmagicRawRotationClockwise180 = /* 'r180' */ 0x72313830,
|
|
380
|
+
blackmagicRawRotationClockwise270 = /* 'r270' */ 0x72323730
|
|
381
|
+
};
|
|
382
|
+
|
|
383
|
+
/* Enum BlackmagicRawFlip - */
|
|
384
|
+
|
|
385
|
+
typedef uint32_t BlackmagicRawFlip;
|
|
386
|
+
enum _BlackmagicRawFlip {
|
|
387
|
+
blackmagicRawFlipFromMetadata = /* 'meta' */ 0x6D657461,
|
|
388
|
+
blackmagicRawFlipDisabled = /* 'dsbl' */ 0x6473626C,
|
|
389
|
+
blackmagicRawFlipHorizontal = /* 'flpx' */ 0x666C7078,
|
|
390
|
+
blackmagicRawFlipVertical = /* 'flpy' */ 0x666C7079,
|
|
391
|
+
blackmagicRawFlipBoth = /* 'flpb' */ 0x666C7062
|
|
392
|
+
};
|
|
393
|
+
|
|
394
|
+
/* Enum BlackmagicRawSizeLimit - Used in IBlackmagicRawConfigurationEx */
|
|
395
|
+
// braw 4.5
|
|
396
|
+
typedef uint32_t BlackmagicRawSizeLimit;
|
|
397
|
+
enum _BlackmagicRawSizeLimit {
|
|
398
|
+
blackmagicRawSizeLimitNone = /* 'szln' */ 0x737A6C6E,
|
|
399
|
+
blackmagicRawSizeLimitScale = /* 'szsc' */ 0x737A7363,
|
|
400
|
+
blackmagicRawSizeLimitCrop = /* 'szlc' */ 0x737A6C63
|
|
401
|
+
};
|
|
402
|
+
|
|
403
|
+
/* Enum BlackmagicRawImmersiveVideoTrack - */
|
|
404
|
+
|
|
405
|
+
typedef uint32_t BlackmagicRawImmersiveVideoTrack;
|
|
406
|
+
enum _BlackmagicRawImmersiveVideoTrack {
|
|
407
|
+
blackmagicRawImmersiveVideoTrackLeft = 0,
|
|
408
|
+
blackmagicRawImmersiveVideoTrackRight = 1
|
|
409
|
+
};
|
|
410
|
+
|
|
411
|
+
#if defined(__cplusplus)
|
|
412
|
+
|
|
413
|
+
// Forward Declarations
|
|
414
|
+
|
|
415
|
+
class IBlackmagicRaw;
|
|
416
|
+
class IBlackmagicRawFactory;
|
|
417
|
+
class IBlackmagicRawPipelineIterator;
|
|
418
|
+
class IBlackmagicRawPipelineDeviceIterator;
|
|
419
|
+
class IBlackmagicRawOpenGLInteropHelper;
|
|
420
|
+
class IBlackmagicRawPipelineDevice;
|
|
421
|
+
class IBlackmagicRawToneCurve;
|
|
422
|
+
class IBlackmagicRawConfiguration;
|
|
423
|
+
class IBlackmagicRawConfigurationEx;
|
|
424
|
+
class IBlackmagicRawClipGeometry;
|
|
425
|
+
class IBlackmagicRawResourceManager;
|
|
426
|
+
class IBlackmagicRawMetadataIterator;
|
|
427
|
+
class IBlackmagicRawClipProcessingAttributes;
|
|
428
|
+
class IBlackmagicRawFrameProcessingAttributes;
|
|
429
|
+
class IBlackmagicRawPost3DLUT;
|
|
430
|
+
class IBlackmagicRawProcessedImage;
|
|
431
|
+
class IBlackmagicRawJob;
|
|
432
|
+
class IBlackmagicRawReadJobHints;
|
|
433
|
+
class IBlackmagicRawCallback;
|
|
434
|
+
class IBlackmagicRawClipAudio;
|
|
435
|
+
class IBlackmagicRawFilesystem;
|
|
436
|
+
class IBlackmagicRawFile;
|
|
437
|
+
class IBlackmagicRawClipAccelerometerMotion;
|
|
438
|
+
class IBlackmagicRawClipGyroscopeMotion;
|
|
439
|
+
class IBlackmagicRawClipPDAFData;
|
|
440
|
+
class IBlackmagicRawAudioBuffer;
|
|
441
|
+
class IBlackmagicRawFrame;
|
|
442
|
+
class IBlackmagicRawFrameEx;
|
|
443
|
+
class IBlackmagicRawFrameMultiVideo;
|
|
444
|
+
class IBlackmagicRawManualDecoderFlow1;
|
|
445
|
+
class IBlackmagicRawManualDecoderFlow2;
|
|
446
|
+
class IBlackmagicRawClip;
|
|
447
|
+
class IBlackmagicRawClipEx;
|
|
448
|
+
class IBlackmagicRawClipMultiVideo;
|
|
449
|
+
class IBlackmagicRawClipImmersiveVideo;
|
|
450
|
+
class IBlackmagicRawClipResolutions;
|
|
451
|
+
|
|
452
|
+
/* Struct SafeArrayBound - Dimensionality of a SafeArray */
|
|
453
|
+
|
|
454
|
+
#ifdef _WIN32
|
|
455
|
+
using SafeArray = SAFEARRAY;
|
|
456
|
+
using SafeArrayBound = SAFEARRAYBOUND;
|
|
457
|
+
#else
|
|
458
|
+
struct SafeArrayBound
|
|
459
|
+
{
|
|
460
|
+
uint32_t lLbound;
|
|
461
|
+
uint32_t cElements;
|
|
462
|
+
};
|
|
463
|
+
|
|
464
|
+
/* Struct SafeArray - Typed array of data, passed into and out of API library */
|
|
465
|
+
|
|
466
|
+
struct SafeArray
|
|
467
|
+
{
|
|
468
|
+
BlackmagicRawVariantType variantType;
|
|
469
|
+
uint32_t cDims;
|
|
470
|
+
uint8_t* data;
|
|
471
|
+
SafeArrayBound bounds;
|
|
472
|
+
};
|
|
473
|
+
|
|
474
|
+
/* Struct Variant - Structure wrapping metadata, passed into and out of the API Library */
|
|
475
|
+
|
|
476
|
+
struct Variant
|
|
477
|
+
{
|
|
478
|
+
BlackmagicRawVariantType vt;
|
|
479
|
+
|
|
480
|
+
// Metadata
|
|
481
|
+
union {
|
|
482
|
+
int16_t iVal;
|
|
483
|
+
uint16_t uiVal;
|
|
484
|
+
int32_t intVal;
|
|
485
|
+
uint32_t uintVal;
|
|
486
|
+
float fltVal;
|
|
487
|
+
BRawStr bstrVal;
|
|
488
|
+
SafeArray* parray;
|
|
489
|
+
};
|
|
490
|
+
};
|
|
491
|
+
using VARIANT = Variant;
|
|
492
|
+
using VARTYPE = BlackmagicRawVariantType;
|
|
493
|
+
#endif
|
|
494
|
+
|
|
495
|
+
/* Interface IBlackmagicRaw - A single codec instance */
|
|
496
|
+
|
|
497
|
+
class BMD_PUBLIC IBlackmagicRaw : public IUnknown
|
|
498
|
+
{
|
|
499
|
+
public:
|
|
500
|
+
// fileName or filePath(6.0)
|
|
501
|
+
virtual HRESULT OpenClip (/* in */ BRawStr fileName, /* out */ IBlackmagicRawClip** clip) = 0;
|
|
502
|
+
#if (BRAW_MAJOR + 0) >= 3
|
|
503
|
+
virtual HRESULT OpenClipWithGeometry (/* in */ BRawStr fileName, /* in */ IBlackmagicRawClipGeometry* geometry, /* out */ IBlackmagicRawClip** clip) = 0;
|
|
504
|
+
#endif
|
|
505
|
+
#if (BRAW_MAJOR + 0) >= 6
|
|
506
|
+
virtual HRESULT OpenClipFromFile (/* in */ IBlackmagicRawFile* brawFile, /* out */ IBlackmagicRawClip** clip) = 0;
|
|
507
|
+
virtual HRESULT OpenClipFromFileWithGeometry (/* in */ IBlackmagicRawFile* brawFile, /* in */ IBlackmagicRawClipGeometry* geometry, /* out */ IBlackmagicRawClip** clip) = 0;
|
|
508
|
+
#endif
|
|
509
|
+
virtual HRESULT SetCallback (/* in */ IBlackmagicRawCallback* callback) = 0;
|
|
510
|
+
virtual HRESULT PreparePipeline (/* in */ BlackmagicRawPipeline pipeline, /* in */ void* pipelineContext, /* in */ void* pipelineCommandQueue, /* in */ void* userData /* optional */) = 0; // Asynchronously prepares the current pipeline
|
|
511
|
+
virtual HRESULT PreparePipelineForDevice (/* in */ IBlackmagicRawPipelineDevice* pipelineDevice, /* in */ void* userData /* optional */) = 0; // Asynchronously prepares the current pipeline
|
|
512
|
+
virtual HRESULT FlushJobs (void) = 0; // Blocking call which will only return once all jobs have been completed
|
|
513
|
+
|
|
514
|
+
protected:
|
|
515
|
+
virtual ~IBlackmagicRaw () {} // call Release method to drop reference count
|
|
516
|
+
};
|
|
517
|
+
|
|
518
|
+
/* Interface IBlackmagicRawFactory - Use this to create one or more Codec objects */
|
|
519
|
+
|
|
520
|
+
class BMD_PUBLIC IBlackmagicRawFactory : public IUnknown
|
|
521
|
+
{
|
|
522
|
+
public:
|
|
523
|
+
virtual HRESULT CreateCodec (/* out */ IBlackmagicRaw** codec) = 0;
|
|
524
|
+
virtual HRESULT CreatePipelineIterator (/* in */ BlackmagicRawInterop interop, /* out */ IBlackmagicRawPipelineIterator** pipelineIterator) = 0;
|
|
525
|
+
virtual HRESULT CreatePipelineDeviceIterator (/* in */ BlackmagicRawPipeline pipeline, /* in */ BlackmagicRawInterop interop, /* out */ IBlackmagicRawPipelineDeviceIterator** deviceIterator) = 0;
|
|
526
|
+
#if (BRAW_MAJOR + 0) >= 3
|
|
527
|
+
virtual HRESULT CreateClipGeometry (/* out */ IBlackmagicRawClipGeometry** geometry) = 0;
|
|
528
|
+
#endif
|
|
529
|
+
protected:
|
|
530
|
+
virtual ~IBlackmagicRawFactory () {} // call Release method to drop reference count
|
|
531
|
+
};
|
|
532
|
+
|
|
533
|
+
/* Interface IBlackmagicRawPipelineIterator - Use this to determine pipelines available for use on the system */
|
|
534
|
+
|
|
535
|
+
class BMD_PUBLIC IBlackmagicRawPipelineIterator : public IUnknown
|
|
536
|
+
{
|
|
537
|
+
public:
|
|
538
|
+
virtual HRESULT Next (void) = 0; // When at last entry, calling Next() will return S_FALSE
|
|
539
|
+
virtual HRESULT GetName (/* out */ BRawStr* pipelineName) = 0;
|
|
540
|
+
virtual HRESULT GetInterop (/* out */ BlackmagicRawInterop* interop) = 0;
|
|
541
|
+
virtual HRESULT GetPipeline (/* out */ BlackmagicRawPipeline* pipeline) = 0;
|
|
542
|
+
|
|
543
|
+
protected:
|
|
544
|
+
virtual ~IBlackmagicRawPipelineIterator () {} // call Release method to drop reference count
|
|
545
|
+
};
|
|
546
|
+
|
|
547
|
+
/* Interface IBlackmagicRawPipelineDeviceIterator - Use this to determine pipeline devices available for use on the system */
|
|
548
|
+
|
|
549
|
+
class BMD_PUBLIC IBlackmagicRawPipelineDeviceIterator : public IUnknown
|
|
550
|
+
{
|
|
551
|
+
public:
|
|
552
|
+
virtual HRESULT Next (void) = 0; // When at last entry, calling Next() will return S_FALSE
|
|
553
|
+
virtual HRESULT GetPipeline (/* out */ BlackmagicRawPipeline* pipeline) = 0;
|
|
554
|
+
virtual HRESULT GetInterop (/* out */ BlackmagicRawInterop* interop) = 0;
|
|
555
|
+
virtual HRESULT CreateDevice (/* out */ IBlackmagicRawPipelineDevice** pipelineDevice) = 0;
|
|
556
|
+
|
|
557
|
+
protected:
|
|
558
|
+
virtual ~IBlackmagicRawPipelineDeviceIterator () {} // call Release method to drop reference count
|
|
559
|
+
};
|
|
560
|
+
|
|
561
|
+
/* Interface IBlackmagicRawOpenGLInteropHelper - */
|
|
562
|
+
|
|
563
|
+
class BMD_PUBLIC IBlackmagicRawOpenGLInteropHelper : public IUnknown
|
|
564
|
+
{
|
|
565
|
+
public:
|
|
566
|
+
virtual HRESULT GetPreferredResourceFormat (/* out */ BlackmagicRawResourceFormat* preferredFormat) = 0;
|
|
567
|
+
virtual HRESULT SetImage (/* in */ IBlackmagicRawProcessedImage* processedImage, /* out */ uint32_t* openGLTextureName, /* out */ int32_t* openGLTextureTarget) = 0;
|
|
568
|
+
|
|
569
|
+
protected:
|
|
570
|
+
virtual ~IBlackmagicRawOpenGLInteropHelper () {} // call Release method to drop reference count
|
|
571
|
+
};
|
|
572
|
+
|
|
573
|
+
/* Interface IBlackmagicRawPipelineDevice - */
|
|
574
|
+
|
|
575
|
+
class BMD_PUBLIC IBlackmagicRawPipelineDevice : public IUnknown
|
|
576
|
+
{
|
|
577
|
+
public:
|
|
578
|
+
virtual HRESULT SetBestInstructionSet (void) = 0;
|
|
579
|
+
virtual HRESULT SetInstructionSet (/* in */ BlackmagicRawInstructionSet instructionSet) = 0;
|
|
580
|
+
virtual HRESULT GetInstructionSet (/* out */ BlackmagicRawInstructionSet* instructionSet) = 0;
|
|
581
|
+
virtual HRESULT GetIndex (/* out */ uint32_t* deviceIndex) = 0;
|
|
582
|
+
virtual HRESULT GetName (/* out */ BRawStr* deviceName) = 0;
|
|
583
|
+
#if (BRAW_VERSION + 0) >= 600
|
|
584
|
+
virtual HRESULT GetUniqueIdentifier (/* out */ uint64_t* uniqueIdentifier) = 0;
|
|
585
|
+
#endif
|
|
586
|
+
virtual HRESULT GetInterop (/* out */ BlackmagicRawInterop* interop) = 0;
|
|
587
|
+
virtual HRESULT GetPipeline (/* out */ BlackmagicRawPipeline* pipeline, /* out */ void** context, /* out */ void** commandQueue) = 0;
|
|
588
|
+
virtual HRESULT GetPipelineName (/* out */ BRawStr* pipelineName) = 0;
|
|
589
|
+
virtual HRESULT GetOpenGLInteropHelper (/* out */ IBlackmagicRawOpenGLInteropHelper** interopHelper) = 0;
|
|
590
|
+
#if (BRAW_VERSION + 0) >= 400
|
|
591
|
+
virtual HRESULT GetSupportedResourceFormats (/* out */ BlackmagicRawResourceFormat* array /* optional */, /* in, out */ uint32_t* arrayElementCount /* optional */) = 0;
|
|
592
|
+
# if (BRAW_VERSION + 0) >= 450
|
|
593
|
+
virtual HRESULT GetMaximumTextureSize (/* out */ uint32_t* maximumWidth, /* out */ uint32_t* maximumHeight) = 0;
|
|
594
|
+
# endif
|
|
595
|
+
#endif
|
|
596
|
+
#if (BRAW_VERSION + 0) >= 600 || (BRAW_VERSION + 0) < 400
|
|
597
|
+
protected:
|
|
598
|
+
virtual ~IBlackmagicRawPipelineDevice () {} // call Release method to drop reference count
|
|
599
|
+
#endif
|
|
600
|
+
};
|
|
601
|
+
|
|
602
|
+
/* Interface IBlackmagicRawToneCurve - Functions which provide useful tone curve operations */
|
|
603
|
+
|
|
604
|
+
class BMD_PUBLIC IBlackmagicRawToneCurve : public IUnknown
|
|
605
|
+
{
|
|
606
|
+
public:
|
|
607
|
+
virtual HRESULT GetToneCurve (/* in */ BRawStr cameraType, /* in */ BRawStr gamma, /* in */ uint16_t gen /* Color science gen */, /* out */ float* contrast, /* out */ float* saturation, /* out */ float* midpoint, /* out */ float* highlights, /* out */ float* shadows, /* out */ float* blackLevel, /* out */ float* whiteLevel, /* out */ uint16_t* videoBlackLevel) = 0; // Query tone curve parameters for a specific camera and gamma. These are only currently available on Gamut: Blackmagic Design, Gamma: Blackmagic Design Film, Blackmagic Design Extended Video, Blackmagic Design Custom. Note: Custom gamma can define a tone curve per clip, see BlackmagicRawClipProcessingAttributes::GetToneCurveForCustomGamma()
|
|
608
|
+
virtual HRESULT EvaluateToneCurve (/* in */ BRawStr cameraType, /* in */ uint16_t gen, /* in */ float contrast, /* in */ float saturation, /* in */ float midpoint, /* in */ float highlights, /* in */ float shadows, /* in */ float blackLevel, /* in */ float whiteLevel, /* in */ uint16_t videoBlackLevel, /* out */ float* array, /* in */ uint32_t arrayElementCount) = 0; // Evaluates tone curve, returned buffer can be used to visualise curve
|
|
609
|
+
|
|
610
|
+
protected:
|
|
611
|
+
virtual ~IBlackmagicRawToneCurve () {} // call Release method to drop reference count
|
|
612
|
+
};
|
|
613
|
+
|
|
614
|
+
/* Interface IBlackmagicRawConfiguration - Configuration for Codec Object. Configuration properties are read on first OpenClip() */
|
|
615
|
+
|
|
616
|
+
class BMD_PUBLIC IBlackmagicRawConfiguration : public IUnknown
|
|
617
|
+
{
|
|
618
|
+
public:
|
|
619
|
+
virtual HRESULT SetPipeline (/* in */ BlackmagicRawPipeline pipeline /* changing pipeline will cause the default resource manager to be re-created */, /* in */ void* pipelineContext, /* in */ void* pipelineCommandQueue) = 0;
|
|
620
|
+
virtual HRESULT GetPipeline (/* out */ BlackmagicRawPipeline* pipeline /* optional */, /* out */ void** pipelineContextOut /* optional */, /* out */ void** pipelineCommandQueueOut /* optional */) = 0;
|
|
621
|
+
virtual HRESULT IsPipelineSupported (/* in */ BlackmagicRawPipeline pipeline, /* out */ bool* pipelineSupported) = 0; // Verifies relevant hardware/DLLs are available
|
|
622
|
+
virtual HRESULT SetCPUThreads (/* in */ uint32_t threadCount /* set 0 for default */) = 0;
|
|
623
|
+
virtual HRESULT GetCPUThreads (/* out */ uint32_t* threadCount) = 0;
|
|
624
|
+
virtual HRESULT GetMaxCPUThreadCount (/* out */ uint32_t* threadCount) = 0;
|
|
625
|
+
virtual HRESULT SetWriteMetadataPerFrame (/* in */ bool writePerFrame) = 0; // if true, frame metadata will be written to only the relevant frame
|
|
626
|
+
virtual HRESULT GetWriteMetadataPerFrame (/* out */ bool* writePerFrame) = 0;
|
|
627
|
+
virtual HRESULT SetFromDevice (/* in */ IBlackmagicRawPipelineDevice* pipelineDevice) = 0;
|
|
628
|
+
#if (BRAW_MAJOR + 0) >= 3
|
|
629
|
+
virtual HRESULT GetVersion (/* out */ BRawStr* version) = 0;
|
|
630
|
+
virtual HRESULT GetCameraSupportVersion (/* out */ BRawStr* version) = 0;
|
|
631
|
+
#endif
|
|
632
|
+
protected:
|
|
633
|
+
virtual ~IBlackmagicRawConfiguration () {} // call Release method to drop reference count
|
|
634
|
+
};
|
|
635
|
+
|
|
636
|
+
/* Interface IBlackmagicRawConfigurationEx - Extended Configuration for Codec Object */
|
|
637
|
+
|
|
638
|
+
class BMD_PUBLIC IBlackmagicRawConfigurationEx : public IUnknown
|
|
639
|
+
{
|
|
640
|
+
public:
|
|
641
|
+
virtual HRESULT GetResourceManager (/* out */ IBlackmagicRawResourceManager** resourceManager) = 0;
|
|
642
|
+
virtual HRESULT SetResourceManager (/* in */ IBlackmagicRawResourceManager* resourceManager /* setting null will restore the default resource manager */) = 0; // Set to NULL to return to default resource manager
|
|
643
|
+
virtual HRESULT GetInstructionSet (/* out */ BlackmagicRawInstructionSet* instructionSet) = 0;
|
|
644
|
+
virtual HRESULT SetInstructionSet (/* in */ BlackmagicRawInstructionSet instructionSet) = 0;
|
|
645
|
+
|
|
646
|
+
protected:
|
|
647
|
+
virtual ~IBlackmagicRawConfigurationEx () {} // call Release method to drop reference count
|
|
648
|
+
};
|
|
649
|
+
|
|
650
|
+
/* Interface IBlackmagicRawClipGeometry - Geometry properties of Clip object */
|
|
651
|
+
|
|
652
|
+
class BMD_PUBLIC IBlackmagicRawClipGeometry : public IUnknown
|
|
653
|
+
{
|
|
654
|
+
public:
|
|
655
|
+
virtual HRESULT GetAnamorphicRatio (/* out */ BlackmagicRawAnamorphicRatio* anamorphic) = 0;
|
|
656
|
+
virtual HRESULT SetAnamorphicRatio (/* in */ BlackmagicRawAnamorphicRatio anamorphic) = 0;
|
|
657
|
+
virtual HRESULT GetRotation (/* out */ BlackmagicRawRotation* rotation) = 0;
|
|
658
|
+
virtual HRESULT SetRotation (/* in */ BlackmagicRawRotation rotation) = 0;
|
|
659
|
+
virtual HRESULT GetFlip (/* out */ BlackmagicRawFlip* flip) = 0;
|
|
660
|
+
virtual HRESULT SetFlip (/* in */ BlackmagicRawFlip flip) = 0;
|
|
661
|
+
|
|
662
|
+
#if (BRAW_MAJOR + 0) >= 4
|
|
663
|
+
protected:
|
|
664
|
+
virtual ~IBlackmagicRawClipGeometry () {} // call Release method to drop reference count
|
|
665
|
+
#endif
|
|
666
|
+
};
|
|
667
|
+
|
|
668
|
+
/* Interface IBlackmagicRawResourceManager - Resource manager allows manual handling of CPU/GPU resource allocation */
|
|
669
|
+
|
|
670
|
+
class BMD_PUBLIC IBlackmagicRawResourceManager : public IUnknown
|
|
671
|
+
{
|
|
672
|
+
public:
|
|
673
|
+
virtual HRESULT CreateResource (/* in */ void* context, /* in */ void* commandQueue, /* in */ uint32_t sizeBytes, /* in */ BlackmagicRawResourceType type, /* in */ BlackmagicRawResourceUsage usage, /* out */ void** resource) = 0;
|
|
674
|
+
virtual HRESULT ReleaseResource (/* in */ void* context, /* in */ void* commandQueue, /* in */ void* resource, /* in */ BlackmagicRawResourceType type) = 0;
|
|
675
|
+
virtual HRESULT CopyResource (/* in */ void* context, /* in */ void* commandQueue, /* in */ void* source, /* in */ BlackmagicRawResourceType sourceType, /* in */ void* destination, /* in */ BlackmagicRawResourceType destinationType, /* in */ uint32_t sizeBytes, /* in */ bool copyAsync) = 0; // Utility function, not called by the API
|
|
676
|
+
virtual HRESULT GetResourceHostPointer (/* in */ void* context, /* in */ void* commandQueue, /* in */ void* resource, /* in */ BlackmagicRawResourceType resourceType, /* out */ void** hostPointer) = 0; // Utility function, not called by the API
|
|
677
|
+
|
|
678
|
+
protected:
|
|
679
|
+
virtual ~IBlackmagicRawResourceManager () {} // call Release method to drop reference count
|
|
680
|
+
};
|
|
681
|
+
|
|
682
|
+
/* Interface IBlackmagicRawMetadataIterator - Iterating metadata */
|
|
683
|
+
|
|
684
|
+
class BMD_PUBLIC IBlackmagicRawMetadataIterator : public IUnknown
|
|
685
|
+
{
|
|
686
|
+
public:
|
|
687
|
+
virtual HRESULT Next (void) = 0; // When at last entry, calling Next() will return S_FALSE
|
|
688
|
+
virtual HRESULT GetKey (/* out */ BRawStr* key) = 0;
|
|
689
|
+
virtual HRESULT GetData (/* out */ VARIANT* data) = 0;
|
|
690
|
+
|
|
691
|
+
protected:
|
|
692
|
+
virtual ~IBlackmagicRawMetadataIterator () {} // call Release method to drop reference count
|
|
693
|
+
};
|
|
694
|
+
|
|
695
|
+
/* Interface IBlackmagicRawClipProcessingAttributes - Clip attributes used during processing */
|
|
696
|
+
|
|
697
|
+
class BMD_PUBLIC IBlackmagicRawClipProcessingAttributes : public IUnknown
|
|
698
|
+
{
|
|
699
|
+
public:
|
|
700
|
+
virtual HRESULT GetClipAttribute (/* in */ BlackmagicRawClipProcessingAttribute attribute, /* out */ VARIANT* value) = 0;
|
|
701
|
+
virtual HRESULT SetClipAttribute (/* in */ BlackmagicRawClipProcessingAttribute attribute, /* in */ VARIANT* value) = 0;
|
|
702
|
+
virtual HRESULT GetClipAttributeRange (/* in */ BlackmagicRawClipProcessingAttribute attribute, /* out */ VARIANT* valueMin, /* out */ VARIANT* valueMax, /* out */ bool* isReadOnly) = 0;
|
|
703
|
+
virtual HRESULT GetClipAttributeList (/* in */ BlackmagicRawClipProcessingAttribute attribute, /* out */ VARIANT* array /* optional */, /* out */ uint32_t* arrayElementCount /* optional */, /* out */ bool* isReadOnly) = 0;
|
|
704
|
+
virtual HRESULT GetISOList (/* out */ uint32_t* array /* optional */, /* in, out */ uint32_t* arrayElementCount /* optional */, /* out */ bool* isReadOnly) = 0;
|
|
705
|
+
virtual HRESULT GetPost3DLUT (/* out */ IBlackmagicRawPost3DLUT** lut) = 0;
|
|
706
|
+
#if (BRAW_VERSION + 0) >= 600
|
|
707
|
+
virtual HRESULT GetSidecarPost3DLUT (/* out */ IBlackmagicRawPost3DLUT** lut) = 0;
|
|
708
|
+
virtual HRESULT SetSidecarPost3DLUT (/* in */ BRawStr name, /* in */ BRawStr title, /* in */ uint16_t size, /* in */ VARIANT* data) = 0;
|
|
709
|
+
virtual HRESULT GetEmbeddedPost3DLUT (/* out */ IBlackmagicRawPost3DLUT** lut) = 0;
|
|
710
|
+
virtual HRESULT SetEmbeddedPost3DLUT (/* in */ BRawStr name, /* in */ BRawStr title, /* in */ uint16_t size, /* in */ VARIANT* data) = 0;
|
|
711
|
+
#endif
|
|
712
|
+
protected:
|
|
713
|
+
virtual ~IBlackmagicRawClipProcessingAttributes () {} // call Release method to drop reference count
|
|
714
|
+
};
|
|
715
|
+
|
|
716
|
+
/* Interface IBlackmagicRawFrameProcessingAttributes - Frame attributes used during processing */
|
|
717
|
+
|
|
718
|
+
class BMD_PUBLIC IBlackmagicRawFrameProcessingAttributes : public IUnknown
|
|
719
|
+
{
|
|
720
|
+
public:
|
|
721
|
+
virtual HRESULT GetFrameAttribute (/* in */ BlackmagicRawFrameProcessingAttribute attribute, /* out */ VARIANT* value) = 0;
|
|
722
|
+
virtual HRESULT SetFrameAttribute (/* in */ BlackmagicRawFrameProcessingAttribute attribute, /* in */ VARIANT* value) = 0;
|
|
723
|
+
virtual HRESULT GetFrameAttributeRange (/* in */ BlackmagicRawFrameProcessingAttribute attribute, /* out */ VARIANT* valueMin, /* out */ VARIANT* valueMax, /* out */ bool* isReadOnly) = 0;
|
|
724
|
+
virtual HRESULT GetFrameAttributeList (/* in */ BlackmagicRawFrameProcessingAttribute attribute, /* out */ VARIANT* array /* optional */, /* out */ uint32_t* arrayElementCount /* optional */, /* out */ bool* isReadOnly) = 0;
|
|
725
|
+
virtual HRESULT GetISOList (/* out */ uint32_t* array /* optional */, /* in, out */ uint32_t* arrayElementCount /* optional */, /* out */ bool* isReadOnly) = 0;
|
|
726
|
+
|
|
727
|
+
protected:
|
|
728
|
+
virtual ~IBlackmagicRawFrameProcessingAttributes () {} // call Release method to drop reference count
|
|
729
|
+
};
|
|
730
|
+
|
|
731
|
+
/* Interface IBlackmagicRawPost3DLUT - 3D LUT object */
|
|
732
|
+
|
|
733
|
+
class BMD_PUBLIC IBlackmagicRawPost3DLUT : public IUnknown
|
|
734
|
+
{
|
|
735
|
+
public:
|
|
736
|
+
virtual HRESULT GetName (/* out */ BRawStr* name) = 0;
|
|
737
|
+
virtual HRESULT GetTitle (/* out */ BRawStr* title) = 0;
|
|
738
|
+
virtual HRESULT GetSize (/* out */ uint32_t* size) = 0;
|
|
739
|
+
virtual HRESULT GetResourceGPU (/* in */ void* context, /* in */ void* commandQueue, /* out */ BlackmagicRawResourceType* type, /* out */ void** resource) = 0;
|
|
740
|
+
virtual HRESULT GetResourceCPU (/* out */ void** resource) = 0;
|
|
741
|
+
virtual HRESULT GetResourceSizeBytes (/* out */ uint32_t* sizeBytes) = 0;
|
|
742
|
+
#if (BRAW_MAJOR + 0) >= 3
|
|
743
|
+
virtual HRESULT WriteCubeFile (/* in */ BRawStr fileName) = 0;
|
|
744
|
+
#endif
|
|
745
|
+
#if (BRAW_VERSION + 0) >= 600
|
|
746
|
+
virtual HRESULT WriteCubeToFile (/* in */ IBlackmagicRawFile* cubeFile) = 0;
|
|
747
|
+
#endif
|
|
748
|
+
protected:
|
|
749
|
+
virtual ~IBlackmagicRawPost3DLUT () {} // call Release method to drop reference count
|
|
750
|
+
};
|
|
751
|
+
|
|
752
|
+
/* Interface IBlackmagicRawProcessedImage - Processed image ready to display */
|
|
753
|
+
|
|
754
|
+
class BMD_PUBLIC IBlackmagicRawProcessedImage : public IUnknown
|
|
755
|
+
{
|
|
756
|
+
public:
|
|
757
|
+
virtual HRESULT GetWidth (/* out */ uint32_t* width) = 0;
|
|
758
|
+
virtual HRESULT GetHeight (/* out */ uint32_t* height) = 0;
|
|
759
|
+
virtual HRESULT GetResource (/* out */ void** resource) = 0;
|
|
760
|
+
virtual HRESULT GetResourceType (/* out */ BlackmagicRawResourceType* type) = 0;
|
|
761
|
+
virtual HRESULT GetResourceFormat (/* out */ BlackmagicRawResourceFormat* format) = 0;
|
|
762
|
+
virtual HRESULT GetResourceSizeBytes (/* out */ uint32_t* sizeBytes) = 0;
|
|
763
|
+
virtual HRESULT GetResourceContextAndCommandQueue (/* out */ void** context, /* out */ void** commandQueue) = 0;
|
|
764
|
+
|
|
765
|
+
protected:
|
|
766
|
+
virtual ~IBlackmagicRawProcessedImage () {} // call Release method to drop reference count
|
|
767
|
+
};
|
|
768
|
+
|
|
769
|
+
/* Interface IBlackmagicRawJob - Asynchronous job object */
|
|
770
|
+
|
|
771
|
+
class BMD_PUBLIC IBlackmagicRawJob : public IUnknown
|
|
772
|
+
{
|
|
773
|
+
public:
|
|
774
|
+
virtual HRESULT Submit (void) = 0;
|
|
775
|
+
virtual HRESULT Abort (void) = 0;
|
|
776
|
+
virtual HRESULT SetUserData (/* in */ void* userData) = 0;
|
|
777
|
+
virtual HRESULT GetUserData (/* out */ void** userData) = 0;
|
|
778
|
+
|
|
779
|
+
protected:
|
|
780
|
+
virtual ~IBlackmagicRawJob () {} // call Release method to drop reference count
|
|
781
|
+
};
|
|
782
|
+
|
|
783
|
+
/* Interface IBlackmagicRawReadJobHints - Read job hints */
|
|
784
|
+
|
|
785
|
+
class BMD_PUBLIC IBlackmagicRawReadJobHints : public IUnknown
|
|
786
|
+
{
|
|
787
|
+
public:
|
|
788
|
+
virtual HRESULT SetReaderResolutionScale (/* in */ BlackmagicRawResolutionScale readerResolutionScale) = 0;
|
|
789
|
+
#if (BRAW_VERSION + 0) >= 600
|
|
790
|
+
protected:
|
|
791
|
+
virtual ~IBlackmagicRawReadJobHints () {} // call Release method to drop reference count
|
|
792
|
+
#endif
|
|
793
|
+
};
|
|
794
|
+
|
|
795
|
+
/* Interface IBlackmagicRawCallback - Callback for IBlackmagicRaw */
|
|
796
|
+
|
|
797
|
+
class BMD_PUBLIC IBlackmagicRawCallback : public IUnknown
|
|
798
|
+
{
|
|
799
|
+
public:
|
|
800
|
+
virtual void ReadComplete (/* in */ IBlackmagicRawJob* job, /* in */ HRESULT result, /* in */ IBlackmagicRawFrame* frame) = 0;
|
|
801
|
+
#if (BRAW_VERSION + 0) >= 600
|
|
802
|
+
virtual void ReadAudioComplete (/* in */ IBlackmagicRawJob* job, /* in */ HRESULT result, /* in */ IBlackmagicRawAudioBuffer* audioBuffer) = 0;
|
|
803
|
+
#endif
|
|
804
|
+
virtual void DecodeComplete (/* in */ IBlackmagicRawJob* job, /* in */ HRESULT result) = 0;
|
|
805
|
+
virtual void ProcessComplete (/* in */ IBlackmagicRawJob* job, /* in */ HRESULT result, /* in */ IBlackmagicRawProcessedImage* processedImage) = 0;
|
|
806
|
+
virtual void TrimProgress (/* in */ IBlackmagicRawJob* job, /* in */ float progress) = 0;
|
|
807
|
+
virtual void TrimComplete (/* in */ IBlackmagicRawJob* job, /* in */ HRESULT result) = 0;
|
|
808
|
+
virtual void SidecarMetadataParseWarning (/* in */ IBlackmagicRawClip* clip, /* in */ BRawStr fileName, /* in */ uint32_t lineNumber, /* in */ BRawStr info) = 0; // offending line will be ignored
|
|
809
|
+
virtual void SidecarMetadataParseError (/* in */ IBlackmagicRawClip* clip, /* in */ BRawStr fileName, /* in */ uint32_t lineNumber, /* in */ BRawStr info) = 0; // entire file will be ignored
|
|
810
|
+
virtual void PreparePipelineComplete (/* in */ void* userData, /* in */ HRESULT result) = 0;
|
|
811
|
+
|
|
812
|
+
protected:
|
|
813
|
+
virtual ~IBlackmagicRawCallback () {} // call Release method to drop reference count
|
|
814
|
+
};
|
|
815
|
+
|
|
816
|
+
/* Interface IBlackmagicRawClipAudio - Audio component for an opened movie clip */
|
|
817
|
+
|
|
818
|
+
class BMD_PUBLIC IBlackmagicRawClipAudio : public IUnknown
|
|
819
|
+
{
|
|
820
|
+
public:
|
|
821
|
+
virtual HRESULT GetAudioFormat (/* out */ BlackmagicRawAudioFormat* format) = 0;
|
|
822
|
+
virtual HRESULT GetAudioBitDepth (/* out */ uint32_t* bitDepth) = 0;
|
|
823
|
+
virtual HRESULT GetAudioChannelCount (/* out */ uint32_t* channelCount) = 0;
|
|
824
|
+
virtual HRESULT GetAudioSampleRate (/* out */ uint32_t* sampleRate) = 0;
|
|
825
|
+
virtual HRESULT GetAudioSampleCount (/* out */ uint64_t* sampleCount) = 0;
|
|
826
|
+
virtual HRESULT GetAudioSamples (/* in */ int64_t sampleFrameIndex, /* in */ void* buffer, /* in */ uint32_t bufferSizeBytes, /* in */ uint32_t maxSampleCount, /* out */ uint32_t* samplesRead /* optional */, /* out */ uint32_t* bytesRead /* optional */) = 0;
|
|
827
|
+
|
|
828
|
+
protected:
|
|
829
|
+
virtual ~IBlackmagicRawClipAudio () {} // call Release method to drop reference count
|
|
830
|
+
};
|
|
831
|
+
/* Interface IBlackmagicRawFilesystem - Provides filesystem operations */
|
|
832
|
+
|
|
833
|
+
class BMD_PUBLIC IBlackmagicRawFilesystem : public IUnknown
|
|
834
|
+
{
|
|
835
|
+
public:
|
|
836
|
+
virtual HRESULT OpenCompanionFile (/* in */ IBlackmagicRawFile* parentFile, /* in */ BRawStr fileName, /* out */ IBlackmagicRawFile** fileOut) = 0;
|
|
837
|
+
virtual HRESULT CreateCompanionFile (/* in */ IBlackmagicRawFile* parentFile, /* in */ BRawStr fileName, /* in */ bool replaceExisting, /* out */ IBlackmagicRawFile** fileOut) = 0;
|
|
838
|
+
|
|
839
|
+
protected:
|
|
840
|
+
virtual ~IBlackmagicRawFilesystem () {} // call Release method to drop reference count
|
|
841
|
+
};
|
|
842
|
+
|
|
843
|
+
/* Interface IBlackmagicRawFile - Provides access to a file */
|
|
844
|
+
|
|
845
|
+
class BMD_PUBLIC IBlackmagicRawFile : public IUnknown
|
|
846
|
+
{
|
|
847
|
+
public:
|
|
848
|
+
virtual HRESULT GetFilesystem (/* out */ IBlackmagicRawFilesystem** filesystemOut) = 0;
|
|
849
|
+
virtual HRESULT GetFileName (/* out */ BRawStr* fileName) = 0;
|
|
850
|
+
virtual HRESULT SetFileLength (/* in */ uint64_t fileLength) = 0;
|
|
851
|
+
virtual HRESULT GetFileLength (/* out */ uint64_t* fileLength) = 0;
|
|
852
|
+
virtual HRESULT ReadV (/* in */ BmdIoVec* buffers, /* in */ uint32_t bufferCount, /* in */ uint64_t fileOffset, /* out */ uint64_t* bytesRead) = 0;
|
|
853
|
+
virtual HRESULT WriteV (/* in */ BmdIoVec* buffers, /* in */ uint32_t bufferCount, /* in */ uint64_t fileOffset, /* out */ uint64_t* bytesWritten) = 0;
|
|
854
|
+
virtual HRESULT GetPreferredIoAlignment (/* out */ uint32_t* alignment) = 0;
|
|
855
|
+
virtual HRESULT FlushWrites (void) = 0;
|
|
856
|
+
virtual HRESULT CommitFile (void) = 0;
|
|
857
|
+
|
|
858
|
+
protected:
|
|
859
|
+
virtual ~IBlackmagicRawFile () {} // call Release method to drop reference count
|
|
860
|
+
};
|
|
861
|
+
/* Interface IBlackmagicRawClipAccelerometerMotion - Accelerometer motion for an opened movie clip */
|
|
862
|
+
|
|
863
|
+
class BMD_PUBLIC IBlackmagicRawClipAccelerometerMotion : public IUnknown
|
|
864
|
+
{
|
|
865
|
+
public:
|
|
866
|
+
virtual HRESULT GetSampleRate (/* out */ float* sampleRate) = 0;
|
|
867
|
+
virtual HRESULT GetSampleCount (/* out */ uint32_t* sampleCount) = 0;
|
|
868
|
+
virtual HRESULT GetSampleSize (/* out */ uint32_t* sampleSize) = 0;
|
|
869
|
+
virtual HRESULT GetSampleRange (/* in */ uint64_t sampleStartIndex, /* in */ uint32_t sampleCount, /* out */ float* samples, /* out */ uint32_t* sampleCountOut) = 0;
|
|
870
|
+
|
|
871
|
+
protected:
|
|
872
|
+
virtual ~IBlackmagicRawClipAccelerometerMotion () {} // call Release method to drop reference count
|
|
873
|
+
};
|
|
874
|
+
|
|
875
|
+
/* Interface IBlackmagicRawClipGyroscopeMotion - Gyroscope motion for an opened movie clip */
|
|
876
|
+
|
|
877
|
+
class BMD_PUBLIC IBlackmagicRawClipGyroscopeMotion : public IUnknown
|
|
878
|
+
{
|
|
879
|
+
public:
|
|
880
|
+
virtual HRESULT GetSampleRate (/* out */ float* sampleRate) = 0;
|
|
881
|
+
virtual HRESULT GetSampleCount (/* out */ uint32_t* sampleCount) = 0;
|
|
882
|
+
virtual HRESULT GetSampleSize (/* out */ uint32_t* sampleSize) = 0;
|
|
883
|
+
virtual HRESULT GetSampleRange (/* in */ uint64_t sampleStartIndex, /* in */ uint32_t sampleCount, /* out */ float* samples, /* out */ uint32_t* sampleCountOut) = 0;
|
|
884
|
+
|
|
885
|
+
protected:
|
|
886
|
+
virtual ~IBlackmagicRawClipGyroscopeMotion () {} // call Release method to drop reference count
|
|
887
|
+
};
|
|
888
|
+
|
|
889
|
+
/* Interface IBlackmagicRawClipPDAFData - Phase detection autofocus data for an opened movie clip */
|
|
890
|
+
// 4.0
|
|
891
|
+
class BMD_PUBLIC IBlackmagicRawClipPDAFData : public IUnknown
|
|
892
|
+
{
|
|
893
|
+
public:
|
|
894
|
+
virtual HRESULT GetSampleImageWidthInPixels (/* out */ uint32_t* sampleImageWidthInPixelsOut) = 0;
|
|
895
|
+
virtual HRESULT GetSampleImageHeightInPixels (/* out */ uint32_t* sampleImageHeightInPixelsOut) = 0;
|
|
896
|
+
virtual HRESULT GetSampleImageBytesPerPixel (/* out */ uint32_t* sampleImageBytesPerPixelOut) = 0;
|
|
897
|
+
virtual HRESULT GetSampleSize (/* out */ uint32_t* sampleSizeOut) = 0;
|
|
898
|
+
virtual HRESULT GetSampleCount (/* out */ uint32_t* sampleCountOut) = 0;
|
|
899
|
+
virtual HRESULT GetSampleImages (/* in */ uint64_t sampleIndex, /* out */ uint8_t* leftSampleImageDataOut, /* out */ uint8_t* rightSampleImageDataOut, /* in */ uint32_t sampleImageDataSize) = 0;
|
|
900
|
+
|
|
901
|
+
protected:
|
|
902
|
+
virtual ~IBlackmagicRawClipPDAFData () {} // call Release method to drop reference count
|
|
903
|
+
};
|
|
904
|
+
|
|
905
|
+
/* Interface IBlackmagicRawAudioBuffer - Audio buffer */
|
|
906
|
+
|
|
907
|
+
class BMD_PUBLIC IBlackmagicRawAudioBuffer : public IUnknown
|
|
908
|
+
{
|
|
909
|
+
public:
|
|
910
|
+
virtual HRESULT GetAudioFormat (/* out */ BlackmagicRawAudioFormat* format) = 0;
|
|
911
|
+
virtual HRESULT GetAudioBitDepth (/* out */ uint32_t* bitDepth) = 0;
|
|
912
|
+
virtual HRESULT GetAudioChannelCount (/* out */ uint32_t* channelCount) = 0;
|
|
913
|
+
virtual HRESULT GetAudioSampleRate (/* out */ uint32_t* sampleRate) = 0;
|
|
914
|
+
virtual HRESULT GetAudioSampleCount (/* out */ uint64_t* sampleCount) = 0;
|
|
915
|
+
virtual HRESULT GetAudioSamples (/* in */ void** buffer, /* in */ uint32_t* bufferSizeBytes) = 0;
|
|
916
|
+
|
|
917
|
+
protected:
|
|
918
|
+
virtual ~IBlackmagicRawAudioBuffer () {} // call Release method to drop reference count
|
|
919
|
+
};
|
|
920
|
+
|
|
921
|
+
/* Interface IBlackmagicRawFrame - Frame of a clip */
|
|
922
|
+
|
|
923
|
+
class BMD_PUBLIC IBlackmagicRawFrame : public IUnknown
|
|
924
|
+
{
|
|
925
|
+
public:
|
|
926
|
+
virtual HRESULT GetFrameIndex (/* out */ uint64_t* frameIndex) = 0;
|
|
927
|
+
virtual HRESULT GetTimecode (/* out */ BRawStr* timecode) = 0;
|
|
928
|
+
virtual HRESULT GetMetadataIterator (/* out */ IBlackmagicRawMetadataIterator** iterator) = 0;
|
|
929
|
+
virtual HRESULT GetMetadata (/* in */ BRawStr key, /* out */ VARIANT* value) = 0;
|
|
930
|
+
virtual HRESULT SetMetadata (/* in */ BRawStr key, /* in */ VARIANT* value) = 0; // To clear metadata to movie original, set value to NULL. This data is not saved to disk until SaveSideCar() is called
|
|
931
|
+
virtual HRESULT CloneFrameProcessingAttributes (/* out */ IBlackmagicRawFrameProcessingAttributes** frameProcessingAttributes) = 0; // creates object with current frame processing attributes
|
|
932
|
+
virtual HRESULT SetResolutionScale (/* in */ BlackmagicRawResolutionScale resolutionScale) = 0;
|
|
933
|
+
virtual HRESULT GetResolutionScale (/* out */ BlackmagicRawResolutionScale* resolutionScale) = 0;
|
|
934
|
+
virtual HRESULT SetResourceFormat (/* in */ BlackmagicRawResourceFormat resourceFormat) = 0;
|
|
935
|
+
virtual HRESULT GetResourceFormat (/* out */ BlackmagicRawResourceFormat* resourceFormat) = 0;
|
|
936
|
+
virtual HRESULT GetSensorRate (/* out */ float* sensorRate) = 0;
|
|
937
|
+
virtual HRESULT CreateJobDecodeAndProcessFrame (/* in */ IBlackmagicRawClipProcessingAttributes* clipProcessingAttributes /* optionally override clipProcessingAttributes */, /* in */ IBlackmagicRawFrameProcessingAttributes* frameProcessingAttributes /* optionally override frameProcessingAttributes */, /* out */ IBlackmagicRawJob** job) = 0;
|
|
938
|
+
|
|
939
|
+
protected:
|
|
940
|
+
virtual ~IBlackmagicRawFrame () {} // call Release method to drop reference count
|
|
941
|
+
};
|
|
942
|
+
|
|
943
|
+
/* Interface IBlackmagicRawFrameEx - provides extra information for use with IBlackmagicRawManualDecoder */
|
|
944
|
+
|
|
945
|
+
class BMD_PUBLIC IBlackmagicRawFrameEx : public IUnknown
|
|
946
|
+
{
|
|
947
|
+
public:
|
|
948
|
+
virtual HRESULT GetBitStreamSizeBytes (/* out */ uint32_t* bitStreamSizeBytes) = 0;
|
|
949
|
+
virtual HRESULT GetProcessedImageResolution (/* out */ uint32_t* width, /* out */ uint32_t* height) = 0;
|
|
950
|
+
|
|
951
|
+
protected:
|
|
952
|
+
virtual ~IBlackmagicRawFrameEx () {} // call Release method to drop reference count
|
|
953
|
+
};
|
|
954
|
+
|
|
955
|
+
/* Interface IBlackmagicRawFrameMultiVideo - provides extra information related to frames from multi video track files */
|
|
956
|
+
|
|
957
|
+
class BMD_PUBLIC IBlackmagicRawFrameMultiVideo : public IUnknown
|
|
958
|
+
{
|
|
959
|
+
public:
|
|
960
|
+
virtual HRESULT GetVideoTrackIndex (/* out */ uint32_t* videoTrackIndex) = 0;
|
|
961
|
+
|
|
962
|
+
protected:
|
|
963
|
+
virtual ~IBlackmagicRawFrameMultiVideo () {} // call Release method to drop reference count
|
|
964
|
+
};
|
|
965
|
+
|
|
966
|
+
/* Interface IBlackmagicRawManualDecoderFlow1 - Allowing manual decoding/processing of buffers, Flow1 is a pure CPU solution */
|
|
967
|
+
|
|
968
|
+
class BMD_PUBLIC IBlackmagicRawManualDecoderFlow1 : public IUnknown
|
|
969
|
+
{
|
|
970
|
+
public:
|
|
971
|
+
virtual HRESULT PopulateFrameStateBuffer (/* in */ IBlackmagicRawFrame* frame, /* in */ IBlackmagicRawClipProcessingAttributes* clipProcessingAttributes /* optionally override clipProcessingAttributes */, /* in */ IBlackmagicRawFrameProcessingAttributes* frameProcessingAttributes /* optionally override frameProcessingAttributes */, /* out */ void* frameState, /* in */ uint32_t frameStateSizeBytes) = 0;
|
|
972
|
+
virtual HRESULT GetFrameStateSizeBytes (/* out */ uint32_t* frameStateSizeBytes) = 0;
|
|
973
|
+
virtual HRESULT GetDecodedSizeBytes (/* in */ void* frameStateBufferCPU, /* out */ uint32_t* decodedSizeBytes) = 0;
|
|
974
|
+
virtual HRESULT GetProcessedSizeBytes (/* in */ void* frameStateBufferCPU, /* out */ uint32_t* processedSizeBytes) = 0;
|
|
975
|
+
virtual HRESULT GetPost3DLUTSizeBytes (/* in */ void* frameStateBufferCPU, /* out */ uint32_t* post3DLUTSizeBytes) = 0;
|
|
976
|
+
virtual HRESULT CreateJobDecode (/* in */ void* frameStateBufferCPU, /* in */ void* bitStreamBufferCPU, /* in */ void* decodedBufferCPU, /* out */ IBlackmagicRawJob** job) = 0;
|
|
977
|
+
virtual HRESULT CreateJobProcess (/* in */ void* frameStateBufferCPU, /* in */ void* decodedBufferCPU, /* in */ void* processedBufferCPU, /* in */ void* post3DLUTBufferCPU, /* out */ IBlackmagicRawJob** job) = 0;
|
|
978
|
+
|
|
979
|
+
protected:
|
|
980
|
+
virtual ~IBlackmagicRawManualDecoderFlow1 () {} // call Release method to drop reference count
|
|
981
|
+
};
|
|
982
|
+
|
|
983
|
+
/* Interface IBlackmagicRawManualDecoderFlow2 - Allowing manual decoding/processing of buffers, Flow2 is a hybrid CPU/GPU solution */
|
|
984
|
+
|
|
985
|
+
class BMD_PUBLIC IBlackmagicRawManualDecoderFlow2 : public IUnknown
|
|
986
|
+
{
|
|
987
|
+
public:
|
|
988
|
+
virtual HRESULT PopulateFrameStateBuffer (/* in */ IBlackmagicRawFrame* frame, /* in */ IBlackmagicRawClipProcessingAttributes* clipProcessingAttributes /* optionally override clipProcessingAttributes */, /* in */ IBlackmagicRawFrameProcessingAttributes* frameProcessingAttributes /* optionally override frameProcessingAttributes */, /* out */ void* frameState, /* in */ uint32_t frameStateSizeBytes) = 0;
|
|
989
|
+
virtual HRESULT GetFrameStateSizeBytes (/* out */ uint32_t* frameStateSizeBytes) = 0;
|
|
990
|
+
virtual HRESULT GetDecodedSizeBytes (/* in */ void* frameStateBufferCPU, /* out */ uint32_t* decodedSizeBytes) = 0;
|
|
991
|
+
virtual HRESULT GetWorkingSizeBytes (/* in */ void* frameStateBufferCPU, /* out */ uint32_t* workingSizeBytes) = 0;
|
|
992
|
+
virtual HRESULT GetProcessedSizeBytes (/* in */ void* frameStateBufferCPU, /* out */ uint32_t* processedSizeBytes) = 0;
|
|
993
|
+
virtual HRESULT GetPost3DLUTSizeBytes (/* in */ void* frameStateBufferCPU, /* out */ uint32_t* post3DLUTSizeBytes) = 0;
|
|
994
|
+
virtual HRESULT CreateJobDecode (/* in */ void* frameStateBufferCPU, /* in */ void* bitStreamBufferCPU, /* in */ void* decodedBufferCPU, /* out */ IBlackmagicRawJob** job) = 0;
|
|
995
|
+
virtual HRESULT CreateJobProcess (/* in */ void* context, /* in */ void* commandQueue, /* in */ void* frameStateBufferCPU, /* in */ void* decodedBufferGPU, /* in */ void* workingBufferGPU /* additional working buffer */, /* in */ void* processedBufferGPU, /* in */ void* post3DLUTBufferGPU, /* out */ IBlackmagicRawJob** job) = 0; // Create a job to process a frame. This is performed on the specified GPU. After this process is complete a final processed image will be provided via a OnProcessComplete() callback
|
|
996
|
+
|
|
997
|
+
protected:
|
|
998
|
+
virtual ~IBlackmagicRawManualDecoderFlow2 () {} // call Release method to drop reference count
|
|
999
|
+
};
|
|
1000
|
+
|
|
1001
|
+
/* Interface IBlackmagicRawClip - Opened movie clip */
|
|
1002
|
+
|
|
1003
|
+
class BMD_PUBLIC IBlackmagicRawClip : public IUnknown
|
|
1004
|
+
{
|
|
1005
|
+
public:
|
|
1006
|
+
virtual HRESULT GetWidth (/* out */ uint32_t* width) = 0;
|
|
1007
|
+
virtual HRESULT GetHeight (/* out */ uint32_t* height) = 0;
|
|
1008
|
+
virtual HRESULT GetFrameRate (/* out */ float* frameRate) = 0;
|
|
1009
|
+
virtual HRESULT GetFrameCount (/* out */ uint64_t* frameCount) = 0;
|
|
1010
|
+
virtual HRESULT GetTimecodeForFrame (/* in */ uint64_t frameIndex, /* out */ BRawStr* timecode) = 0;
|
|
1011
|
+
virtual HRESULT GetMetadataIterator (/* out */ IBlackmagicRawMetadataIterator** iterator) = 0;
|
|
1012
|
+
virtual HRESULT GetMetadata (/* in */ BRawStr key, /* out */ VARIANT* value) = 0;
|
|
1013
|
+
virtual HRESULT SetMetadata (/* in */ BRawStr key, /* in */ VARIANT* value) = 0; // To clear metadata to movie original, set value to NULL. This data is not saved to disk until SaveSideCar() is called
|
|
1014
|
+
virtual HRESULT GetCameraType (/* out */ BRawStr* cameraType) = 0;
|
|
1015
|
+
virtual HRESULT CloneClipProcessingAttributes (/* out */ IBlackmagicRawClipProcessingAttributes** clipProcessingAttributes) = 0; // creates object with current clip processing attributes
|
|
1016
|
+
virtual HRESULT GetMulticardFileCount (/* out */ uint32_t* multicardFileCount) = 0;
|
|
1017
|
+
virtual HRESULT IsMulticardFilePresent (/* in */ uint32_t index, /* out */ bool* isMulticardFilePresent) = 0;
|
|
1018
|
+
virtual HRESULT GetSidecarFileAttached (/* out */ bool* isSidecarFileAttached) = 0; // Check for successfully parsed sidecar file, which is automatically loaded upon opening of a clip
|
|
1019
|
+
virtual HRESULT SaveSidecarFile (void) = 0; // Save metadata to sidecar file
|
|
1020
|
+
virtual HRESULT ReloadSidecarFile (void) = 0; // Reload metadata from sidecar file
|
|
1021
|
+
virtual HRESULT CreateJobReadFrame (/* in */ uint64_t frameIndex, /* out */ IBlackmagicRawJob** job) = 0; // Create a job to read a frame
|
|
1022
|
+
#if (BRAW_VERSION + 0) >= 600
|
|
1023
|
+
virtual HRESULT CreateJobReadAudio (/* in */ uint64_t sampleIndex, /* in */ uint64_t maxSampleCount, /* out */ IBlackmagicRawJob** job) = 0;
|
|
1024
|
+
#endif // Create a job to read audio samples
|
|
1025
|
+
virtual HRESULT CreateJobTrim (/* in */ BRawStr filePath, /* in */ uint64_t frameIndex, /* in */ uint64_t frameCount, /* in */ IBlackmagicRawClipProcessingAttributes* clipProcessingAttributes /* optional */, /* in */ IBlackmagicRawFrameProcessingAttributes* frameProcessingAttributes /* optional */, /* out */ IBlackmagicRawJob** job) = 0;
|
|
1026
|
+
#if (BRAW_VERSION + 0) >= 600
|
|
1027
|
+
virtual HRESULT CreateJobTrimToFile (/* in */ IBlackmagicRawFile* destinationFile, /* in */ uint64_t frameIndex, /* in */ uint64_t frameCount, /* in */ IBlackmagicRawClipProcessingAttributes* clipProcessingAttributes /* optional */, /* in */ IBlackmagicRawFrameProcessingAttributes* frameProcessingAttributes /* optional */, /* out */ IBlackmagicRawJob** job) = 0;
|
|
1028
|
+
#endif
|
|
1029
|
+
#if (BRAW_MAJOR + 0) >= 3
|
|
1030
|
+
virtual HRESULT CloneWithGeometry (/* in */ IBlackmagicRawClipGeometry* geometry, /* out */ IBlackmagicRawClip** clip) = 0;
|
|
1031
|
+
#endif
|
|
1032
|
+
|
|
1033
|
+
protected:
|
|
1034
|
+
virtual ~IBlackmagicRawClip () {} // call Release method to drop reference count
|
|
1035
|
+
};
|
|
1036
|
+
|
|
1037
|
+
/* Interface IBlackmagicRawClipEx - Extended use of IBlackmagicRawClip, to pass custom bitstream */
|
|
1038
|
+
|
|
1039
|
+
class BMD_PUBLIC IBlackmagicRawClipEx : public IUnknown
|
|
1040
|
+
{
|
|
1041
|
+
public:
|
|
1042
|
+
virtual HRESULT GetMaxBitStreamSizeBytes (/* out */ uint32_t* maxBitStreamSizeBytes) = 0;
|
|
1043
|
+
virtual HRESULT GetBitStreamSizeBytes (/* in */ uint64_t frameIndex, /* out */ uint32_t* bitStreamSizeBytes) = 0;
|
|
1044
|
+
virtual HRESULT CreateJobReadFrame (/* in */ uint64_t frameIndex, /* out */ void* bitStream /* optional */, /* in */ uint32_t bitStreamSizeBytes /* optional */, /* out */ IBlackmagicRawJob** job) = 0;
|
|
1045
|
+
#if (BRAW_VERSION + 0) >= 600
|
|
1046
|
+
virtual HRESULT CreateJobTrim (/* in */ BRawStr filePath, /* in */ uint64_t frameIndex, /* in */ uint64_t frameCount, /* in */ uint32_t frameStep, /* in */ float frameRate /* optional */, /* in */ IBlackmagicRawClipProcessingAttributes* clipProcessingAttributes /* optional */, /* in */ IBlackmagicRawFrameProcessingAttributes* frameProcessingAttributes /* optional */, /* out */ IBlackmagicRawJob** job) = 0;
|
|
1047
|
+
virtual HRESULT CreateJobTrimToFile (/* in */ IBlackmagicRawFile* destinationFile, /* in */ uint64_t frameIndex, /* in */ uint64_t frameCount, /* in */ uint32_t frameStep, /* in */ float frameRate /* optional */, /* in */ IBlackmagicRawClipProcessingAttributes* clipProcessingAttributes /* optional */, /* in */ IBlackmagicRawFrameProcessingAttributes* frameProcessingAttributes /* optional */, /* out */ IBlackmagicRawJob** job) = 0;
|
|
1048
|
+
#endif
|
|
1049
|
+
virtual HRESULT QueryTimecodeInfo (/* out */ uint32_t* baseFrameIndex, /* out */ bool* isDropFrameTimecode) = 0;
|
|
1050
|
+
#if (BRAW_VERSION + 0) >= 600
|
|
1051
|
+
virtual HRESULT GetFrameImageOffsetAndSize (/* in */ uint64_t frameIndex, /* out */ uint32_t* imageSizeBytes, /* out */ uint64_t* imageOffsetBytes, /* out */ uint32_t* fileIndex) = 0;
|
|
1052
|
+
virtual HRESULT GetAudioChunkInfo (/* in */ uint64_t sampleIndex, /* out */ uint32_t* audioChunkSizeBytesOut, /* out */ uint64_t* audioChunkOffsetBytesOut, /* out */ uint64_t* audioChunkSampleCountOut, /* out */ uint64_t* audioChunkStartSampleIndexOut) = 0;
|
|
1053
|
+
#endif
|
|
1054
|
+
protected:
|
|
1055
|
+
virtual ~IBlackmagicRawClipEx () {} // call Release method to drop reference count
|
|
1056
|
+
};
|
|
1057
|
+
|
|
1058
|
+
/* Interface IBlackmagicRawClipMultiVideo - Extended use of IBlackmagicRawClip, to support multi video track video clips */
|
|
1059
|
+
|
|
1060
|
+
class BMD_PUBLIC IBlackmagicRawClipMultiVideo : public IUnknown
|
|
1061
|
+
{
|
|
1062
|
+
public:
|
|
1063
|
+
virtual HRESULT GetVideoTrackCount (/* out */ uint32_t* videoTrackCount) = 0;
|
|
1064
|
+
virtual HRESULT GetVideoFrameCount (/* in */ uint32_t videoTrackIndex, /* out */ uint64_t* videoFrameCount) = 0;
|
|
1065
|
+
virtual HRESULT GetVideoTrackSource (/* in */ uint32_t videoTrackIndex, /* out */ uint32_t* videoSourceFourCC) = 0;
|
|
1066
|
+
virtual HRESULT CreateJobReadFrame (/* in */ uint32_t videoTrackIndex, /* in */ uint64_t frameIndex, /* out */ IBlackmagicRawJob** job) = 0; // Create a job o read a frame
|
|
1067
|
+
virtual HRESULT GetBitStreamSizeBytes (/* in */ uint32_t videoTrackIndex, /* in */ uint64_t frameIndex, /* out */ uint32_t* bitStreamSizeBytes) = 0;
|
|
1068
|
+
virtual HRESULT CreateJobReadFrameEx (/* in */ uint32_t videoTrackIndex, /* in */ uint64_t frameIndex, /* out */ void* bitStream /* optional */, /* in */ uint32_t bitStreamSizeBytes /* optional */, /* out */ IBlackmagicRawJob** job) = 0;
|
|
1069
|
+
#if (BRAW_VERSION + 0) >= 600
|
|
1070
|
+
virtual HRESULT GetFrameImageOffsetAndSize (/* in */ uint32_t videoTrackIndex, /* in */ uint64_t frameIndex, /* out */ uint32_t* imageSizeBytes, /* out */ uint64_t* imageOffsetBytes, /* out */ uint32_t* fileIndex) = 0;
|
|
1071
|
+
#endif
|
|
1072
|
+
|
|
1073
|
+
protected:
|
|
1074
|
+
virtual ~IBlackmagicRawClipMultiVideo () {} // call Release method to drop reference count
|
|
1075
|
+
};
|
|
1076
|
+
|
|
1077
|
+
/* Interface IBlackmagicRawClipImmersiveVideo - Extended use of IBlackmagicRawClip, to support immersive video clips */
|
|
1078
|
+
|
|
1079
|
+
class BMD_PUBLIC IBlackmagicRawClipImmersiveVideo : public IUnknown
|
|
1080
|
+
{
|
|
1081
|
+
public:
|
|
1082
|
+
virtual HRESULT CreateJobImmersiveReadFrame (/* in */ BlackmagicRawImmersiveVideoTrack videoTrack, /* in */ uint64_t frameIndex, /* out */ IBlackmagicRawJob** job) = 0; // Create a job to read a frame
|
|
1083
|
+
virtual HRESULT GetImmersiveBitStreamSizeBytes (/* in */ BlackmagicRawImmersiveVideoTrack videoTrack, /* in */ uint64_t frameIndex, /* out */ uint32_t* bitStreamSizeBytes) = 0;
|
|
1084
|
+
virtual HRESULT CreateJobImmersiveReadFrameEx (/* in */ BlackmagicRawImmersiveVideoTrack videoTrack, /* in */ uint64_t frameIndex, /* out */ void* bitStream /* optional */, /* in */ uint32_t bitStreamSizeBytes /* optional */, /* out */ IBlackmagicRawJob** job) = 0;
|
|
1085
|
+
virtual HRESULT GetDistanceBetweenLenses (/* out */ uint32_t* distanceBetweenLenses) = 0;
|
|
1086
|
+
virtual HRESULT GetComfortDisparityAdjustment (/* out */ int32_t* comfortDisparityAdjustment) = 0;
|
|
1087
|
+
virtual HRESULT GetHorizontalFieldOfView (/* out */ uint32_t* horizontalFieldOfView) = 0;
|
|
1088
|
+
virtual HRESULT GetImmersiveAttribute (/* in */ BlackmagicRawImmersiveAttribute attribute, /* out */ VARIANT* value) = 0;
|
|
1089
|
+
|
|
1090
|
+
protected:
|
|
1091
|
+
virtual ~IBlackmagicRawClipImmersiveVideo () {} // call Release method to drop reference count
|
|
1092
|
+
};
|
|
1093
|
+
|
|
1094
|
+
/* Interface IBlackmagicRawClipResolutions - Supports querying of resolutions and/or scales for processed image results */
|
|
1095
|
+
|
|
1096
|
+
class BMD_PUBLIC IBlackmagicRawClipResolutions : public IUnknown
|
|
1097
|
+
{
|
|
1098
|
+
public:
|
|
1099
|
+
virtual HRESULT GetResolutionCount (/* out */ uint32_t* resolutionCount) = 0;
|
|
1100
|
+
virtual HRESULT GetResolution (/* in */ uint32_t resolutionIndex, /* out */ uint32_t* resolutionWidthPixels, /* out */ uint32_t* resolutionHeightPixels) = 0;
|
|
1101
|
+
#if (BRAW_VERSION + 0) >= 450
|
|
1102
|
+
virtual HRESULT GetRecordedResolution (/* in */ uint32_t resolutionIndex, /* out */ uint32_t* recordedResolutionWidthPixels, /* out */ uint32_t* recordedResolutionHeightPixels) = 0;
|
|
1103
|
+
#endif
|
|
1104
|
+
virtual HRESULT GetClosestResolutionForScale (/* in */ BlackmagicRawResolutionScale resolutionScale, /* out */ uint32_t* resolutionWidthPixels, /* out */ uint32_t* resolutionHeightPixels) = 0;
|
|
1105
|
+
#if (BRAW_VERSION + 0) >= 300
|
|
1106
|
+
virtual HRESULT GetClosestScaleForResolution (/* in */ uint32_t resolutionWidthPixels, /* in */ uint32_t resolutionHeightPixels, /* out */ BlackmagicRawResolutionScale* resolutionScale) = 0;
|
|
1107
|
+
#else
|
|
1108
|
+
virtual HRESULT GetClosestScaleForResolution (/* in */ uint32_t resolutionWidthPixels, /* in */ uint32_t resolutionHeightPixels, /* in */ bool requestUpsideDown, /* out */ BlackmagicRawResolutionScale* resolutionScale) = 0;
|
|
1109
|
+
#endif
|
|
1110
|
+
protected:
|
|
1111
|
+
virtual ~IBlackmagicRawClipResolutions () {} // call Release method to drop reference count
|
|
1112
|
+
};
|
|
1113
|
+
|
|
1114
|
+
/* Functions */
|
|
1115
|
+
|
|
1116
|
+
extern "C" {
|
|
1117
|
+
|
|
1118
|
+
BMD_PUBLIC IBlackmagicRawFactory* CreateBlackmagicRawFactoryInstance(void);
|
|
1119
|
+
#ifndef _WIN32
|
|
1120
|
+
BMD_PUBLIC IBlackmagicRawFactory* CreateBlackmagicRawFactoryInstanceFromPath(/* in */ BRawStr loadPath);
|
|
1121
|
+
BMD_PUBLIC IBlackmagicRawFactory* CreateBlackmagicRawFactoryInstanceFromExeRelativePath(/* in */ BRawStr loadPath);
|
|
1122
|
+
BMD_PUBLIC HRESULT VariantInit(/* in */ VARIANT* variant);
|
|
1123
|
+
BMD_PUBLIC HRESULT VariantClear(/* in */ VARIANT* variant);
|
|
1124
|
+
BMD_PUBLIC SafeArray* SafeArrayCreate(/* in */ BlackmagicRawVariantType variantType, /* in */ uint32_t dimensions, /* in */ SafeArrayBound* safeArrayBound);
|
|
1125
|
+
BMD_PUBLIC HRESULT SafeArrayGetVartype(/* in */ SafeArray* safeArray, /* out */ BlackmagicRawVariantType* variantType);
|
|
1126
|
+
BMD_PUBLIC HRESULT SafeArrayGetLBound(/* in */ SafeArray* safeArray, /* in */ uint32_t dimensions, /* out */ long* lBound);
|
|
1127
|
+
BMD_PUBLIC HRESULT SafeArrayGetUBound(/* in */ SafeArray* safeArray, /* in */ uint32_t dimensions, /* out */ long* uBound);
|
|
1128
|
+
BMD_PUBLIC HRESULT SafeArrayAccessData(/* in */ SafeArray* safeArray, /* out */ void** outData);
|
|
1129
|
+
BMD_PUBLIC HRESULT SafeArrayUnaccessData(/* in */ SafeArray* safeArray);
|
|
1130
|
+
BMD_PUBLIC HRESULT SafeArrayDestroy(/* in */ SafeArray* safeArray);
|
|
1131
|
+
#endif
|
|
1132
|
+
}
|
|
1133
|
+
|
|
1134
|
+
|
|
1135
|
+
|
|
1136
|
+
#endif /* defined(__cplusplus) */
|
|
1137
|
+
#endif /* defined(BMD_BLACKMAGICRAWAPI_H) */
|