virtualHRESULTGetName(/* out */CFStringRef*name)=0;
virtualunsignedintGetPresetID(void)=0;
virtualunsignedintGetSourcePositionX(void)=0;
virtualunsignedintGetSourcePositionY(void)=0;
virtualunsignedintGetSourceWidth(void)=0;
virtualunsignedintGetSourceHeight(void)=0;
virtualunsignedintGetDestWidth(void)=0;
virtualunsignedintGetDestHeight(void)=0;
virtualHRESULTGetFlag(/* in */BMDStreamingEncodingModePropertyIDcfgID,/* out */bool*value)=0;
virtualHRESULTGetInt(/* in */BMDStreamingEncodingModePropertyIDcfgID,/* out */int64_t*value)=0;
virtualHRESULTGetFloat(/* in */BMDStreamingEncodingModePropertyIDcfgID,/* out */double*value)=0;
virtualHRESULTGetString(/* in */BMDStreamingEncodingModePropertyIDcfgID,/* out */CFStringRef*value)=0;
virtualHRESULTCreateMutableVideoEncodingMode(/* out */IBMDStreamingMutableVideoEncodingMode**newEncodingMode)=0;// Creates a mutable copy of the encoding mode
protected:
virtual~IBMDStreamingVideoEncodingMode(){}// call Release method to drop reference count
};
/* Interface IBMDStreamingMutableVideoEncodingMode - Represents a mutable encoded video mode. */
virtualHRESULTNext(/* out */IBMDStreamingVideoEncodingMode**videoEncodingMode)=0;
protected:
virtual~IBMDStreamingVideoEncodingModePresetIterator(){}// call Release method to drop reference count
};
/* Interface IBMDStreamingDeviceInput - Created by QueryInterface from IDeckLink */
classIBMDStreamingDeviceInput:publicIUnknown
{
public:
/* Input modes */
virtualHRESULTDoesSupportVideoInputMode(/* in */BMDDisplayModeinputMode,/* out */bool*result)=0;
virtualHRESULTGetVideoInputModeIterator(/* out */IDeckLinkDisplayModeIterator**iterator)=0;
virtualHRESULTSetVideoInputMode(/* in */BMDDisplayModeinputMode)=0;
virtualHRESULTGetCurrentDetectedVideoInputMode(/* out */BMDDisplayMode*detectedMode)=0;
/* Capture modes */
virtualHRESULTGetVideoEncodingMode(/* out */IBMDStreamingVideoEncodingMode**encodingMode)=0;
virtualHRESULTGetVideoEncodingModePresetIterator(/* in */BMDDisplayModeinputMode,/* out */IBMDStreamingVideoEncodingModePresetIterator**iterator)=0;
virtualHRESULTDoesSupportVideoEncodingMode(/* in */BMDDisplayModeinputMode,/* in */IBMDStreamingVideoEncodingMode*encodingMode,/* out */BMDStreamingEncodingSupport*result,/* out */IBMDStreamingVideoEncodingMode**changedEncodingMode)=0;
virtualHRESULTSetVideoEncodingMode(/* in */IBMDStreamingVideoEncodingMode*encodingMode)=0;
/* Input control */
virtualHRESULTStartCapture(void)=0;
virtualHRESULTStopCapture(void)=0;
virtualHRESULTSetCallback(/* in */IUnknown*theCallback)=0;
protected:
virtual~IBMDStreamingDeviceInput(){}// call Release method to drop reference count
};
/* Interface IBMDStreamingH264NALPacket - Represent an H.264 NAL packet */
classIBMDStreamingH264NALPacket:publicIUnknown
{
public:
virtuallongGetPayloadSize(void)=0;
virtualHRESULTGetBytes(/* out */void**buffer)=0;
virtualHRESULTGetBytesWithSizePrefix(/* out */void**buffer)=0;// Contains a 32-bit unsigned big endian size prefix
virtualHRESULTGetDisplayTime(/* in */uint64_trequestedTimeScale,/* out */uint64_t*displayTime)=0;
virtualHRESULTGetPacketIndex(/* out */uint32_t*packetIndex)=0;// Deprecated
protected:
virtual~IBMDStreamingH264NALPacket(){}// call Release method to drop reference count
};
/* Interface IBMDStreamingAudioPacket - Represents a chunk of audio data */
classIBMDStreamingAudioPacket:publicIUnknown
{
public:
virtualBMDStreamingAudioCodecGetCodec(void)=0;
virtuallongGetPayloadSize(void)=0;
virtualHRESULTGetBytes(/* out */void**buffer)=0;
virtualHRESULTGetPlayTime(/* in */uint64_trequestedTimeScale,/* out */uint64_t*playTime)=0;
virtualHRESULTGetPacketIndex(/* out */uint32_t*packetIndex)=0;// Deprecated
protected:
virtual~IBMDStreamingAudioPacket(){}// call Release method to drop reference count
};
/* Interface IBMDStreamingMPEG2TSPacket - Represent an MPEG2 Transport Stream packet */
classIBMDStreamingMPEG2TSPacket:publicIUnknown
{
public:
virtuallongGetPayloadSize(void)=0;
virtualHRESULTGetBytes(/* out */void**buffer)=0;
protected:
virtual~IBMDStreamingMPEG2TSPacket(){}// call Release method to drop reference count
};
/* Interface IBMDStreamingH264NALParser - For basic NAL parsing */
classIBMDStreamingH264NALParser:publicIUnknown
{
public:
virtualHRESULTIsNALSequenceParameterSet(/* in */IBMDStreamingH264NALPacket*nal)=0;
virtualHRESULTIsNALPictureParameterSet(/* in */IBMDStreamingH264NALPacket*nal)=0;
virtualHRESULTGetProfileAndLevelFromSPS(/* in */IBMDStreamingH264NALPacket*nal,/* out */uint32_t*profileIdc,/* out */uint32_t*profileCompatability,/* out */uint32_t*levelIdc)=0;
protected:
virtual~IBMDStreamingH264NALParser(){}// call Release method to drop reference count