Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(267)

Unified Diff: third_party/decklink/win/include/DeckLinkAPIStreaming.idl

Issue 599173002: Win Video Capture: Add Blackmagic DeckLink SDK Win files to the existing third_party folder (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/decklink/win/include/DeckLinkAPIStreaming.idl
diff --git a/third_party/decklink/win/include/DeckLinkAPIStreaming.idl b/third_party/decklink/win/include/DeckLinkAPIStreaming.idl
new file mode 100644
index 0000000000000000000000000000000000000000..686fee6ba62368754dd52c8d607f70927455e6cd
--- /dev/null
+++ b/third_party/decklink/win/include/DeckLinkAPIStreaming.idl
@@ -0,0 +1,364 @@
+/* -LICENSE-START-
+** Copyright (c) 2014 Blackmagic Design
+**
+** Permission is hereby granted, free of charge, to any person or organization
+** obtaining a copy of the software and accompanying documentation covered by
+** this license (the "Software") to use, reproduce, display, distribute,
+** execute, and transmit the Software, and to prepare derivative works of the
+** Software, and to permit third-parties to whom the Software is furnished to
+** do so, all subject to the following:
+**
+** The copyright notices in the Software and this entire statement, including
+** the above license grant, this restriction and the following disclaimer,
+** must be included in all copies of the Software, in whole or in part, and
+** all derivative works of the Software, unless such copies or derivative
+** works are solely in the form of machine-executable object code generated by
+** a source language processor.
+**
+** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
+** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
+** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
+** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+** DEALINGS IN THE SOFTWARE.
+** -LICENSE-END-
+*/
+
+
+#ifndef BMD_CONST
+ #if defined(_MSC_VER)
+ #define BMD_CONST __declspec(selectany) static const
+ #else
+ #define BMD_CONST static const
+ #endif
+#endif
+
+// Type Declarations
+
+
+// Enumeration Mapping
+
+cpp_quote("#if 0")
+cpp_quote("#endif")
+
+/* Enum BMDStreamingDeviceMode - Device modes */
+
+typedef [v1_enum] enum _BMDStreamingDeviceMode {
+ bmdStreamingDeviceIdle = /* 'idle' */ 0x69646C65,
+ bmdStreamingDeviceEncoding = /* 'enco' */ 0x656E636F,
+ bmdStreamingDeviceStopping = /* 'stop' */ 0x73746F70,
+ bmdStreamingDeviceUnknown = /* 'munk' */ 0x6D756E6B
+} BMDStreamingDeviceMode;
+
+/* Enum BMDStreamingEncodingFrameRate - Encoded frame rates */
+
+typedef [v1_enum] enum _BMDStreamingEncodingFrameRate {
+
+ /* Interlaced rates */
+
+ bmdStreamingEncodedFrameRate50i = /* 'e50i' */ 0x65353069,
+ bmdStreamingEncodedFrameRate5994i = /* 'e59i' */ 0x65353969,
+ bmdStreamingEncodedFrameRate60i = /* 'e60i' */ 0x65363069,
+
+ /* Progressive rates */
+
+ bmdStreamingEncodedFrameRate2398p = /* 'e23p' */ 0x65323370,
+ bmdStreamingEncodedFrameRate24p = /* 'e24p' */ 0x65323470,
+ bmdStreamingEncodedFrameRate25p = /* 'e25p' */ 0x65323570,
+ bmdStreamingEncodedFrameRate2997p = /* 'e29p' */ 0x65323970,
+ bmdStreamingEncodedFrameRate30p = /* 'e30p' */ 0x65333070,
+ bmdStreamingEncodedFrameRate50p = /* 'e50p' */ 0x65353070,
+ bmdStreamingEncodedFrameRate5994p = /* 'e59p' */ 0x65353970,
+ bmdStreamingEncodedFrameRate60p = /* 'e60p' */ 0x65363070
+} BMDStreamingEncodingFrameRate;
+
+/* Enum BMDStreamingEncodingSupport - Output encoding mode supported flag */
+
+typedef [v1_enum] enum _BMDStreamingEncodingSupport {
+ bmdStreamingEncodingModeNotSupported = 0,
+ bmdStreamingEncodingModeSupported,
+ bmdStreamingEncodingModeSupportedWithChanges
+} BMDStreamingEncodingSupport;
+
+/* Enum BMDStreamingVideoCodec - Video codecs */
+
+typedef [v1_enum] enum _BMDStreamingVideoCodec {
+ bmdStreamingVideoCodecH264 = /* 'H264' */ 0x48323634
+} BMDStreamingVideoCodec;
+
+/* Enum BMDStreamingH264Profile - H264 encoding profile */
+
+typedef [v1_enum] enum _BMDStreamingH264Profile {
+ bmdStreamingH264ProfileHigh = /* 'high' */ 0x68696768,
+ bmdStreamingH264ProfileMain = /* 'main' */ 0x6D61696E,
+ bmdStreamingH264ProfileBaseline = /* 'base' */ 0x62617365
+} BMDStreamingH264Profile;
+
+/* Enum BMDStreamingH264Level - H264 encoding level */
+
+typedef [v1_enum] enum _BMDStreamingH264Level {
+ bmdStreamingH264Level12 = /* 'lv12' */ 0x6C763132,
+ bmdStreamingH264Level13 = /* 'lv13' */ 0x6C763133,
+ bmdStreamingH264Level2 = /* 'lv2 ' */ 0x6C763220,
+ bmdStreamingH264Level21 = /* 'lv21' */ 0x6C763231,
+ bmdStreamingH264Level22 = /* 'lv22' */ 0x6C763232,
+ bmdStreamingH264Level3 = /* 'lv3 ' */ 0x6C763320,
+ bmdStreamingH264Level31 = /* 'lv31' */ 0x6C763331,
+ bmdStreamingH264Level32 = /* 'lv32' */ 0x6C763332,
+ bmdStreamingH264Level4 = /* 'lv4 ' */ 0x6C763420,
+ bmdStreamingH264Level41 = /* 'lv41' */ 0x6C763431,
+ bmdStreamingH264Level42 = /* 'lv42' */ 0x6C763432
+} BMDStreamingH264Level;
+
+/* Enum BMDStreamingH264EntropyCoding - H264 entropy coding */
+
+typedef [v1_enum] enum _BMDStreamingH264EntropyCoding {
+ bmdStreamingH264EntropyCodingCAVLC = /* 'EVLC' */ 0x45564C43,
+ bmdStreamingH264EntropyCodingCABAC = /* 'EBAC' */ 0x45424143
+} BMDStreamingH264EntropyCoding;
+
+/* Enum BMDStreamingAudioCodec - Audio codecs */
+
+typedef [v1_enum] enum _BMDStreamingAudioCodec {
+ bmdStreamingAudioCodecAAC = /* 'AAC ' */ 0x41414320
+} BMDStreamingAudioCodec;
+
+/* Enum BMDStreamingEncodingModePropertyID - Encoding mode properties */
+
+typedef [v1_enum] enum _BMDStreamingEncodingModePropertyID {
+
+ /* Integers, Video Properties */
+
+ bmdStreamingEncodingPropertyVideoFrameRate = /* 'vfrt' */ 0x76667274, // Uses values of type BMDStreamingEncodingFrameRate
+ bmdStreamingEncodingPropertyVideoBitRateKbps = /* 'vbrt' */ 0x76627274,
+
+ /* Integers, H264 Properties */
+
+ bmdStreamingEncodingPropertyH264Profile = /* 'hprf' */ 0x68707266,
+ bmdStreamingEncodingPropertyH264Level = /* 'hlvl' */ 0x686C766C,
+ bmdStreamingEncodingPropertyH264EntropyCoding = /* 'hent' */ 0x68656E74,
+
+ /* Flags, H264 Properties */
+
+ bmdStreamingEncodingPropertyH264HasBFrames = /* 'hBfr' */ 0x68426672,
+
+ /* Integers, Audio Properties */
+
+ bmdStreamingEncodingPropertyAudioCodec = /* 'acdc' */ 0x61636463,
+ bmdStreamingEncodingPropertyAudioSampleRate = /* 'asrt' */ 0x61737274,
+ bmdStreamingEncodingPropertyAudioChannelCount = /* 'achc' */ 0x61636863,
+ bmdStreamingEncodingPropertyAudioBitRateKbps = /* 'abrt' */ 0x61627274
+} BMDStreamingEncodingModePropertyID;
+
+// Forward Declarations
+
+interface IBMDStreamingDeviceNotificationCallback;
+interface IBMDStreamingH264InputCallback;
+interface IBMDStreamingDiscovery;
+interface IBMDStreamingVideoEncodingMode;
+interface IBMDStreamingMutableVideoEncodingMode;
+interface IBMDStreamingVideoEncodingModePresetIterator;
+interface IBMDStreamingDeviceInput;
+interface IBMDStreamingH264NALPacket;
+interface IBMDStreamingAudioPacket;
+interface IBMDStreamingMPEG2TSPacket;
+interface IBMDStreamingH264NALParser;
+
+/* Interface IBMDStreamingDeviceNotificationCallback - Device notification callbacks. */
+
+[
+ object,
+ uuid(F9531D64-3305-4B29-A387-7F74BB0D0E84),
+ helpstring("Device notification callbacks.")
+] interface IBMDStreamingDeviceNotificationCallback : IUnknown
+{
+ HRESULT StreamingDeviceArrived([in] IDeckLink* device);
+ HRESULT StreamingDeviceRemoved([in] IDeckLink* device);
+ HRESULT StreamingDeviceModeChanged([in] IDeckLink* device, [in] BMDStreamingDeviceMode mode);
+};
+
+/* Interface IBMDStreamingH264InputCallback - H264 input callbacks. */
+
+[
+ object,
+ uuid(823C475F-55AE-46F9-890C-537CC5CEDCCA),
+ helpstring("H264 input callbacks.")
+] interface IBMDStreamingH264InputCallback : IUnknown
+{
+ HRESULT H264NALPacketArrived([in] IBMDStreamingH264NALPacket* nalPacket);
+ HRESULT H264AudioPacketArrived([in] IBMDStreamingAudioPacket* audioPacket);
+ HRESULT MPEG2TSPacketArrived([in] IBMDStreamingMPEG2TSPacket* tsPacket);
+ HRESULT H264VideoInputConnectorScanningChanged(void);
+ HRESULT H264VideoInputConnectorChanged(void);
+ HRESULT H264VideoInputModeChanged(void);
+};
+
+/* Interface IBMDStreamingDiscovery - Installs device notifications */
+
+[
+ object,
+ uuid(2C837444-F989-4D87-901A-47C8A36D096D),
+ helpstring("Installs device notifications")
+] interface IBMDStreamingDiscovery : IUnknown
+{
+ HRESULT InstallDeviceNotifications([in] IBMDStreamingDeviceNotificationCallback* theCallback);
+ HRESULT UninstallDeviceNotifications(void);
+};
+
+/* Interface IBMDStreamingVideoEncodingMode - Represents an encoded video mode. */
+
+[
+ object,
+ uuid(1AB8035B-CD13-458D-B6DF-5E8F7C2141D9),
+ helpstring("Represents an encoded video mode.")
+] interface IBMDStreamingVideoEncodingMode : IUnknown
+{
+ HRESULT GetName([out] BSTR *name);
+ unsigned int GetPresetID(void);
+ unsigned int GetSourcePositionX(void);
+ unsigned int GetSourcePositionY(void);
+ unsigned int GetSourceWidth(void);
+ unsigned int GetSourceHeight(void);
+ unsigned int GetDestWidth(void);
+ unsigned int GetDestHeight(void);
+ HRESULT GetFlag([in] BMDStreamingEncodingModePropertyID cfgID, [out] BOOL* value);
+ HRESULT GetInt([in] BMDStreamingEncodingModePropertyID cfgID, [out] LONGLONG* value);
+ HRESULT GetFloat([in] BMDStreamingEncodingModePropertyID cfgID, [out] double* value);
+ HRESULT GetString([in] BMDStreamingEncodingModePropertyID cfgID, [out] BSTR *value);
+ HRESULT CreateMutableVideoEncodingMode([out] IBMDStreamingMutableVideoEncodingMode** newEncodingMode); // Creates a mutable copy of the encoding mode
+};
+
+/* Interface IBMDStreamingMutableVideoEncodingMode - Represents a mutable encoded video mode. */
+
+[
+ object,
+ uuid(19BF7D90-1E0A-400D-B2C6-FFC4E78AD49D),
+ helpstring("Represents a mutable encoded video mode.")
+] interface IBMDStreamingMutableVideoEncodingMode : IBMDStreamingVideoEncodingMode
+{
+ HRESULT SetSourceRect([in] unsigned long posX, [in] unsigned long posY, [in] unsigned long width, [in] unsigned long height);
+ HRESULT SetDestSize([in] unsigned long width, [in] unsigned long height);
+ HRESULT SetFlag([in] BMDStreamingEncodingModePropertyID cfgID, [in] BOOL value);
+ HRESULT SetInt([in] BMDStreamingEncodingModePropertyID cfgID, [in] LONGLONG value);
+ HRESULT SetFloat([in] BMDStreamingEncodingModePropertyID cfgID, [in] double value);
+ HRESULT SetString([in] BMDStreamingEncodingModePropertyID cfgID, [in] BSTR value);
+};
+
+/* Interface IBMDStreamingVideoEncodingModePresetIterator - Enumerates encoding mode presets */
+
+[
+ object,
+ uuid(7AC731A3-C950-4AD0-804A-8377AA51C6C4),
+ helpstring("Enumerates encoding mode presets")
+] interface IBMDStreamingVideoEncodingModePresetIterator : IUnknown
+{
+ HRESULT Next([out] IBMDStreamingVideoEncodingMode** videoEncodingMode);
+};
+
+/* Interface IBMDStreamingDeviceInput - Created by QueryInterface from IDeckLink */
+
+[
+ object,
+ uuid(24B6B6EC-1727-44BB-9818-34FF086ACF98),
+ helpstring("Created by QueryInterface from IDeckLink")
+] interface IBMDStreamingDeviceInput : IUnknown
+{
+
+ /* Input modes */
+
+ HRESULT DoesSupportVideoInputMode([in] BMDDisplayMode inputMode, [out] BOOL* result);
+ HRESULT GetVideoInputModeIterator([out] IDeckLinkDisplayModeIterator** iterator);
+ HRESULT SetVideoInputMode([in] BMDDisplayMode inputMode);
+ HRESULT GetCurrentDetectedVideoInputMode([out] BMDDisplayMode* detectedMode);
+
+ /* Capture modes */
+
+ HRESULT GetVideoEncodingMode([out] IBMDStreamingVideoEncodingMode** encodingMode);
+ HRESULT GetVideoEncodingModePresetIterator([in] BMDDisplayMode inputMode, [out] IBMDStreamingVideoEncodingModePresetIterator** iterator);
+ HRESULT DoesSupportVideoEncodingMode([in] BMDDisplayMode inputMode, [in] IBMDStreamingVideoEncodingMode* encodingMode, [out] BMDStreamingEncodingSupport* result, [out] IBMDStreamingVideoEncodingMode** changedEncodingMode);
+ HRESULT SetVideoEncodingMode([in] IBMDStreamingVideoEncodingMode* encodingMode);
+
+ /* Input control */
+
+ HRESULT StartCapture(void);
+ HRESULT StopCapture(void);
+ HRESULT SetCallback([in] IUnknown* theCallback);
+};
+
+/* Interface IBMDStreamingH264NALPacket - Represent an H.264 NAL packet */
+
+[
+ object,
+ uuid(E260E955-14BE-4395-9775-9F02CC0A9D89),
+ helpstring("Represent an H.264 NAL packet")
+] interface IBMDStreamingH264NALPacket : IUnknown
+{
+ long GetPayloadSize(void);
+ HRESULT GetBytes([out] void** buffer);
+ HRESULT GetBytesWithSizePrefix([out] void** buffer); // Contains a 32-bit unsigned big endian size prefix
+ HRESULT GetDisplayTime([in] ULONGLONG requestedTimeScale, [out] ULONGLONG* displayTime);
+ HRESULT GetPacketIndex([out] unsigned long* packetIndex); // Deprecated
+};
+
+/* Interface IBMDStreamingAudioPacket - Represents a chunk of audio data */
+
+[
+ object,
+ uuid(D9EB5902-1AD2-43F4-9E2C-3CFA50B5EE19),
+ helpstring("Represents a chunk of audio data")
+] interface IBMDStreamingAudioPacket : IUnknown
+{
+ BMDStreamingAudioCodec GetCodec(void);
+ long GetPayloadSize(void);
+ HRESULT GetBytes([out] void** buffer);
+ HRESULT GetPlayTime([in] ULONGLONG requestedTimeScale, [out] ULONGLONG* playTime);
+ HRESULT GetPacketIndex([out] unsigned long* packetIndex); // Deprecated
+};
+
+/* Interface IBMDStreamingMPEG2TSPacket - Represent an MPEG2 Transport Stream packet */
+
+[
+ object,
+ uuid(91810D1C-4FB3-4AAA-AE56-FA301D3DFA4C),
+ helpstring("Represent an MPEG2 Transport Stream packet")
+] interface IBMDStreamingMPEG2TSPacket : IUnknown
+{
+ long GetPayloadSize(void);
+ HRESULT GetBytes([out] void** buffer);
+};
+
+/* Interface IBMDStreamingH264NALParser - For basic NAL parsing */
+
+[
+ object,
+ uuid(5867F18C-5BFA-4CCC-B2A7-9DFD140417D2),
+ helpstring("For basic NAL parsing")
+] interface IBMDStreamingH264NALParser : IUnknown
+{
+ HRESULT IsNALSequenceParameterSet([in] IBMDStreamingH264NALPacket* nal);
+ HRESULT IsNALPictureParameterSet([in] IBMDStreamingH264NALPacket* nal);
+ HRESULT GetProfileAndLevelFromSPS([in] IBMDStreamingH264NALPacket* nal, [out] unsigned long* profileIdc, [out] unsigned long* profileCompatability, [out] unsigned long* levelIdc);
+};
+
+/* Coclasses */
+
+importlib("stdole2.tlb");
+
+[
+ uuid(0CAA31F6-8A26-40B0-86A4-BF58DCCA710C),
+ helpstring("CBMDStreamingDiscovery Class")
+] coclass CBMDStreamingDiscovery
+{
+ [default] interface IBMDStreamingDiscovery;
+};
+
+[
+ uuid(7753EFBD-951C-407C-97A5-23C737B73B52),
+ helpstring("CBMDStreamingH264NALParser Class")
+] coclass CBMDStreamingH264NALParser
+{
+ [default] interface IBMDStreamingH264NALParser;
+};
+
+
« no previous file with comments | « third_party/decklink/win/include/DeckLinkAPIModes.idl ('k') | third_party/decklink/win/include/DeckLinkAPITypes.idl » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698