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_DECKLINKAPISTREAMING_H |
| 29 #define BMD_DECKLINKAPISTREAMING_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_IBMDStreamingDeviceNotificationCallback = /* F9531D64-
3305-4B29-A387-7F74BB0D0E84 */ {0xF9,0x53,0x1D,0x64,0x33,0x05,0x4B,0x29,0xA3,0x8
7,0x7F,0x74,0xBB,0x0D,0x0E,0x84}; |
| 46 BMD_CONST REFIID IID_IBMDStreamingH264InputCallback = /* 823C475F-
55AE-46F9-890C-537CC5CEDCCA */ {0x82,0x3C,0x47,0x5F,0x55,0xAE,0x46,0xF9,0x89,0x0
C,0x53,0x7C,0xC5,0xCE,0xDC,0xCA}; |
| 47 BMD_CONST REFIID IID_IBMDStreamingDiscovery = /* 2C837444-
F989-4D87-901A-47C8A36D096D */ {0x2C,0x83,0x74,0x44,0xF9,0x89,0x4D,0x87,0x90,0x1
A,0x47,0xC8,0xA3,0x6D,0x09,0x6D}; |
| 48 BMD_CONST REFIID IID_IBMDStreamingVideoEncodingMode = /* 1AB8035B-
CD13-458D-B6DF-5E8F7C2141D9 */ {0x1A,0xB8,0x03,0x5B,0xCD,0x13,0x45,0x8D,0xB6,0xD
F,0x5E,0x8F,0x7C,0x21,0x41,0xD9}; |
| 49 BMD_CONST REFIID IID_IBMDStreamingMutableVideoEncodingMode = /* 19BF7D90-
1E0A-400D-B2C6-FFC4E78AD49D */ {0x19,0xBF,0x7D,0x90,0x1E,0x0A,0x40,0x0D,0xB2,0xC
6,0xFF,0xC4,0xE7,0x8A,0xD4,0x9D}; |
| 50 BMD_CONST REFIID IID_IBMDStreamingVideoEncodingModePresetIterator = /* 7AC731A3-
C950-4AD0-804A-8377AA51C6C4 */ {0x7A,0xC7,0x31,0xA3,0xC9,0x50,0x4A,0xD0,0x80,0x4
A,0x83,0x77,0xAA,0x51,0xC6,0xC4}; |
| 51 BMD_CONST REFIID IID_IBMDStreamingDeviceInput = /* 24B6B6EC-
1727-44BB-9818-34FF086ACF98 */ {0x24,0xB6,0xB6,0xEC,0x17,0x27,0x44,0xBB,0x98,0x1
8,0x34,0xFF,0x08,0x6A,0xCF,0x98}; |
| 52 BMD_CONST REFIID IID_IBMDStreamingH264NALPacket = /* E260E955-
14BE-4395-9775-9F02CC0A9D89 */ {0xE2,0x60,0xE9,0x55,0x14,0xBE,0x43,0x95,0x97,0x7
5,0x9F,0x02,0xCC,0x0A,0x9D,0x89}; |
| 53 BMD_CONST REFIID IID_IBMDStreamingAudioPacket = /* D9EB5902-
1AD2-43F4-9E2C-3CFA50B5EE19 */ {0xD9,0xEB,0x59,0x02,0x1A,0xD2,0x43,0xF4,0x9E,0x2
C,0x3C,0xFA,0x50,0xB5,0xEE,0x19}; |
| 54 BMD_CONST REFIID IID_IBMDStreamingMPEG2TSPacket = /* 91810D1C-
4FB3-4AAA-AE56-FA301D3DFA4C */ {0x91,0x81,0x0D,0x1C,0x4F,0xB3,0x4A,0xAA,0xAE,0x5
6,0xFA,0x30,0x1D,0x3D,0xFA,0x4C}; |
| 55 BMD_CONST REFIID IID_IBMDStreamingH264NALParser = /* 5867F18C-
5BFA-4CCC-B2A7-9DFD140417D2 */ {0x58,0x67,0xF1,0x8C,0x5B,0xFA,0x4C,0xCC,0xB2,0xA
7,0x9D,0xFD,0x14,0x04,0x17,0xD2}; |
| 56 |
| 57 /* Enum BMDStreamingDeviceMode - Device modes */ |
| 58 |
| 59 typedef uint32_t BMDStreamingDeviceMode; |
| 60 enum _BMDStreamingDeviceMode { |
| 61 bmdStreamingDeviceIdle = 'idle', |
| 62 bmdStreamingDeviceEncoding = 'enco', |
| 63 bmdStreamingDeviceStopping = 'stop', |
| 64 bmdStreamingDeviceUnknown = 'munk' |
| 65 }; |
| 66 |
| 67 /* Enum BMDStreamingEncodingFrameRate - Encoded frame rates */ |
| 68 |
| 69 typedef uint32_t BMDStreamingEncodingFrameRate; |
| 70 enum _BMDStreamingEncodingFrameRate { |
| 71 |
| 72 /* Interlaced rates */ |
| 73 |
| 74 bmdStreamingEncodedFrameRate50i = 'e50i', |
| 75 bmdStreamingEncodedFrameRate5994i = 'e59i', |
| 76 bmdStreamingEncodedFrameRate60i = 'e60i', |
| 77 |
| 78 /* Progressive rates */ |
| 79 |
| 80 bmdStreamingEncodedFrameRate2398p = 'e23p', |
| 81 bmdStreamingEncodedFrameRate24p = 'e24p', |
| 82 bmdStreamingEncodedFrameRate25p = 'e25p', |
| 83 bmdStreamingEncodedFrameRate2997p = 'e29p', |
| 84 bmdStreamingEncodedFrameRate30p = 'e30p', |
| 85 bmdStreamingEncodedFrameRate50p = 'e50p', |
| 86 bmdStreamingEncodedFrameRate5994p = 'e59p', |
| 87 bmdStreamingEncodedFrameRate60p = 'e60p' |
| 88 }; |
| 89 |
| 90 /* Enum BMDStreamingEncodingSupport - Output encoding mode supported flag */ |
| 91 |
| 92 typedef uint32_t BMDStreamingEncodingSupport; |
| 93 enum _BMDStreamingEncodingSupport { |
| 94 bmdStreamingEncodingModeNotSupported = 0, |
| 95 bmdStreamingEncodingModeSupported, |
| 96 bmdStreamingEncodingModeSupportedWithChanges |
| 97 }; |
| 98 |
| 99 /* Enum BMDStreamingVideoCodec - Video codecs */ |
| 100 |
| 101 typedef uint32_t BMDStreamingVideoCodec; |
| 102 enum _BMDStreamingVideoCodec { |
| 103 bmdStreamingVideoCodecH264 = 'H264' |
| 104 }; |
| 105 |
| 106 /* Enum BMDStreamingH264Profile - H264 encoding profile */ |
| 107 |
| 108 typedef uint32_t BMDStreamingH264Profile; |
| 109 enum _BMDStreamingH264Profile { |
| 110 bmdStreamingH264ProfileHigh = 'high', |
| 111 bmdStreamingH264ProfileMain = 'main', |
| 112 bmdStreamingH264ProfileBaseline = 'base' |
| 113 }; |
| 114 |
| 115 /* Enum BMDStreamingH264Level - H264 encoding level */ |
| 116 |
| 117 typedef uint32_t BMDStreamingH264Level; |
| 118 enum _BMDStreamingH264Level { |
| 119 bmdStreamingH264Level12 = 'lv12', |
| 120 bmdStreamingH264Level13 = 'lv13', |
| 121 bmdStreamingH264Level2 = 'lv2 ', |
| 122 bmdStreamingH264Level21 = 'lv21', |
| 123 bmdStreamingH264Level22 = 'lv22', |
| 124 bmdStreamingH264Level3 = 'lv3 ', |
| 125 bmdStreamingH264Level31 = 'lv31', |
| 126 bmdStreamingH264Level32 = 'lv32', |
| 127 bmdStreamingH264Level4 = 'lv4 ', |
| 128 bmdStreamingH264Level41 = 'lv41', |
| 129 bmdStreamingH264Level42 = 'lv42' |
| 130 }; |
| 131 |
| 132 /* Enum BMDStreamingH264EntropyCoding - H264 entropy coding */ |
| 133 |
| 134 typedef uint32_t BMDStreamingH264EntropyCoding; |
| 135 enum _BMDStreamingH264EntropyCoding { |
| 136 bmdStreamingH264EntropyCodingCAVLC = 'EVLC', |
| 137 bmdStreamingH264EntropyCodingCABAC = 'EBAC' |
| 138 }; |
| 139 |
| 140 /* Enum BMDStreamingAudioCodec - Audio codecs */ |
| 141 |
| 142 typedef uint32_t BMDStreamingAudioCodec; |
| 143 enum _BMDStreamingAudioCodec { |
| 144 bmdStreamingAudioCodecAAC = 'AAC ' |
| 145 }; |
| 146 |
| 147 /* Enum BMDStreamingEncodingModePropertyID - Encoding mode properties */ |
| 148 |
| 149 typedef uint32_t BMDStreamingEncodingModePropertyID; |
| 150 enum _BMDStreamingEncodingModePropertyID { |
| 151 |
| 152 /* Integers, Video Properties */ |
| 153 |
| 154 bmdStreamingEncodingPropertyVideoFrameRate = 'vfrt',
// Uses values of type BMDStreamingEncodingFrameRate |
| 155 bmdStreamingEncodingPropertyVideoBitRateKbps = 'vbrt', |
| 156 |
| 157 /* Integers, H264 Properties */ |
| 158 |
| 159 bmdStreamingEncodingPropertyH264Profile = 'hprf', |
| 160 bmdStreamingEncodingPropertyH264Level = 'hlvl', |
| 161 bmdStreamingEncodingPropertyH264EntropyCoding = 'hent', |
| 162 |
| 163 /* Flags, H264 Properties */ |
| 164 |
| 165 bmdStreamingEncodingPropertyH264HasBFrames = 'hBfr', |
| 166 |
| 167 /* Integers, Audio Properties */ |
| 168 |
| 169 bmdStreamingEncodingPropertyAudioCodec = 'acdc', |
| 170 bmdStreamingEncodingPropertyAudioSampleRate = 'asrt', |
| 171 bmdStreamingEncodingPropertyAudioChannelCount = 'achc', |
| 172 bmdStreamingEncodingPropertyAudioBitRateKbps = 'abrt' |
| 173 }; |
| 174 |
| 175 // Forward Declarations |
| 176 |
| 177 class IBMDStreamingDeviceNotificationCallback; |
| 178 class IBMDStreamingH264InputCallback; |
| 179 class IBMDStreamingDiscovery; |
| 180 class IBMDStreamingVideoEncodingMode; |
| 181 class IBMDStreamingMutableVideoEncodingMode; |
| 182 class IBMDStreamingVideoEncodingModePresetIterator; |
| 183 class IBMDStreamingDeviceInput; |
| 184 class IBMDStreamingH264NALPacket; |
| 185 class IBMDStreamingAudioPacket; |
| 186 class IBMDStreamingMPEG2TSPacket; |
| 187 class IBMDStreamingH264NALParser; |
| 188 |
| 189 /* Interface IBMDStreamingDeviceNotificationCallback - Device notification callb
acks. */ |
| 190 |
| 191 class IBMDStreamingDeviceNotificationCallback : public IUnknown |
| 192 { |
| 193 public: |
| 194 virtual HRESULT StreamingDeviceArrived (/* in */ IDeckLink* device) = 0; |
| 195 virtual HRESULT StreamingDeviceRemoved (/* in */ IDeckLink* device) = 0; |
| 196 virtual HRESULT StreamingDeviceModeChanged (/* in */ IDeckLink* device, /* i
n */ BMDStreamingDeviceMode mode) = 0; |
| 197 |
| 198 protected: |
| 199 virtual ~IBMDStreamingDeviceNotificationCallback () {}; // call Release meth
od to drop reference count |
| 200 }; |
| 201 |
| 202 /* Interface IBMDStreamingH264InputCallback - H264 input callbacks. */ |
| 203 |
| 204 class IBMDStreamingH264InputCallback : public IUnknown |
| 205 { |
| 206 public: |
| 207 virtual HRESULT H264NALPacketArrived (/* in */ IBMDStreamingH264NALPacket* n
alPacket) = 0; |
| 208 virtual HRESULT H264AudioPacketArrived (/* in */ IBMDStreamingAudioPacket* a
udioPacket) = 0; |
| 209 virtual HRESULT MPEG2TSPacketArrived (/* in */ IBMDStreamingMPEG2TSPacket* t
sPacket) = 0; |
| 210 virtual HRESULT H264VideoInputConnectorScanningChanged (void) = 0; |
| 211 virtual HRESULT H264VideoInputConnectorChanged (void) = 0; |
| 212 virtual HRESULT H264VideoInputModeChanged (void) = 0; |
| 213 |
| 214 protected: |
| 215 virtual ~IBMDStreamingH264InputCallback () {}; // call Release method to dro
p reference count |
| 216 }; |
| 217 |
| 218 /* Interface IBMDStreamingDiscovery - Installs device notifications */ |
| 219 |
| 220 class IBMDStreamingDiscovery : public IUnknown |
| 221 { |
| 222 public: |
| 223 virtual HRESULT InstallDeviceNotifications (/* in */ IBMDStreamingDeviceNoti
ficationCallback* theCallback) = 0; |
| 224 virtual HRESULT UninstallDeviceNotifications (void) = 0; |
| 225 |
| 226 protected: |
| 227 virtual ~IBMDStreamingDiscovery () {}; // call Release method to drop refere
nce count |
| 228 }; |
| 229 |
| 230 /* Interface IBMDStreamingVideoEncodingMode - Represents an encoded video mode.
*/ |
| 231 |
| 232 class IBMDStreamingVideoEncodingMode : public IUnknown |
| 233 { |
| 234 public: |
| 235 virtual HRESULT GetName (/* out */ CFStringRef *name) = 0; |
| 236 virtual unsigned int GetPresetID (void) = 0; |
| 237 virtual unsigned int GetSourcePositionX (void) = 0; |
| 238 virtual unsigned int GetSourcePositionY (void) = 0; |
| 239 virtual unsigned int GetSourceWidth (void) = 0; |
| 240 virtual unsigned int GetSourceHeight (void) = 0; |
| 241 virtual unsigned int GetDestWidth (void) = 0; |
| 242 virtual unsigned int GetDestHeight (void) = 0; |
| 243 virtual HRESULT GetFlag (/* in */ BMDStreamingEncodingModePropertyID cfgID,
/* out */ bool* value) = 0; |
| 244 virtual HRESULT GetInt (/* in */ BMDStreamingEncodingModePropertyID cfgID, /
* out */ int64_t* value) = 0; |
| 245 virtual HRESULT GetFloat (/* in */ BMDStreamingEncodingModePropertyID cfgID,
/* out */ double* value) = 0; |
| 246 virtual HRESULT GetString (/* in */ BMDStreamingEncodingModePropertyID cfgID
, /* out */ CFStringRef *value) = 0; |
| 247 virtual HRESULT CreateMutableVideoEncodingMode (/* out */ IBMDStreamingMutab
leVideoEncodingMode** newEncodingMode) = 0; // Creates a mutable copy of the enc
oding mode |
| 248 |
| 249 protected: |
| 250 virtual ~IBMDStreamingVideoEncodingMode () {}; // call Release method to dro
p reference count |
| 251 }; |
| 252 |
| 253 /* Interface IBMDStreamingMutableVideoEncodingMode - Represents a mutable encode
d video mode. */ |
| 254 |
| 255 class IBMDStreamingMutableVideoEncodingMode : public IBMDStreamingVideoEncodingM
ode |
| 256 { |
| 257 public: |
| 258 virtual HRESULT SetSourceRect (/* in */ uint32_t posX, /* in */ uint32_t pos
Y, /* in */ uint32_t width, /* in */ uint32_t height) = 0; |
| 259 virtual HRESULT SetDestSize (/* in */ uint32_t width, /* in */ uint32_t heig
ht) = 0; |
| 260 virtual HRESULT SetFlag (/* in */ BMDStreamingEncodingModePropertyID cfgID,
/* in */ bool value) = 0; |
| 261 virtual HRESULT SetInt (/* in */ BMDStreamingEncodingModePropertyID cfgID, /
* in */ int64_t value) = 0; |
| 262 virtual HRESULT SetFloat (/* in */ BMDStreamingEncodingModePropertyID cfgID,
/* in */ double value) = 0; |
| 263 virtual HRESULT SetString (/* in */ BMDStreamingEncodingModePropertyID cfgID
, /* in */ CFStringRef value) = 0; |
| 264 |
| 265 protected: |
| 266 virtual ~IBMDStreamingMutableVideoEncodingMode () {}; // call Release method
to drop reference count |
| 267 }; |
| 268 |
| 269 /* Interface IBMDStreamingVideoEncodingModePresetIterator - Enumerates encoding
mode presets */ |
| 270 |
| 271 class IBMDStreamingVideoEncodingModePresetIterator : public IUnknown |
| 272 { |
| 273 public: |
| 274 virtual HRESULT Next (/* out */ IBMDStreamingVideoEncodingMode** videoEncodi
ngMode) = 0; |
| 275 |
| 276 protected: |
| 277 virtual ~IBMDStreamingVideoEncodingModePresetIterator () {}; // call Release
method to drop reference count |
| 278 }; |
| 279 |
| 280 /* Interface IBMDStreamingDeviceInput - Created by QueryInterface from IDeckLink
*/ |
| 281 |
| 282 class IBMDStreamingDeviceInput : public IUnknown |
| 283 { |
| 284 public: |
| 285 |
| 286 /* Input modes */ |
| 287 |
| 288 virtual HRESULT DoesSupportVideoInputMode (/* in */ BMDDisplayMode inputMode
, /* out */ bool* result) = 0; |
| 289 virtual HRESULT GetVideoInputModeIterator (/* out */ IDeckLinkDisplayModeIte
rator** iterator) = 0; |
| 290 virtual HRESULT SetVideoInputMode (/* in */ BMDDisplayMode inputMode) = 0; |
| 291 virtual HRESULT GetCurrentDetectedVideoInputMode (/* out */ BMDDisplayMode*
detectedMode) = 0; |
| 292 |
| 293 /* Capture modes */ |
| 294 |
| 295 virtual HRESULT GetVideoEncodingMode (/* out */ IBMDStreamingVideoEncodingMo
de** encodingMode) = 0; |
| 296 virtual HRESULT GetVideoEncodingModePresetIterator (/* in */ BMDDisplayMode
inputMode, /* out */ IBMDStreamingVideoEncodingModePresetIterator** iterator) =
0; |
| 297 virtual HRESULT DoesSupportVideoEncodingMode (/* in */ BMDDisplayMode inputM
ode, /* in */ IBMDStreamingVideoEncodingMode* encodingMode, /* out */ BMDStreami
ngEncodingSupport* result, /* out */ IBMDStreamingVideoEncodingMode** changedEnc
odingMode) = 0; |
| 298 virtual HRESULT SetVideoEncodingMode (/* in */ IBMDStreamingVideoEncodingMod
e* encodingMode) = 0; |
| 299 |
| 300 /* Input control */ |
| 301 |
| 302 virtual HRESULT StartCapture (void) = 0; |
| 303 virtual HRESULT StopCapture (void) = 0; |
| 304 virtual HRESULT SetCallback (/* in */ IUnknown* theCallback) = 0; |
| 305 |
| 306 protected: |
| 307 virtual ~IBMDStreamingDeviceInput () {}; // call Release method to drop refe
rence count |
| 308 }; |
| 309 |
| 310 /* Interface IBMDStreamingH264NALPacket - Represent an H.264 NAL packet */ |
| 311 |
| 312 class IBMDStreamingH264NALPacket : public IUnknown |
| 313 { |
| 314 public: |
| 315 virtual long GetPayloadSize (void) = 0; |
| 316 virtual HRESULT GetBytes (/* out */ void** buffer) = 0; |
| 317 virtual HRESULT GetBytesWithSizePrefix (/* out */ void** buffer) = 0; // Con
tains a 32-bit unsigned big endian size prefix |
| 318 virtual HRESULT GetDisplayTime (/* in */ uint64_t requestedTimeScale, /* out
*/ uint64_t* displayTime) = 0; |
| 319 virtual HRESULT GetPacketIndex (/* out */ uint32_t* packetIndex) = 0; // Dep
recated |
| 320 |
| 321 protected: |
| 322 virtual ~IBMDStreamingH264NALPacket () {}; // call Release method to drop re
ference count |
| 323 }; |
| 324 |
| 325 /* Interface IBMDStreamingAudioPacket - Represents a chunk of audio data */ |
| 326 |
| 327 class IBMDStreamingAudioPacket : public IUnknown |
| 328 { |
| 329 public: |
| 330 virtual BMDStreamingAudioCodec GetCodec (void) = 0; |
| 331 virtual long GetPayloadSize (void) = 0; |
| 332 virtual HRESULT GetBytes (/* out */ void** buffer) = 0; |
| 333 virtual HRESULT GetPlayTime (/* in */ uint64_t requestedTimeScale, /* out */
uint64_t* playTime) = 0; |
| 334 virtual HRESULT GetPacketIndex (/* out */ uint32_t* packetIndex) = 0; // Dep
recated |
| 335 |
| 336 protected: |
| 337 virtual ~IBMDStreamingAudioPacket () {}; // call Release method to drop refe
rence count |
| 338 }; |
| 339 |
| 340 /* Interface IBMDStreamingMPEG2TSPacket - Represent an MPEG2 Transport Stream pa
cket */ |
| 341 |
| 342 class IBMDStreamingMPEG2TSPacket : public IUnknown |
| 343 { |
| 344 public: |
| 345 virtual long GetPayloadSize (void) = 0; |
| 346 virtual HRESULT GetBytes (/* out */ void** buffer) = 0; |
| 347 |
| 348 protected: |
| 349 virtual ~IBMDStreamingMPEG2TSPacket () {}; // call Release method to drop re
ference count |
| 350 }; |
| 351 |
| 352 /* Interface IBMDStreamingH264NALParser - For basic NAL parsing */ |
| 353 |
| 354 class IBMDStreamingH264NALParser : public IUnknown |
| 355 { |
| 356 public: |
| 357 virtual HRESULT IsNALSequenceParameterSet (/* in */ IBMDStreamingH264NALPack
et* nal) = 0; |
| 358 virtual HRESULT IsNALPictureParameterSet (/* in */ IBMDStreamingH264NALPacke
t* nal) = 0; |
| 359 virtual HRESULT GetProfileAndLevelFromSPS (/* in */ IBMDStreamingH264NALPack
et* nal, /* out */ uint32_t* profileIdc, /* out */ uint32_t* profileCompatabilit
y, /* out */ uint32_t* levelIdc) = 0; |
| 360 |
| 361 protected: |
| 362 virtual ~IBMDStreamingH264NALParser () {}; // call Release method to drop re
ference count |
| 363 }; |
| 364 |
| 365 /* Functions */ |
| 366 |
| 367 extern "C" { |
| 368 |
| 369 IBMDStreamingDiscovery* CreateBMDStreamingDiscoveryInstance (void); |
| 370 IBMDStreamingH264NALParser* CreateBMDStreamingH264NALParser (void); |
| 371 |
| 372 }; |
| 373 |
| 374 |
| 375 #endif /* defined(BMD_DECKLINKAPISTREAMING_H) */ |
OLD | NEW |