OLD | NEW |
(Empty) | |
| 1 /* -LICENSE-START- |
| 2 ** Copyright (c) 2014 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_DECKLINKAPIMODES_H |
| 29 #define BMD_DECKLINKAPIMODES_H |
| 30 |
| 31 |
| 32 #ifndef BMD_CONST |
| 33 #if defined(_MSC_VER) |
| 34 #define BMD_CONST __declspec(selectany) static const |
| 35 #else |
| 36 #define BMD_CONST static const |
| 37 #endif |
| 38 #endif |
| 39 |
| 40 // Type Declarations |
| 41 |
| 42 |
| 43 // Interface ID Declarations |
| 44 |
| 45 BMD_CONST REFIID IID_IDeckLinkDisplayModeIterator = /* 9C88499F-
F601-4021-B80B-032E4EB41C35 */ {0x9C,0x88,0x49,0x9F,0xF6,0x01,0x40,0x21,0xB8,0x0
B,0x03,0x2E,0x4E,0xB4,0x1C,0x35}; |
| 46 BMD_CONST REFIID IID_IDeckLinkDisplayMode = /* 3EB2C1AB-
0A3D-4523-A3AD-F40D7FB14E78 */ {0x3E,0xB2,0xC1,0xAB,0x0A,0x3D,0x45,0x23,0xA3,0xA
D,0xF4,0x0D,0x7F,0xB1,0x4E,0x78}; |
| 47 |
| 48 /* Enum BMDDisplayMode - Video display modes */ |
| 49 |
| 50 typedef uint32_t BMDDisplayMode; |
| 51 enum _BMDDisplayMode { |
| 52 |
| 53 /* SD Modes */ |
| 54 |
| 55 bmdModeNTSC = 'ntsc', |
| 56 bmdModeNTSC2398 = 'nt23',
// 3:2 pulldown |
| 57 bmdModePAL = 'pal ', |
| 58 bmdModeNTSCp = 'ntsp', |
| 59 bmdModePALp = 'palp', |
| 60 |
| 61 /* HD 1080 Modes */ |
| 62 |
| 63 bmdModeHD1080p2398 = '23ps', |
| 64 bmdModeHD1080p24 = '24ps', |
| 65 bmdModeHD1080p25 = 'Hp25', |
| 66 bmdModeHD1080p2997 = 'Hp29', |
| 67 bmdModeHD1080p30 = 'Hp30', |
| 68 bmdModeHD1080i50 = 'Hi50', |
| 69 bmdModeHD1080i5994 = 'Hi59', |
| 70 bmdModeHD1080i6000 = 'Hi60',
// N.B. This _really_ is 60.00 Hz. |
| 71 bmdModeHD1080p50 = 'Hp50', |
| 72 bmdModeHD1080p5994 = 'Hp59', |
| 73 bmdModeHD1080p6000 = 'Hp60',
// N.B. This _really_ is 60.00 Hz. |
| 74 |
| 75 /* HD 720 Modes */ |
| 76 |
| 77 bmdModeHD720p50 = 'hp50', |
| 78 bmdModeHD720p5994 = 'hp59', |
| 79 bmdModeHD720p60 = 'hp60', |
| 80 |
| 81 /* 2k Modes */ |
| 82 |
| 83 bmdMode2k2398 = '2k23', |
| 84 bmdMode2k24 = '2k24', |
| 85 bmdMode2k25 = '2k25', |
| 86 |
| 87 /* DCI Modes (output only) */ |
| 88 |
| 89 bmdMode2kDCI2398 = '2d23', |
| 90 bmdMode2kDCI24 = '2d24', |
| 91 bmdMode2kDCI25 = '2d25', |
| 92 |
| 93 /* 4k Modes */ |
| 94 |
| 95 bmdMode4K2160p2398 = '4k23', |
| 96 bmdMode4K2160p24 = '4k24', |
| 97 bmdMode4K2160p25 = '4k25', |
| 98 bmdMode4K2160p2997 = '4k29', |
| 99 bmdMode4K2160p30 = '4k30', |
| 100 |
| 101 /* DCI Modes (output only) */ |
| 102 |
| 103 bmdMode4kDCI2398 = '4d23', |
| 104 bmdMode4kDCI24 = '4d24', |
| 105 bmdMode4kDCI25 = '4d25', |
| 106 |
| 107 /* Special Modes */ |
| 108 |
| 109 bmdModeUnknown = 'iunk' |
| 110 }; |
| 111 |
| 112 /* Enum BMDFieldDominance - Video field dominance */ |
| 113 |
| 114 typedef uint32_t BMDFieldDominance; |
| 115 enum _BMDFieldDominance { |
| 116 bmdUnknownFieldDominance = 0, |
| 117 bmdLowerFieldFirst = 'lowr', |
| 118 bmdUpperFieldFirst = 'uppr', |
| 119 bmdProgressiveFrame = 'prog', |
| 120 bmdProgressiveSegmentedFrame = 'psf ' |
| 121 }; |
| 122 |
| 123 /* Enum BMDPixelFormat - Video pixel formats supported for output/input */ |
| 124 |
| 125 typedef uint32_t BMDPixelFormat; |
| 126 enum _BMDPixelFormat { |
| 127 bmdFormat8BitYUV = '2vuy', |
| 128 bmdFormat10BitYUV = 'v210', |
| 129 bmdFormat8BitARGB = 32, |
| 130 bmdFormat8BitBGRA = 'BGRA', |
| 131 bmdFormat10BitRGB = 'r210',
// Big-endian RGB 10-bit per component with SMPTE video levels (64-960). Packed
as 2:10:10:10 |
| 132 bmdFormat10BitRGBXLE = 'R10l',
// Little-endian 10-bit RGB with SMPTE video levels (64-940) |
| 133 bmdFormat10BitRGBX = 'R10b'
// Big-endian 10-bit RGB with SMPTE video levels (64-940) |
| 134 }; |
| 135 |
| 136 /* Enum BMDDisplayModeFlags - Flags to describe the characteristics of an IDeckL
inkDisplayMode. */ |
| 137 |
| 138 typedef uint32_t BMDDisplayModeFlags; |
| 139 enum _BMDDisplayModeFlags { |
| 140 bmdDisplayModeSupports3D = 1 << 0, |
| 141 bmdDisplayModeColorspaceRec601 = 1 << 1, |
| 142 bmdDisplayModeColorspaceRec709 = 1 << 2 |
| 143 }; |
| 144 |
| 145 // Forward Declarations |
| 146 |
| 147 class IDeckLinkDisplayModeIterator; |
| 148 class IDeckLinkDisplayMode; |
| 149 |
| 150 /* Interface IDeckLinkDisplayModeIterator - enumerates over supported input/outp
ut display modes. */ |
| 151 |
| 152 class IDeckLinkDisplayModeIterator : public IUnknown |
| 153 { |
| 154 public: |
| 155 virtual HRESULT Next (/* out */ IDeckLinkDisplayMode **deckLinkDisplayMode)
= 0; |
| 156 |
| 157 protected: |
| 158 virtual ~IDeckLinkDisplayModeIterator () {}; // call Release method to drop
reference count |
| 159 }; |
| 160 |
| 161 /* Interface IDeckLinkDisplayMode - represents a display mode */ |
| 162 |
| 163 class IDeckLinkDisplayMode : public IUnknown |
| 164 { |
| 165 public: |
| 166 virtual HRESULT GetName (/* out */ CFStringRef *name) = 0; |
| 167 virtual BMDDisplayMode GetDisplayMode (void) = 0; |
| 168 virtual long GetWidth (void) = 0; |
| 169 virtual long GetHeight (void) = 0; |
| 170 virtual HRESULT GetFrameRate (/* out */ BMDTimeValue *frameDuration, /* out
*/ BMDTimeScale *timeScale) = 0; |
| 171 virtual BMDFieldDominance GetFieldDominance (void) = 0; |
| 172 virtual BMDDisplayModeFlags GetFlags (void) = 0; |
| 173 |
| 174 protected: |
| 175 virtual ~IDeckLinkDisplayMode () {}; // call Release method to drop referenc
e count |
| 176 }; |
| 177 |
| 178 /* Functions */ |
| 179 |
| 180 extern "C" { |
| 181 |
| 182 |
| 183 }; |
| 184 |
| 185 |
| 186 #endif /* defined(BMD_DECKLINKAPIMODES_H) */ |
OLD | NEW |