registerLocalVideoProcessor method

FutureOr<int> registerLocalVideoProcessor(
  1. id<ByteRTCVideoProcessorDelegate> processor,
  2. ByteRTCVideoPreprocessorConfig config
)

@detail api @hiddensdk(audiosdk) @author zhushufan.ref @brief 设置自定义视频前处理器。
使用这个视频前处理器,你能够调用 processVideoFrame:{@link #ByteRTCVideoProcessorDelegate#processVideoFrame} 对 RTC SDK 采集得到的视频帧进行前处理,并将处理后的视频帧用于 RTC 音视频通信。 @param processor 自定义视频处理器,详见 ByteRTCVideoProcessorDelegate{@link #ByteRTCVideoProcessorDelegate}。如果传入 null,则不对 RTC SDK 采集得到的视频帧进行前处理。
SDK 只持有 processor 的弱引用,你应保证其生命周期。
在设计 processor 时,应从 ByteRTCVideoFrame{@link #ByteRTCVideoFrame} 的 textureBuf 字段获取视频帧数据;
处理后返回的视频帧数据格式应为 ByteRTCVideoPixelFormat{@link #ByteRTCVideoPixelFormat} 中的 ByteRTCVideoPixelFormatCVPixelBuffer,且必须存放在返回帧数据的 textureBuf 字段中。 @param config 自定义视频前处理器适用的设置,详见 ByteRTCVideoPreprocessorConfig{@link #ByteRTCVideoPreprocessorConfig}。
当前,config 中的 required_pixel_format 仅支持:ByteRTCVideoPixelFormatI420ByteRTCVideoPixelFormatUnknown
- 设置为 Unknown 时,RTC SDK 给出供 processor 处理的视频帧格式即采集的格式。 - 设置为 ByteRTCVideoPixelFormatI420 时,RTC SDK 会将采集得到的视频转变为对应的格式,供前处理使用。 - 设置为其他值时,此方法调用失败。 @return - 0: 成功。 - < 0: 失败。查看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus} 获得更多错误说明。 @note - 重复调用此接口时,仅最后一次调用生效。效果不会叠加。 - 对于 iOS 平台,将 ByteRTCVideoPreprocessorConfig{@link #ByteRTCVideoPreprocessorConfig} 中的 requiredPixelFormat 设置为 kVideoPixelFormatUnknown,可以通过避免格式转换带来一些性能优化。

Implementation

FutureOr<int> registerLocalVideoProcessor(
    id<ByteRTCVideoProcessorDelegate> processor,
    ByteRTCVideoPreprocessorConfig config) async {
  return await nativeCall(
      'registerLocalVideoProcessor:withConfig:', [processor, config]);
}