Contrato compartilhado
O pré-processamento personalizado do TRTC costuma usar texturas OpenGL; Agora / LiveKit mais frequentemente entregam
CVPixelBuffer. Não misture os dois modos no mesmo mecanismo.
Compartilhado: processar textura
Compartilhado: processar CVPixelBuffer (esboço NV12)
externalContext = NO no caminho de pixel-buffer. Credenciais: Assinatura, Autenticação e licença. Vincule o nome do processo no Console para ferramentas CLI sem Bundle ID.
TRTC (Tencent)
Hook:setLocalVideoProcessDelegete:pixelFormat:bufferType: (grafia oficial Delegete). TRTCVideoPixelFormat_Texture_2D + TRTCVideoBufferType_Texture.
Agora
Hook:AgoraRtcEngineKit.setVideoFrameDelegate: (Video SDK 4.x). Os quadros capturados no macOS também costumam ser CVPixelBuffer.
setVideoFrameDelegate:nil e atribua nil a beautyEngine antes do teardown.
LiveKit
Implemente o SwiftVideoProcessor, processe CVPixelBuffer em process(frame:) e passe processor: ao criar a track da câmera (também suportado no macOS).
BackgroundBlurVideoProcessor (macOS 12+) para um exemplo oficial. Tracks de compartilhamento de tela podem usar o mesmo padrão de processador (API conforme sua versão LiveKit Swift).

