Este tópico descreve as APIs C++, os callbacks e os tipos de dados do SDK Cliente AOQ para Linux.
Índice de APIs
Ciclo de vida do engine
API | Descrição |
|---|---|
createEngine | Crie a instância do engine (método estático, singleton) |
destroy | Destrói a instância do engine (método estático) |
getVersion | Obtém a versão do SDK (método estático) |
connect | Conecta ao servidor relay |
disconnect | Desconecta do servidor |
Gerenciamento de dispositivos de áudio
API | Descrição |
|---|---|
startAudioCapture | Abre o dispositivo de captura de áudio (implementação vazia no Linux) |
stopAudioCapture | Fecha o dispositivo de captura de áudio (sem efeito no Linux) |
muteAudioCapture | Silencia ou reativa a captura de áudio |
startAudioPlayer | Inicia a renderização de áudio (implementação vazia no Linux) |
stopAudioPlayer | Interrompe a renderização de áudio (sem efeito no Linux) |
pauseAudioPlayer | Pausa a renderização de áudio com suporte a fade-out |
resumeAudioPlayer | Retoma a renderização de áudio com suporte a fade-in |
interruptAudioPlayer | Interrompe a reprodução de áudio atual |
Configuração de codec de áudio
API | Descrição |
|---|---|
setAudioEncoderConfig | Defina os parâmetros de codificação de áudio |
setAudioDecoderConfig | Defina os parâmetros de decodificação de áudio |
Gerenciamento de dispositivos de vídeo
API | Descrição |
|---|---|
startVideoCapture | Abre o dispositivo de captura de vídeo (Linux suporta apenas o modo de captura externa) |
stopVideoCapture | Fecha o dispositivo de captura de vídeo |
setLocalView | Defina ou remova a janela de renderização de vídeo local (sem implementação de renderização no Linux) |
setRemoteView | Defina ou remova a janela de renderização de vídeo remoto (sem implementação de renderização no Linux) |
Codec de vídeo e entrada externa
API | Descrição |
|---|---|
setVideoEncoderConfig | Defina os parâmetros de codificação de vídeo |
setVideoDecoderConfig | Defina os parâmetros de decodificação de vídeo (proposta de codec no lado da assinatura) |
pushExternalVideoCapturedFrame | Envia um frame de vídeo capturado externamente |
pushExternalVideoEncodedFrame | Envia um frame de vídeo codificado externamente |
Controle de stream de mídia
API | Descrição |
|---|---|
enableSendMediaStream | Ative ou desative o envio de uma stream de mídia local |
Reprodução de arquivos de áudio
API | Descrição |
|---|---|
startAudioFile | Inicia a reprodução de um arquivo de áudio local na stream de publicação |
stopAudioFile | Interrompe a reprodução do arquivo de áudio |
pauseAudioFile | Pausa a reprodução do arquivo de áudio |
resumeAudioFile | Retoma a reprodução do arquivo de áudio |
getAudioFileDuration | Consulta a duração total do arquivo de áudio |
getAudioFileCurrentPosition | Consulta a posição atual de reprodução do arquivo de áudio |
setAudioFilePositionMillis | Defina a posição de reprodução do arquivo de áudio (seek) |
setAudioFileVolume | Defina o volume do arquivo de áudio |
getAudioFileVolume | Consulta o volume atual do arquivo de áudio |
Streams de áudio externas
API | Descrição |
|---|---|
addAudioExternalStream | Adiciona uma stream de áudio externa |
pushAudioExternalStreamData | Alimenta dados PCM de áudio externo |
setAudioExternalStreamVolume | Defina o volume de uma stream de áudio externa |
getAudioExternalStreamVolume | Consulta o volume de uma stream de áudio externa |
clearAudioExternalStreamBuffer | Limpa o buffer de uma stream de áudio externa |
removeAudioExternalStream | Remove uma stream de áudio externa |
Mensagens em tempo real
API | Descrição |
|---|---|
sendDataMsg | Envia uma mensagem de dados em tempo real |
Callbacks de frames de áudio
API | Descrição |
|---|---|
setAudioFrameObserver | Registra o listener de dados de frames de áudio (virtual puro) |
enableAudioFrameObserver | Ative ou desative o callback de frames de áudio em uma posição especificada (virtual puro) |
Indicação de volume local
API | Descrição |
|---|---|
enableLocalAudioVolumeIndication | Ative ou desative o callback de indicação de volume de captura local |
Callbacks de frames de vídeo
API | Descrição |
|---|---|
setVideoFrameObserver | Registra o listener de dados de frames de vídeo (virtual puro) |
enableVideoFrameObserver | Ative ou desative o callback de frames de vídeo em uma posição especificada (virtual puro) |
Callbacks do AoqEngineEventListener
Callback | Descrição |
|---|---|
onError | Callback de erro do engine |
onWarning | Callback de aviso do engine |
onConnectionStatusChange | Callback de alteração de status de conexão |
onStats | Callback de estatísticas do engine |
onAudioDeviceStateChanged | Callback de alteração de status operacional do dispositivo de áudio |
onAudioDeviceRouteChanged | Callback de alteração de rota de saída de áudio (não acionado no Linux) |
onAudioFileState | Callback de status de reprodução de arquivo de áudio |
onLocalAudioVolumeIndication | Callback de indicação de volume de captura local |
onVideoDeviceStateChanged | Callback de alteração de status operacional do dispositivo de vídeo |
onDataMsg | Callback para mensagem de dados em tempo real recebida |
Interfaces de listener de dados de frame
API | Descrição |
|---|---|
IAudioFrameObserver | Interface para escuta de dados de frames de áudio (quatro callbacks virtuais puros) |
IVideoFrameObserver | Interface para escuta de dados de frames de vídeo (três callbacks virtuais puros) |
Detalhes das APIs
Ciclo de vida do engine
createEngine
Crie a instância do engine. O SDK mantém o engine como um singleton global; portanto, chamar este método novamente retorna a instância existente.
Parâmetros | Tipo | Descrição |
|---|---|---|
config | AoqCreateConfig | Configuração de criação do engine |
listener | AoqEngineEventListener\* | Listener de callback de eventos do engine, implementado pelo chamador via herança |
nullptr. O ciclo de vida do listener deve exceder o do engine.
destroy
Destrói a instância do engine e libera todos os recursos.
0 indica sucesso; um valor diferente de 0 indica falha.
getVersion
Obtém a versão atual do SDK.
connect
Conecta ao servidor relay. O servidor de aplicação obtém parâmetros temporários de conexão AOQ com base no protocolo em uso e os envia ao cliente. Para mais informações, consulte Token authentication.
Parâmetros | Tipo | Descrição |
|---|---|---|
config | AoqConnectConfig | Configuração de conexão que inclui o token, SID, o array de pontos de acesso relay e os arrays de tracks de publicação e assinatura |
0 indica sucesso e execução assíncrona da operação; valores diferentes de 0 indicam falha. O resultado da conexão é notificado por onConnectionStatusChange.
relayEndpoints / publishTracks / subscribeTracks são estruturas do tipo "ponteiro de array estilo C + comprimento". O chamador mantém a memória, que precisa ser válida apenas durante a chamada de connect.disconnect
Desconecta do servidor e libera os recursos associados à conexão.
0 indica sucesso; um valor diferente de 0 indica falha.
Gerenciamento de dispositivos de áudio
Parâmetros | Tipo | Descrição |
|---|---|---|
config | AoqAudioCaptureConfig / AoqAudioPlaybackConfig | Configuração de captura e reprodução |
mute | bool | true silencia; false reativa o som |
fadeMs | int | Duração do fade-out ou fade-in, em milissegundos. 0 indica execução imediata. |
trackType | AoqTrackType | Tipo de track |
startAudioCapture / startAudioPlayer possuem implementações vazias na compilação para Linux (retornam 0 diretamente e não abrem nenhum dispositivo de placa de som). Além disso, stopAudioCapture / stopAudioPlayer não têm efeito real porque o estado interno não é definido. No Linux, utilize streams de áudio externas (2.8) para entrada de áudio e use callbacks de frames de áudio (2.10) para reproduzir a saída de áudio por conta própria. Para mais informações, consulte 4,3.Configuração de codec de áudio
connect(). Uma combinação inválida de taxa de amostragem e modo aciona o callback onError com AoqECParamInvalid durante a conexão.
Gerenciamento de dispositivos de vídeo
Parâmetros | Tipo | Descrição |
|---|---|---|
config | AoqVideoCaptureConfig | Configuração de captura de vídeo |
trackType | AoqTrackType | Tipo de track de vídeo |
canvas | AoqVideoCanvas | Canvas de renderização. Se |
startVideoCapture({.isExternal = true}) + pushExternalVideoCapturedFrame para entregar frames. setLocalView / setRemoteView não possuem backend de renderização no Linux (AoqVideoCanvas.view suporta apenas Apple NSView* / Windows HWND / views de renderização Android). Para pré-visualização, faça a renderização por conta própria através do callback de frames de vídeo (2.12). Para mais informações, consulte 4,3.Codec de vídeo e entrada externa
Parâmetros | Tipo | Descrição |
|---|---|---|
config | AoqVideoCodecConfig | Configuração de codec roteada com base em |
trackType | AoqTrackType | Destino do roteamento. Defina como |
frame | AoqVideoFrame / AoqVideoEncodedFrame | Dados de frame bruto ou codificado |
setVideoDecoderConfigé uma proposta de codec para o lado da assinatura e deve ser chamado antes deconnect. Durante a decodificação, apenastrackType/codecType/width/height/fps/bitrateentram em vigor.pushExternalVideoCapturedFramerequerstartVideoCapture(isExternal=true)previamente. RetornaAoqECVideoExternalCaptureNotEnabled(211)quando a captura externa não foi iniciada,AoqECParamInvalidquando o formato não é suportado eAoqECVideoExternalBufferFull(210)quando o buffer está cheio.pushExternalVideoEncodedFramerequersetVideoEncoderConfig(isExternal=true)previamente. O SDK empacota e envia o frame diretamente sem recodificação. Atualmente, apenas JPEG é suportado.- Quando
frame.timeStampfor0, o SDK o preenche com a hora local.
Controle de stream de mídia
trackType pode ser AoqTrackTypeAudio ou AoqTrackTypeVideo. Um valor de retorno de 0 indica que a chamada foi despachada e executa assincronamente. Recomendamos desativar o envio após a inicialização e ativá-lo somente depois que onConnectionStatusChange reportar AoqConnectionStatusConnected.
Reprodução de arquivos de áudio
Parâmetros | Tipo | Descrição |
|---|---|---|
fileId | const char\* | ID do arquivo de áudio. A camada de negócios deve garantir unicidade global. |
config | AoqAudioFileMixConfig | Configuração de mixagem de arquivos |
positionMillis | int64_t | Posição alvo de reprodução, em milissegundos |
type | AoqAudioStreamDirection | Volume de publicação ou volume de reprodução local |
volume | int | Volume. Valores válidos: 0 a 100. |
getAudioFileDuration/getAudioFileCurrentPosition: Um valor>=0representa o valor em milissegundos; um valor<0indica falha, e seu valor absoluto é-AoqErrorCode.getAudioFileVolume: Um valor de0-100representa o volume; um valor<0indica falha, e seu valor absoluto é-AoqErrorCode.
onAudioFileState. A mixagem de arquivos utiliza o caminho de publicação e não depende da placa de som local. Portanto, no Linux, você pode usá-la para enviar um arquivo local como fonte de áudio.
Streams de áudio externas
Parâmetros | Tipo | Descrição |
|---|---|---|
streamId | const char\* | ID da stream de áudio externa. A camada de negócios deve garantir unicidade global. |
config | AoqAudioExternalStreamConfig | Configuração da stream de áudio externa |
data | AoqAudioFrameData | Dados brutos de áudio externo (PCM), como referência não constante |
type | AoqAudioStreamDirection | Volume de publicação ou volume de reprodução local |
vol | int | Volume. Valores válidos: 0 a 100. |
fadeoutMs | int | Duração do fade-out. |
-
Quando
pushAudioExternalStreamDataretornaAoqECAudioExternalBufferFull(110), o buffer interno do SDK está cheio. Recomendamos aguardar 20 ms e então enviar o frame de dados atual novamente. -
Melhor prática: Em cenários de captura em tempo real, envie 10 ms de dados por vez sempre que houver dados disponíveis. Em cenários de fonte de arquivo, envie 40 ms de dados por vez em intervalos de 30 ms e trate o valor de retorno
AoqECAudioExternalBufferFull. -
getAudioExternalStreamVolume: Um valor de0-100representa o volume; um valor<0indica falha, e seu valor absoluto é-AoqErrorCode. -
clearAudioExternalStreamBufferretornavoide não possui valor de retorno. -
data.pushSequenceé usado para a notificação de conclusão de consumo do SDK (rodada de entrada PCM).Não há dispositivo de captura real no Linux. Este grupo de APIs é o caminho principal para o uplink de áudio.
Mensagens em tempo real
msg.data aponta para memória mantida pelo chamador e precisa ser válida apenas durante a chamada. Mensagens do par são reportadas através do callback onDataMsg.
Callbacks de frames de áudio
Parâmetros | Tipo | Descrição |
|---|---|---|
observer | IAudioFrameObserver\* | Instância do listener. Passe |
enabled | bool | Especifica se deve ativar callbacks de dados nesta posição |
audioSource | AoqAudioSource | Posição da fonte de dados de áudio bruto |
config | AoqAudioObserverConfig | Taxa de amostragem do callback, número de canais e modo de leitura-escrita |
setAudioFrameObserver(observer) para registrar o listener. Em seguida, chame enableAudioFrameObserver para cada posição necessária. O ciclo de vida do observer deve cobrir todo o período de callback. Libere o observer somente após cancelar o registro.
Suporte ao modo de leitura-escrita (consulte a declaração IAudioFrameObserver): onCapturedAudioFrame / onProcessCapturedAudioFrame / onPlaybackAudioFrame suportam modo de leitura-escrita, enquanto onPublishAudioFrame suporta apenas modo somente leitura.
setAudioFrameObserver conclui o registro através de despacho assíncrono (PostTask para a thread de controle), então o callback pode entrar em vigor logo após o retorno da chamada. Antes de liberar o observer, deixe um intervalo de segurança suficiente ou mantenha o objeto ativo.Indicação de volume local
config.interval <= 0, o callback é desativado. Após a ativação, onLocalAudioVolumeIndication é acionado no intervalo especificado por config.interval. Você deve chamar este método após startAudioCapture para obter dados de volume.
Callbacks de frames de vídeo
Parâmetros | Tipo | Descrição |
|---|---|---|
observer | IVideoFrameObserver\* | Instância do listener. Passe |
enabled | bool | Especifica se deve ativar callbacks de dados nesta posição |
videoSource | AoqVideoSource | Fonte de dados do callback de frames de vídeo (posição no pipeline) |
config | AoqVideoObserverConfig | Formato de pixel esperado, política de alinhamento, modo de leitura-escrita e espelhamento |
true, os dados foram modificados e devem ser gravados de volta no SDK. Isso tem efeito apenas para I420 / CVPixelBuffer, o que significa apenas I420 no Linux. Se o callback retornar false, os dados são somente leitura.
AoqVideoSourceRemote).Callbacks do AoqEngineEventListener
AoqEngineEventListener é o ponto de entrada unificado para todas as notificações de eventos assíncronos do SDK. Herde e implemente esta classe e passe-a ao chamar createEngine.
= 0) sem implementação vazia padrão. No Linux, você deve implementar totalmente os 10 métodos a seguir; caso contrário, a classe derivada não poderá ser instanciada. Os callbacks podem ser acionados em threads internas do SDK.onError
Callback de erro do engine. code corresponde a um valor enum AoqErrorCode (consulte 3.3), e message é válido apenas durante o callback.
onWarning
Callback de aviso do engine. code corresponde a um valor enum AoqWarningCode (consulte 3.3).
onConnectionStatusChange
Callback de alteração de status de conexão. Transições de estado: Disconnected -> Connecting -> Connected / Failed -> Disconnected.
onStats
Callback de estatísticas do engine. O SDK reporta periodicamente estatísticas de publicação e assinatura de áudio e vídeo, além de estatísticas de rede. Use-as para monitorar a qualidade da chamada e o status da rede em tempo real, bem como para diagnosticar problemas de áudio e vídeo.
Parâmetros | Tipo | Descrição |
|---|---|---|
stats | AoqStats | Estatísticas de publicação e assinatura e estatísticas de rede para áudio, vídeo e mensagens de dados |
AoqStats usa internamente uma estrutura de "ponteiro de array + contagem". O ponteiro é válido apenas durante o callback; portanto, copie os dados por conta própria para uso assíncrono.onAudioDeviceStateChanged
Callback para alterações no status operacional de captura e reprodução do dispositivo de áudio. state.reason é um valor AoqErrorCode.
onAudioDeviceRouteChanged
Callback de alteração de rota de saída de áudio. routeType corresponde a um valor enum AoqAudioDeviceRouteType (consulte 3.4).
AOQ_HAS_NATIVE_DEVICE_MONITOR é definido apenas no Windows / macOS), e dispositivos de áudio do lado do servidor não geram eventos de rota. Você ainda deve implementar este método (virtual puro), mas a implementação pode ser vazia.onAudioFileState
Callback para status de reprodução de arquivo de áudio. state.fileId é válido apenas durante o callback.
onLocalAudioVolumeIndication
Callback de indicação de volume de captura local. Para ativá-lo, chame enableLocalAudioVolumeIndication.
onVideoDeviceStateChanged
Callback para alterações no status operacional de captura do dispositivo de vídeo. state.reason é um valor AoqErrorCode.
onDataMsg
Callback para mensagem de dados em tempo real recebida. msg.data tem garantia de validade apenas durante o callback. Se precisar usá-lo assincronamente, copie-o por conta própria.
Interfaces de listener de dados de frame
IAudioFrameObserver
Interface para escuta de dados de áudio. Não execute operações demoradas nos callbacks. Caso contrário, anomalias de áudio podem ocorrer. Todos os métodos são funções virtuais puras e devem ser totalmente implementados.
Callback | Como ativar (audioSource) | Modo de leitura-escrita |
|---|---|---|
onCapturedAudioFrame | AoqAudioSourceCaptured | Leitura-escrita suportado |
onProcessCapturedAudioFrame | AoqAudioSourceProcessCaptured | Leitura-escrita suportado |
onPublishAudioFrame | AoqAudioSourcePublish (requer connect bem-sucedido) | Apenas somente leitura é suportado |
onPlaybackAudioFrame | AoqAudioSourcePlayback | Leitura-escrita suportado |
AoqAudioObserverConfig.
onPlaybackAudioFrame é o caminho principal para obter o PCM de downlink remoto. Como o módulo 3A não é compilado no Linux, os dados de onProcessCapturedAudioFrame (dados após processamento 3A) são essencialmente iguais aos dados brutos capturados. Para mais informações, consulte 4,3.IVideoFrameObserver
Interface para escuta de dados de vídeo. Não execute operações demoradas nos callbacks. Caso contrário, travamentos de vídeo podem ocorrer. Todos os métodos são funções virtuais puras.
Callback | Como ativar (videoSource) | Descrição |
|---|---|---|
onCapturedVideoFrame | AoqVideoSourceCaptured | Dados brutos locais após captura, antes do pré-processamento |
onPreEncodeVideoFrame | AoqVideoSourcePreEncode | Dados brutos locais antes da codificação, após o pré-processamento |
onRemoteVideoFrame | AoqVideoSourceRemote | Dados brutos remotos após decodificação e antes da renderização |
true indica que os dados foram modificados e devem ser gravados de volta no SDK, o que tem efeito apenas para I420 / CVPixelBuffer; false indica somente leitura. Os ponteiros em frame são válidos apenas durante o callback. Para usá-los assincronamente, copie-os por conta própria.
Tipos de dados e enumerações
Todos os tipos são definidos em AoqClientEngine.h no namespace AoqClientSdk. Todas as estruturas são tipos POD com valores padrão; portanto, você obtém os valores padrão na tabela simplesmente declarando-as. Campos marcados como exclusivos para mobile são excluídos por compilação condicional no Linux e não existem nas estruturas.
Tipos gerais
AoqCreateConfig
Campo | Tipo | Valor padrão | Descrição |
|---|---|---|---|
workDir | const char\* | nullptr | Diretório de trabalho do SDK (para logs e arquivos temporários) |
enableDumpAudio | bool | false | Especifica se deve salve dados de áudio (para depuração) |
extras | const char\* | nullptr | Parâmetros estendidos (uma string JSON) |
createEngine retorne. O engine os copia internamente conforme necessário. O campo isBTScoMode no Android é exclusivo para mobile e não existe no Linux.AoqConnectConfig
Campo | Tipo | Valor padrão | Descrição |
|---|---|---|---|
token | const char\* | nullptr | Token de autenticação de conexão |
sid | const char\* | nullptr | ID da sessão |
certFingerprint | const char\* | nullptr | Impressão digital do certificado do servidor |
workspaceIdHash | const char\* | nullptr | Hash do ID do workspace |
relayEndpoints | const AoqRelayEndpoint\* | nullptr | Endereço inicial do array de pontos de acesso relay |
relayEndpointsCount | size_t | 0 | Número de pontos de acesso relay |
publishTracks | const AoqTrackParam\* | nullptr | Endereço inicial do array de atributos de tracks de publicação |
publishTracksCount | size_t | 0 | Número de tracks de publicação |
subscribeTracks | const AoqTrackParam\* | nullptr | Endereço inicial do array de atributos de tracks de assinatura |
subscribeTracksCount | size_t | 0 | Número de tracks de assinatura |
AoqRelayEndpoint
Campo | Tipo | Valor padrão | Descrição |
|---|---|---|---|
route_index | int | -1 | Índice da rota |
endpoint | const char\* | nullptr | Nome de domínio ou endereço IP do servidor relay |
port | int | 0 | Porta do servidor relay |
route_index usa snake case, diferentemente do camel case usado pelos outros campos.AoqTrackParam
Campo | Tipo | Valor padrão | Descrição |
|---|---|---|---|
trackType | AoqTrackType | AoqTrackTypeAudio | Tipo de track |
trackMode | AoqTrackMode | AoqTrackModeSegment | Modo streaming ou não-streaming. Efetivo apenas para o downlink de áudio. |
AoqDataMsg
Campo | Tipo | Valor padrão | Descrição |
|---|---|---|---|
data | const uint8_t\* | nullptr | Conteúdo da mensagem. Aponta para memória mantida pelo chamador. |
dataSize | size_t | 0 | Número de bytes |
Tipos de estatísticas
AoqStats
Um resumo das estatísticas do engine, reportado periodicamente através de onStats. Usa uma estrutura de "ponteiro de array + contagem", na qual todos os ponteiros têm como padrão nullptr e todas as contagens têm como padrão 0.
Campo | Tipo | Descrição |
|---|---|---|
audioPublishStats | const AoqAudioPublishStats\* | Array de estatísticas de publicação para áudio |
audioPublishStatsCount | unsigned int | Número de entradas de estatísticas de publicação para áudio |
videoPublishStats | const AoqVideoPublishStats\* | Array de estatísticas de publicação para vídeo |
videoPublishStatsCount | unsigned int | Número de entradas de estatísticas de publicação para vídeo |
dataMsgPublishStats | const AoqDataMsgPublishStats\* | Array de estatísticas de publicação para mensagens de dados |
dataMsgPublishStatsCount | unsigned int | Número de entradas de estatísticas de publicação para mensagens de dados |
audioSubscribeStats | const AoqAudioSubscribeStats\* | Array de estatísticas de assinatura para áudio |
audioSubscribeStatsCount | unsigned int | Número de entradas de estatísticas de assinatura para áudio |
videoSubscribeStats | const AoqVideoSubscribeStats\* | Array de estatísticas de assinatura para vídeo |
videoSubscribeStatsCount | unsigned int | Número de entradas de estatísticas de assinatura para vídeo |
dataMsgSubscribeStats | const AoqDataMsgSubscribeStats\* | Array de estatísticas de assinatura para mensagens de dados |
dataMsgSubscribeStatsCount | unsigned int | Número de entradas de estatísticas de assinatura para mensagens de dados |
networkStats | const AoqNetworkStats\* | Estatísticas de rede |
AoqAudioPublishStats
Campo | Tipo | Valor padrão | Descrição |
|---|---|---|---|
trackType | AoqTrackType | AoqTrackTypeAudio | Tipo de track |
bitrate | unsigned int | 0 | Taxa de bits, em bit/s |
bytes | uint64_t | 0 | Bytes acumulados enviados |
encodeVolume | unsigned int | 0 | Volume de codificação da stream de publicação |
AoqAudioSubscribeStats
Campo | Tipo | Valor padrão | Descrição |
|---|---|---|---|
trackType | AoqTrackType | AoqTrackTypeAudio | Tipo de track |
bitrate | unsigned int | 0 | Taxa de bits, em bit/s |
bytes | uint64_t | 0 | Bytes acumulados recebidos |
playVolume | unsigned int | 0 | Volume de reprodução |
AoqVideoPublishStats
Campo | Tipo | Valor padrão | Descrição |
|---|---|---|---|
trackType | AoqTrackType | AoqTrackTypeVideo | Tipo de track |
bitrate | unsigned int | 0 | Taxa de bits, em bit/s |
bytes | uint64_t | 0 | Bytes acumulados enviados |
encodeFps | unsigned int | 0 | Taxa de quadros de codificação |
AoqVideoSubscribeStats
Campo | Tipo | Valor padrão | Descrição |
|---|---|---|---|
trackType | AoqTrackType | AoqTrackTypeVideo | Tipo de track |
bitrate | unsigned int | 0 | Taxa de bits, em bit/s |
bytes | uint64_t | 0 | Bytes acumulados recebidos |
decodeFps | unsigned int | 0 | Taxa de quadros de decodificação |
renderFps | unsigned int | 0 | Taxa de quadros de renderização |
AoqDataMsgPublishStats / AoqDataMsgSubscribeStats
Campo | Tipo | Valor padrão | Descrição |
|---|---|---|---|
trackType | AoqTrackType | AoqTrackTypeData | Tipo de track |
bitrate | unsigned int | 0 | Taxa de bits, em bit/s |
bytes | uint64_t | 0 | Bytes acumulados enviados e recebidos |
AoqNetworkStats
Campo | Tipo | Valor padrão | Descrição |
|---|---|---|---|
sendBitrate | unsigned int | 0 | Taxa de bits de envio, em bit/s |
sendBytes | uint64_t | 0 | Bytes acumulados enviados |
recvBitrate | unsigned int | 0 | Taxa de bits de recebimento, em bit/s |
recvBytes | uint64_t | 0 | Bytes acumulados recebidos |
loss | unsigned int | 0 | Taxa de perda de pacotes, de 0 a 100 |
rtt | unsigned int | 0 | Latência de ida e volta, em ms |
Enumerações
AoqTrackType
Valor enum | Valor | Descrição |
|---|---|---|
AoqTrackTypeAudio | 0 | Track de áudio |
AoqTrackTypeVideo | 1 | Track de vídeo |
AoqTrackTypeData | 2 | Track de mensagens de dados |
AoqTrackMode
Valor enum | Valor | Descrição |
|---|---|---|
AoqTrackModeSegment | 0 | Segmentado: os dados são empacotados e entregues em segmentos semânticos, como uma frase. |
AoqTrackModeStream | 1 | Streaming: os dados são entregues continuamente. |
AoqEncoderType
Valor enum | Valor | Descrição |
|---|---|---|
AoqEncoderTypeUnknown | 0 | Formato desconhecido |
AoqEncoderTypeAudioPCM | 1 | Áudio PCM |
AoqEncoderTypeAudioOpus | 2 | Áudio Opus (baseado em plug-in; compilado estaticamente no Linux e disponível imediatamente) |
AoqEncoderTypeVideoH264 | 3 | Vídeo H.264 |
AoqEncoderTypeVideoJpeg | 4 | Vídeo JPEG |
AoqEncoderTypeDataText | 5 | Texto da mensagem |
AoqConnectionStatus
Valor enum | Valor | Descrição |
|---|---|---|
AoqConnectionStatusDisconnected | 0 | Desconectado |
AoqConnectionStatusConnecting | 1 | Conectando |
AoqConnectionStatusConnected | 2 | Conectado |
AoqConnectionStatusFailed | 3 | Falha na conexão |
AoqErrorCode
AoqEC* (diferente da forma completa AoqErrorCode* no Android), mas os valores são idênticos.Valor enum | Valor | Descrição |
|---|---|---|
AoqECOK | 0 | Sucesso |
AoqECParamInvalid | 1 | Parâmetro inválido |
AoqECStateInvalid | 2 | Estado inválido |
AoqECUnSupport | 3 | A API foi chamada, mas não está implementada na plataforma atual ou no modo atual |
AoqECAudio | 100 | Erro genérico de áudio |
AoqECAudioExternalBufferFull | 110 | Buffer de áudio externo está cheio |
AoqECAudioDevice | 120 | Erro genérico de dispositivo de áudio |
AoqECAudioDeviceRecordingAuthFailed | 121 | Permissão de gravação não concedida |
AoqECAudioDeviceRecordingOccupied | 122 | Dispositivo de gravação está em uso |
AoqECAudioDeviceRecordingBackgroundStart | 123 | Falha ao iniciar gravação em segundo plano |
AoqECAudioDeviceRecordingStartFail | 124 | Falha ao iniciar gravação |
AoqECAudioDevicePlayoutOccupied | 125 | Dispositivo de reprodução está em uso |
AoqECAudioDevicePlayoutBackgroundStart | 126 | Falha ao iniciar reprodução em segundo plano |
AoqECAudioDevicePlayoutStartFail | 127 | Falha ao iniciar reprodução |
AoqECAudioDeviceEarpieceRequiresVoipMode | 128 | O receptor requer modo VoIP (cenários mobile) |
AoqECVideo | 200 | Erro genérico de vídeo |
AoqECVideoExternalBufferFull | 210 | Buffer de vídeo externo está cheio |
AoqECVideoExternalCaptureNotEnabled | 211 | Captura de vídeo externa não está ativada |
AoqECVideoExternalEncoderNotEnabled | 212 | Codificação de vídeo externa não está ativada |
AoqECVideoDevice | 220 | Erro genérico de dispositivo de vídeo |
AoqECVideoDeviceCameraOpenFail | 221 | Falha ao abrir a câmera |
AoqECVideoDeviceCameraAuthFailed | 222 | Permissão da câmera não concedida |
AoqECVideoDeviceCameraOccupied | 223 | Câmera está em uso |
AoqECVideoDeviceCameraRunningError | 224 | Exceção de tempo de execução da câmera |
AoqECVideoCodec | 230 | Erro genérico de codec de vídeo |
AoqECVideoCodecEncoderInitFail | 231 | Falha ao inicializar o codificador de vídeo |
AoqECVideoRender | 240 | Erro genérico de renderização de vídeo |
AoqECVideoRenderCreateFail | 241 | Falha ao crie renderização de vídeo |
AoqECVideoRenderDrawError | 242 | Erro de desenho na renderização de vídeo |
AoqWarningCode
Valor enum | Valor | Descrição |
|---|---|---|
AoqWCOK | 0 | Sem avisos |
AoqWCAudio | 100 | Aviso genérico de áudio |
AoqWCAudioHowling | 101 | Microfonia detectada |
AoqWCAudioDevice | 120 | Aviso genérico de dispositivo de áudio |
AoqWCAudioDeviceMicEnumerateError | 121 | Erro de enumeração do microfone |
AoqWCAudioDeviceMicStartTimeout | 122 | Tempo limite de inicialização do microfone |
AoqWCAudioDeviceRecordingError | 123 | Erro durante a gravação |
AoqWCAudioDeviceSpeakerEnumerateError | 124 | Erro de enumeração do alto-falante |
AoqWCAudioDeviceSpeakerStartTimeout | 125 | Tempo limite de inicialização do alto-falante |
AoqWCAudioDevicePlayoutError | 126 | Erro durante a reprodução |
AoqWCVideo | 200 | Aviso genérico de vídeo |
AoqWCVideoCameraEnumerateError | 201 | Erro de enumeração da câmera |
AoqWCVideoEncoderSwitched | 202 | Codificador de vídeo trocado |
AoqWCVideoRenderDowngrade | 203 | Renderização de vídeo rebaixada |
AoqMirrorMode
Valor enum | Valor | Descrição |
|---|---|---|
AoqMirrorModeDisabled | 0 | Desativar espelhamento |
AoqMirrorModeEnabled | 1 | Ativar espelhamento |
AoqOrientationMode
Valor enum | Valor | Descrição |
|---|---|---|
AoqOrientationModeAuto | 0 | Ajuste automático |
AoqOrientationModePortrait | 1 | Retrato |
AoqOrientationModeLandscape | 2 | Paisagem |
AoqRenderMode
Valor enum | Valor | Descrição |
|---|---|---|
AoqRenderModeAuto | 0 | Modo adaptativo |
AoqRenderModeStretch | 1 | Modo esticado |
AoqRenderModeFill | 2 | Modo preenchido |
AoqRenderModeCrop | 3 | Modo cortado |
AoqVideoCanvas.renderMode. O Linux não possui implementação de renderização, portanto, esta enumeração não tem efeito prático.AoqAudioStreamDirection
Valor enum | Valor | Descrição |
|---|---|---|
AoqAudioStreamPublish | 0 | Publicação de áudio |
AoqAudioStreamPlayout | 1 | Reprodução de áudio |
AoqAudioExternalStreamToggle
Valor enum | Valor | Descrição |
|---|---|---|
AoqAudioExternalStreamToggleNormal | 0 | Recuperado |
AoqAudioExternalStreamTogglePause | 1 | Pausado |
Tipos de áudio
AoqAudioCaptureConfig
Campo | Tipo | Valor padrão | Descrição |
|---|---|---|---|
isExternal | bool | false | Especifica se deve usar captura externa |
channel | int | 1 | Número de canais de captura de áudio. 1 e 2 são suportados. |
isVoipMode é um campo exclusivo para mobile e não existe no Linux.AoqAudioPlaybackConfig
Campo | Tipo | Valor padrão | Descrição |
|---|---|---|---|
isExternal | bool | false | Especifica se deve usar reprodução externa |
channel | int | 1 | Número de canais de reprodução de áudio. 1 e 2 são suportados. |
isVoipMode / isDefaultSpeaker são campos exclusivos para mobile e não existem no Linux.AoqAudioCodecConfig
Campo | Tipo | Valor padrão | Descrição |
|---|---|---|---|
trackType | AoqTrackType | AoqTrackTypeAudio | Tipo de track |
codecType | AoqEncoderType | AoqEncoderTypeAudioPCM | Tipo de codificação |
sampleRate | int | 48000 | Taxa de amostragem, em Hz |
channel | int | 1 | Número de canais. 1 e 2 são suportados. |
bitrate | int | 32000 | Taxa de bits, em bit/s |
- Codificação: Opus suporta 8 / 16 / 48K, e PCM suporta 8 / 16 / 32 / 48K;
- Decodificação: 24K é adicionalmente suportado, mas 24K é limitado ao modo Segment (o modo Stream não suporta 24K);
- Uma combinação inválida aciona o callback
onErrorcomAoqECParamInvalidduranteconnect.
AoqAudioDeviceRouteType
Valor enum | Valor | Descrição |
|---|---|---|
AoqAudioDeviceRouteDefault | 0 | Rota padrão |
AoqAudioDeviceRouteHeadset | 1 | Fones de ouvido |
AoqAudioDeviceRouteEarpiece | 2 | Receptor |
AoqAudioDeviceRouteHeadsetNoMic | 3 | Fones de ouvido sem microfone |
AoqAudioDeviceRouteSpeakerPhone | 4 | Alto-falante integrado |
AoqAudioDeviceRouteUsb | 5 | Dispositivo de áudio USB |
AoqAudioDeviceRouteBluetooth | 6 | Bluetooth |
AoqAudioDeviceRouteBluetoothA2dp | 7 | Bluetooth A2DP |
routeType de onAudioDeviceRouteChanged. O Linux não aciona este callback.AoqAudioDeviceStateCode
Valor enum | Valor | Descrição |
|---|---|---|
AoqAudioDeviceNone | 0 | Sem estado |
AoqAudioDeviceRecordStarting | 1 | Captura iniciando |
AoqAudioDeviceRecordStarted | 2 | Captura iniciada |
AoqAudioDeviceRecordStopping | 3 | Captura parando |
AoqAudioDeviceRecordStopped | 4 | Captura parada |
AoqAudioDeviceRecordFail | 5 | Falha na captura |
AoqAudioDevicePlayStarting | 6 | Reprodução iniciando |
AoqAudioDevicePlayStarted | 7 | Reprodução iniciada |
AoqAudioDevicePlayStopping | 8 | Reprodução parando |
AoqAudioDevicePlayStopped | 9 | Reprodução parada |
AoqAudioDevicePlayFail | 10 | Falha na reprodução |
AoqAudioDeviceState
Campo | Tipo | Valor padrão | Descrição |
|---|---|---|---|
state | AoqAudioDeviceStateCode | AoqAudioDeviceNone | Status operacional do dispositivo |
reason | int | 0 | Código do motivo do erro. Consulte AoqErrorCode. |
AoqAudioFrameData
Dados brutos de áudio. Usado tanto para alimentação de stream externa via pushAudioExternalStreamData quanto para o callback IAudioFrameObserver.
Campo | Tipo | Valor padrão | Descrição |
|---|---|---|---|
dataPtr | void\* | 0 | Ponteiro para os dados PCM de áudio |
numOfSamples | int | 0 | Número de amostras (por canal) |
bytesPerSample | int | 0 | Bytes por amostra |
numOfChannels | int | 0 | Número de canais |
samplesPerSec | int | 0 | Número de amostras por segundo (taxa de amostragem) |
pushSequence | int | 0 | Rodada de entrada PCM (usada para notificação de conclusão de consumo da stream) |
timeStamp | int64_t | 0 | Timestamp |
dataSize | int | 0 | Comprimento dos dados, em bytes |
autoGenMute | bool | false | Efetivo apenas em callbacks. true indica dados silenciosos gerados pelo SDK. |
AoqAudioSource
Valor enum | Valor | Descrição |
|---|---|---|
AoqAudioSourceCaptured | 0 | Dados de áudio capturados |
AoqAudioSourceProcessCaptured | 1 | Dados de áudio após processamento 3A |
AoqAudioSourcePublish | 2 | Dados de áudio a serem publicados (requer connect bem-sucedido) |
AoqAudioSourcePlayback | 3 | Dados de áudio a serem reproduzidos |
AoqAudioSourceMax | 4 | Espaço reservado, não utilizar |
AoqAudioObserverMode
Valor enum | Valor | Descrição |
|---|---|---|
AoqAudioObserverModeReadOnly | 0 | Modo somente leitura |
AoqAudioObserverModeReadWrite | 1 | Modo leitura-escrita |
AoqAudioObserverConfig
Campo | Tipo | Valor padrão | Descrição |
|---|---|---|---|
sampleRate | int | 48000 | Taxa de amostragem do áudio do callback, em Hz. A reamostragem é realizada se a taxa não corresponder à da fonte. |
channels | int | 1 | Número de canais de áudio no callback. 1 e 2 são suportados. Este parâmetro é limitado pelos parâmetros de codec da stream de assinatura. |
mode | AoqAudioObserverMode | AoqAudioObserverModeReadOnly | Modo de callback |
AoqAudioVolumeIndicationConfig
Campo | Tipo | Valor padrão | Descrição |
|---|---|---|---|
interval | int | 0 | Intervalo do callback, em milissegundos. Um valor menor ou igual a 0 desativa o callback. Um valor maior que 0 e menor que 10 é tratado como 10. |
smooth | int | 3 | Coeficiente de suavização de volume. Um valor maior resulta em uma saída mais suave. Valores válidos: 0 a 10. |
AoqAudioVolume
Campo | Tipo | Valor padrão | Descrição |
|---|---|---|---|
volume | int | 0 | Volume instantâneo suavizado. Valores válidos: 0 a 255. |
Tipos de arquivo de áudio e stream de áudio externa
AoqAudioFileMixConfig
Campo | Tipo | Valor padrão | Descrição |
|---|---|---|---|
fileName | const char\* | nullptr | Nome do arquivo (incluindo o caminho) |
cycles | int | -1 | Número de loops. -1 indica loop ilimitado. |
startPosMs | long | 0 | Posição inicial de reprodução, em milissegundos |
publishVolume | int | 100 | Volume de publicação. Valores válidos: 0 a 100. |
playoutVolume | int | 100 | Volume de reprodução. Valores válidos: 0 a 100. |
fileId não faz parte do corpo de configuração e é passado como um parâmetro separado para startAudioFile.AoqAudioFileStateCode
Valor enum | Valor | Descrição |
|---|---|---|
AoqAudioFileNone | 0 | Sem estado |
AoqAudioFileStarted | 1 | Iniciado |
AoqAudioFileStopped | 2 | Parado |
AoqAudioFilePaused | 3 | Pausado |
AoqAudioFileResumed | 4 | Retomado |
AoqAudioFileEnded | 5 | Reprodução concluída |
AoqAudioFileBuffering | 6 | Bufferizando |
AoqAudioFileBufferingEnd | 7 | Bufferização encerrada |
AoqAudioFileFailed | 8 | Falha na reprodução |
AoqAudioFileErrorCode
Valor enum | Valor | Descrição |
|---|---|---|
AoqAudioFileNoError | 0 | Sem erro |
AoqAudioFileOpenFailed | 1 | Falha ao abrir o arquivo |
AoqAudioFileDecodeFailed | 2 | Falha ao decodificar o arquivo |
AoqAudioFileState
Campo | Tipo | Valor padrão | Descrição |
|---|---|---|---|
fileId | const char\* | nullptr | ID do arquivo. Válido apenas durante o callback. |
stateCode | AoqAudioFileStateCode | AoqAudioFileNone | Código de status do arquivo |
errorCode | AoqAudioFileErrorCode | AoqAudioFileNoError | Código de erro do arquivo |
AoqAudioExternalStreamConfig
Campo | Tipo | Valor padrão | Descrição |
|---|---|---|---|
trackType | AoqTrackType | AoqTrackTypeAudio | Tipo de track de áudio |
codecType | AoqEncoderType | AoqEncoderTypeAudioPCM | Formato da stream de áudio. PCM é suportado. |
channels | int | 1 | Número de canais. Limitado pelo codec de áudio da stream de publicação (1 e 2 são suportados, canais adicionais são ignorados). |
sampleRate | int | 48000 | Taxa de amostragem, em Hz |
playoutVolume | int | 100 | Volume de reprodução. Valores válidos: 0 a 100. |
publishVolume | int | 100 | Volume de publicação. Valores válidos: 0 a 100. |
maxBufferDuration | int | 600000 | Duração máxima do buffer, em milissegundos (ou seja, 10 minutos). Valores válidos: 100 ou superior. Se a duração exceder este valor, o Push falha. |
enable3A | bool | false | Aplicar processamento 3A ao PCM de entrada (não tem efeito no Linux, consulte 4,3) |
streamId não faz parte do corpo de configuração e é passado como um parâmetro separado para addAudioExternalStream.Tipos de vídeo
AoqVideoCanvas
Campo | Tipo | Valor padrão | Descrição |
|---|---|---|---|
view | void\* | nullptr | Um ponteiro opaco para o handle de view nativo da plataforma. Passe nullptr para remover a vinculação. |
renderMode | AoqRenderMode | AoqRenderModeAuto | Modo de preenchimento de renderização |
view: NSView* na Apple, HWND no Windows e o objeto adaptador de view de renderização interna do SDK no Android. Garanta que o ciclo de vida de view seja maior que o período durante o qual ele é definido por setLocalView / setRemoteView.
AoqVideoCaptureConfig
Campo | Tipo | Valor padrão | Descrição |
|---|---|---|---|
width | int | 1280 | Largura da captura, em pixels. Este parâmetro é ineficaz quando isExternal=true. |
height | int | 720 | Altura da captura, em pixels. Este parâmetro é ineficaz quando isExternal=true. |
fps | int | 15 | Taxa de quadros de captura. Este parâmetro é ineficaz quando isExternal=true (o ritmo é determinado pela entrega de frames). |
isExternal | bool | false | Especifica se deve usar captura externa. Se for true, a câmera não é aberta e os frames são alimentados por pushExternalVideoCapturedFrame. |
cameraDirection é um campo exclusivo para mobile e não existe em plataformas desktop (incluindo Linux). No Linux, recomendamos que você sempre defina isExternal = true.AoqVideoCodecConfig
Codificação e decodificação compartilham a mesma estrutura. Para decodificação, apenas trackType / codecType / width / height / fps / bitrate entram em vigor e participam da negociação como uma proposta de assinatura. minBitrate / keyframeInterval / mirrorMode / orientationMode / isExternal são usados apenas para codificação.
Campo | Tipo | Valor padrão | Descrição |
|---|---|---|---|
isExternal | bool | false | Modo de codificação externa. Quando é true, você envia frames codificados e o SDK não realiza captura ou codificação. |
trackType | AoqTrackType | AoqTrackTypeVideo | Tipo de track |
codecType | AoqEncoderType | AoqEncoderTypeVideoH264 | Tipo de codificação |
width | int | 540 | Largura da resolução, em pixels |
height | int | 960 | Altura da resolução, em pixels |
fps | int | 5 | Taxa de quadros |
bitrate | int | 500000 | Taxa de bits inicial, em bit/s |
minBitrate | int | 128000 | Taxa de bits mínima, em bit/s |
keyframeInterval | int | 2 | Intervalo de keyframe, em segundos |
mirrorMode | AoqMirrorMode | AoqMirrorModeDisabled | Modo de espelhamento |
orientationMode | AoqOrientationMode | AoqOrientationModeAuto | Modo de orientação |
AoqVideoPixelFormat
Valor enum | Valor | Descrição | Suportado no Linux |
|---|---|---|---|
AoqVideoPixelFormatUnknown | 0 | Formato desconhecido | - |
AoqVideoPixelFormatI420 | 1 | I420 (formato planar YUV) | Suportado |
AoqVideoPixelFormatNV12 | 2 | NV12 (formato semi-planar YUV) | Suportado |
AoqVideoPixelFormatNV21 | 3 | NV21 (formato semi-planar YUV) | Suportado |
AoqVideoPixelFormatBGRA | 4 | BGRA (32 bits) | Suportado |
AoqVideoPixelFormatRGBA | 5 | RGBA (32 bits) | Suportado |
AoqVideoPixelFormatCVPixelBuffer | 6 | Efetivo apenas em plataformas Apple | Não suportado |
AoqVideoPixelFormatTextureOES | 7 | Textura OES externa Android | Não suportado |
AoqVideoPixelFormatTexture2D | 8 | Textura 2D regular Android | Não suportado |
AoqVideoFrame
Um frame de vídeo bruto externo. Usado tanto para pushExternalVideoCapturedFrame quanto para o callback IVideoFrameObserver.
Campo | Tipo | Valor padrão | Descrição |
|---|---|---|---|
format | AoqVideoPixelFormat | AoqVideoPixelFormatUnknown | Formato de pixel |
width | int | 0 | Largura, em pixels |
height | int | 0 | Altura, em pixels |
dataPtr | void\* | 0 | Dados de formato empacotado (NV12 / NV21 / BGRA / RGBA) |
dataSize | int | 0 | Número de bytes de dados empacotados |
dataY | void\* | 0 | Plano Y do I420 |
dataU | void\* | 0 | Plano U do I420 |
dataV | void\* | 0 | Plano V do I420 |
strideY | int | 0 | Passo do plano Y |
strideU | int | 0 | Passo do plano U |
strideV | int | 0 | Passo do plano V |
nativePixelBuffer | void\* | 0 | Usado para zero-copy da Apple (CVPixelBufferRef). Este campo não é usado no Linux. |
textureId | int | 0 | ID de textura Android. Este campo não é usado no Linux. |
transformMatrix | float array (16 elementos) | Todos zeros | Matriz de transformação de textura (4x4 linha-principal). Este campo não é usado no Linux. |
timeStamp | int64_t | 0 | Timestamp, em milissegundos. Se for 0, o SDK o preenche com a hora local. |
AoqVideoCodecType
Valor enum | Valor | Descrição |
|---|---|---|
AoqVideoCodecTypeJPEG | 0 | Codificação JPEG |
AoqVideoEncodedFrame
Um frame de vídeo codificado externamente. O chamador realiza a codificação e o SDK empacota e envia o frame diretamente sem recodificação.
Campo | Tipo | Valor padrão | Descrição |
|---|---|---|---|
codec | AoqVideoCodecType | AoqVideoCodecTypeJPEG | Formato do codec |
data | void\* | nullptr | Ponteiro para os dados codificados |
dataSize | int | 0 | Número de bytes dos dados codificados |
width | int | 0 | Largura, em pixels |
height | int | 0 | Altura, em pixels |
timeStamp | int64_t | 0 | Timestamp, em milissegundos. Se for 0, o SDK o preenche com a hora local. |
AoqVideoDeviceStateCode
Valor enum | Valor | Descrição |
|---|---|---|
AoqVideoDeviceNone | 0 | Sem estado |
AoqVideoDeviceCaptureStarting | 1 | Câmera iniciando |
AoqVideoDeviceCaptureStarted | 2 | Câmera iniciada |
AoqVideoDeviceCaptureStopping | 3 | Câmera parando |
AoqVideoDeviceCaptureStopped | 4 | Câmera parada |
AoqVideoDeviceCaptureFail | 5 | Falha ao iniciar a câmera (por exemplo, permissão negada ou dispositivo indisponível) |
AoqVideoDeviceState
Campo | Tipo | Valor padrão | Descrição |
|---|---|---|---|
state | AoqVideoDeviceStateCode | AoqVideoDeviceNone | Status operacional de captura do dispositivo |
reason | int | 0 | Código do motivo do erro. Consulte AoqErrorCode. |
AoqVideoSource
Valor enum | Valor | Descrição |
|---|---|---|
AoqVideoSourceCaptured | 0 | Dados de vídeo capturados antes do pré-processamento |
AoqVideoSourcePreEncode | 1 | Dados de vídeo antes da codificação, após o pré-processamento |
AoqVideoSourceRemote | 2 | Dados de vídeo remotos após decodificação e antes da renderização |
AoqVideoSourceMax | 3 | Espaço reservado, não utilizar |
AoqVideoObserverMode
Valor enum | Valor | Descrição |
|---|---|---|
AoqVideoObserverModeReadOnly | 0 | Modo somente leitura |
AoqVideoObserverModeReadWrite | 1 | Modo leitura-escrita (suportado apenas para I420 / CVPixelBuffer) |
AoqVideoObserverAlignment
Valor enum | Valor | Descrição |
|---|---|---|
AoqVideoObserverAlignmentDefault | 0 | Alinhamento padrão |
AoqVideoObserverAlignmentEven | 1 | Alinhamento par |
AoqVideoObserverAlignment4 | 2 | Alinhamento de 4 bytes |
AoqVideoObserverAlignment8 | 3 | Alinhamento de 8 bytes |
AoqVideoObserverAlignment16 | 4 | Alinhamento de 16 bytes |
AoqVideoObserverConfig
Campo | Tipo | Valor padrão | Descrição |
|---|---|---|---|
format | AoqVideoPixelFormat | AoqVideoPixelFormatI420 | Formato de pixel esperado dos dados do callback |
alignment | AoqVideoObserverAlignment | AoqVideoObserverAlignmentDefault | Política de alinhamento de largura |
mode | AoqVideoObserverMode | AoqVideoObserverModeReadOnly | Modo de callback. ReadWrite é suportado apenas para I420 / CVPixelBuffer. |
mirrorApplied | bool | false | Especifica se deve espelhar os dados do callback |