convert static method

Implementation

static Pointer<V2TXLiveTranscodingConfigStruct> convert(V2TXLiveTranscodingConfig config) {
  final configPointer = calloc<V2TXLiveTranscodingConfigStruct>();

  configPointer.ref
    ..video_width = config.videoWidth
    ..video_height = config.videoHeight
    ..video_bitrate = config.videoBitrate
    ..video_framerate = config.videoFramerate
    ..video_gop = config.videoGOP
    ..background_color = config.backgroundColor
    ..audio_sample_rate = config.audioSampleRate
    ..audio_bitrate = config.audioBitrate
    ..audio_channels = config.audioChannels
    ..mix_stream_size = config.mixStreams?.length ?? 0;

  configPointer.ref
    ..background_image = config.backgroundImage?.toNativeUtf8().cast<Char>() ?? nullptr
    ..output_stream_id = config.outputStreamId?.toNativeUtf8().cast<Char>() ?? nullptr;

  if (config.mixStreams != null && config.mixStreams!.isNotEmpty) {
    final mixStreamsPointer = calloc<V2TXLiveMixStreamStruct>(config.mixStreams!.length);
    for (var i = 0; i < config.mixStreams!.length; i++) {
      final mixStream = config.mixStreams![i];
      mixStreamsPointer[i]
        ..user_id = mixStream.userId?.toNativeUtf8().cast<Char>() ?? nullptr
        ..stream_id = mixStream.streamId?.toNativeUtf8().cast<Char>() ?? nullptr
        ..x = mixStream.x
        ..y = mixStream.y
        ..width = mixStream.width
        ..height = mixStream.height
        ..z_order = mixStream.zOrder
        ..input_type = mixStream.inputType.index;
    }
    configPointer.ref.mix_streams_array = mixStreamsPointer;
  }

  return configPointer;
}