obs-studio/build_dependencies/aja/include/ajadriver/ntv2autofunc.h

59 lines
2.4 KiB
C
Raw Normal View History

2023-03-04 18:33:16 +01:00
/*
* SPDX-License-Identifier: MIT
* Copyright (C) 2004 - 2021 AJA Video Systems, Inc.
*/
//========================================================================
//
// ntv2autodma.h
//
//==========================================================================
#ifndef NTV2AUTODMA_H
#define NTV2AUTODMA_H
#include "ntv2system.h"
#include "ntv2publicinterface.h"
// dma transfer parameters
typedef struct _autoDmaParams
{
bool toHost; // transfer to host
NTV2DMAEngine dmaEngine; // dma engine
NTV2Channel videoChannel; // video channel for frame size
void* pVidUserVa; // user video buffer
uint64_t videoBusAddress; // p2p video bus address
uint32_t videoBusSize; // p2p video bus size
uint64_t messageBusAddress; // p2p message bus address
uint32_t messageData; // p2p message data
uint32_t videoFrame; // card video frame
uint32_t vidNumBytes; // number of bytes per segment
uint32_t frameOffset; // card video offset
uint32_t vidUserPitch; // user buffer pitch
uint32_t vidFramePitch; // card frame pitch
uint32_t numSegments; // number of segments
void* pAudUserVa; // audio user buffer
NTV2AudioSystem audioSystem; // audio system target
uint32_t audNumBytes; // number of audio bytes
uint32_t audOffset; // card audio offset
void* pAncF1UserVa; // anc field 1 user buffer
uint32_t ancF1Frame; // anc field 1 frame
uint32_t ancF1NumBytes; // number of anc field 1 bytes
uint32_t ancF1Offset; // anc field 1 frame offset
void* pAncF2UserVa; // anc field 2 user buffer
uint32_t ancF2Frame; // anc field 2 frame
uint32_t ancF2NumBytes; // number of anc field 2 bytes
uint32_t ancF2Offset; // anc field 2 frame offset
} AUTO_DMA_PARAMS, *PAUTO_DMA_PARAMS;
// STUBS
// Real device drivers and fake devices must implement:
Ntv2Status AutoDmaTransfer(void* pContext, PAUTO_DMA_PARAMS pDmaParams);
int64_t AutoGetAudioClock(void* pContext);
bool AutoBoardCanDoP2P(void* pContext); // P2P-related
uint64_t AutoGetFrameAperturePhysicalAddress(void* pContext); // P2P only
uint32_t AutoGetFrameApertureBaseSize(void* pContext); // P2P only
void AutoWriteFrameApertureOffset(void* pContext, uint32_t value); // P2P only
uint64_t AutoGetMessageAddress(void* pContext, NTV2Channel channel); // P2P only
#endif // NTV2AUTODMA_H