registerLocalVideoProcessor method

Future<int?> registerLocalVideoProcessor(
  1. VideoProcessor processor,
  2. VideoPreprocessorConfig config
)

@detail api @hiddensdk(audiosdk) @author zhushufan.ref @brief 设置自定义视频前处理器。
使用这个视频前处理器,你能够调用 processVideoFrame{@link #IVideoProcessor#processVideoFrame} 对 RTC SDK 采集得到的视频帧进行前处理,并将处理后的视频帧用于 RTC 音视频通信。 @param processor 自定义视频处理器,详见 IVideoProcessor{@link #IVideoProcessor}。如果传入 null,则不对 RTC SDK 采集得到的视频帧进行前处理。
SDK 只持有 processor 的弱引用,你应保证其生命周期。 @param config 自定义视频前处理器适用的设置,详见 VideoPreprocessorConfig{@link #VideoPreprocessorConfig}。
当前,config 中的 required_pixel_format 仅支持:I420TEXTURE_2DUnknown
- 设置为 Unknown 时,RTC SDK 给出供 processor 处理的视频帧格式即采集的格式。 你可以通过 pixelFormat{@link #IVideoFrame#pixelFormat} 获取实际采集的视频帧格式,支持的格式为:kVideoPixelFormatI420kVideoPixelFormatTexture2DkVideoPixelFormatTextureOES
- 设置为 I420TEXTURE_2D 时,RTC SDK 会将采集得到的视频转变为对应的格式,供前处理使用。 - 设置为其他值时,此方法调用失败。 @return - 0: 成功。 - < 0: 失败。查看 ReturnStatus{@link #ReturnStatus} 获得更多错误说明。 @note 经前处理后,返回给 RTC SDK 的视频帧格式仅支持 I420TEXTURE_2D

Implementation

Future<int?> registerLocalVideoProcessor(
    VideoProcessor processor, VideoPreprocessorConfig config) async {
  $a() => ($instance as $p_a.RTCEngine).registerLocalVideoProcessor(
      packObject(processor, () => android_VideoProcessor()),
      unpackObject<$p_a.VideoPreprocessorConfig>(config));
  $i() => ($instance as $p_i.ByteRTCEngine).registerLocalVideoProcessor(
      packObject(processor, () => ios_VideoProcessor()),
      unpackObject<$p_i.ByteRTCVideoPreprocessorConfig>(config));

  if (Platform.isAndroid) {
    return $a();
  } else if (Platform.isIOS) {
    return $i();
  } else {
    throw UnsupportedError(
        'Not Support Platform ${Platform.operatingSystem}');
  }
}