OLD | NEW |
(Empty) | |
| 1 /* -LICENSE-START- |
| 2 ** Copyright (c) 2012 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 /* DeckLinkAPI_v9_9.idl */ |
| 29 |
| 30 |
| 31 /* Interface IDeckLinkOutput - Created by QueryInterface from IDeckLink. */ |
| 32 |
| 33 [ |
| 34 object, |
| 35 uuid(A3EF0963-0862-44ED-92A9-EE89ABF431C7), |
| 36 local, |
| 37 helpstring("Created by QueryInterface from IDeckLink.") |
| 38 ] interface IDeckLinkOutput_v9_9 : IUnknown |
| 39 { |
| 40 HRESULT DoesSupportVideoMode([in] BMDDisplayMode displayMode, [in] BMDPixelF
ormat pixelFormat, [in] BMDVideoOutputFlags flags, [out] BMDDisplayModeSupport *
result, [out] IDeckLinkDisplayMode **resultDisplayMode); |
| 41 HRESULT GetDisplayModeIterator([out] IDeckLinkDisplayModeIterator **iterator
); |
| 42 |
| 43 HRESULT SetScreenPreviewCallback([in] IDeckLinkScreenPreviewCallback *previe
wCallback); |
| 44 |
| 45 /* Video Output */ |
| 46 |
| 47 HRESULT EnableVideoOutput([in] BMDDisplayMode displayMode, [in] BMDVideoOutp
utFlags flags); |
| 48 HRESULT DisableVideoOutput(void); |
| 49 |
| 50 HRESULT SetVideoOutputFrameMemoryAllocator([in] IDeckLinkMemoryAllocator *th
eAllocator); |
| 51 HRESULT CreateVideoFrame([in] long width, [in] long height, [in] long rowByt
es, [in] BMDPixelFormat pixelFormat, [in] BMDFrameFlags flags, [out] IDeckLinkMu
tableVideoFrame **outFrame); |
| 52 HRESULT CreateAncillaryData([in] BMDPixelFormat pixelFormat, [out] IDeckLink
VideoFrameAncillary **outBuffer); |
| 53 |
| 54 HRESULT DisplayVideoFrameSync([in] IDeckLinkVideoFrame *theFrame); |
| 55 HRESULT ScheduleVideoFrame([in] IDeckLinkVideoFrame *theFrame, [in] BMDTimeV
alue displayTime, [in] BMDTimeValue displayDuration, [in] BMDTimeScale timeScale
); |
| 56 HRESULT SetScheduledFrameCompletionCallback([in] IDeckLinkVideoOutputCallbac
k *theCallback); |
| 57 HRESULT GetBufferedVideoFrameCount([out] unsigned long *bufferedFrameCount); |
| 58 |
| 59 /* Audio Output */ |
| 60 |
| 61 HRESULT EnableAudioOutput([in] BMDAudioSampleRate sampleRate, [in] BMDAudioS
ampleType sampleType, [in] unsigned long channelCount, [in] BMDAudioOutputStream
Type streamType); |
| 62 HRESULT DisableAudioOutput(void); |
| 63 |
| 64 HRESULT WriteAudioSamplesSync([in] void *buffer, [in] unsigned long sampleFr
ameCount, [out] unsigned long *sampleFramesWritten); |
| 65 |
| 66 HRESULT BeginAudioPreroll(void); |
| 67 HRESULT EndAudioPreroll(void); |
| 68 HRESULT ScheduleAudioSamples([in] void *buffer, [in] unsigned long sampleFra
meCount, [in] BMDTimeValue streamTime, [in] BMDTimeScale timeScale, [out] unsign
ed long *sampleFramesWritten); |
| 69 |
| 70 HRESULT GetBufferedAudioSampleFrameCount([out] unsigned long *bufferedSample
FrameCount); |
| 71 HRESULT FlushBufferedAudioSamples(void); |
| 72 |
| 73 HRESULT SetAudioCallback([in] IDeckLinkAudioOutputCallback *theCallback); |
| 74 |
| 75 /* Output Control */ |
| 76 |
| 77 HRESULT StartScheduledPlayback([in] BMDTimeValue playbackStartTime, [in] BMD
TimeScale timeScale, [in] double playbackSpeed); |
| 78 HRESULT StopScheduledPlayback([in] BMDTimeValue stopPlaybackAtTime, [out] BM
DTimeValue *actualStopTime, [in] BMDTimeScale timeScale); |
| 79 HRESULT IsScheduledPlaybackRunning([out] BOOL *active); |
| 80 HRESULT GetScheduledStreamTime([in] BMDTimeScale desiredTimeScale, [out] BMD
TimeValue *streamTime, [out] double *playbackSpeed); |
| 81 HRESULT GetReferenceStatus([out] BMDReferenceStatus *referenceStatus); |
| 82 |
| 83 /* Hardware Timing */ |
| 84 |
| 85 HRESULT GetHardwareReferenceClock([in] BMDTimeScale desiredTimeScale, [out]
BMDTimeValue *hardwareTime, [out] BMDTimeValue *timeInFrame, [out] BMDTimeValue
*ticksPerFrame); |
| 86 }; |
| 87 |
OLD | NEW |