connectLocalSendTransportVideo function

Future<void> connectLocalSendTransportVideo(
  1. {required MediaStream stream,
  2. required MediaStreamTrack track,
  3. required List<RtpEncodingParameters> encodings,
  4. required ProducerCodecOptions codecOptions,
  5. RtpCodecCapability? codec,
  6. required ConnectSendTransportVideoParameters parameters}
)

Implementation

Future<void> connectLocalSendTransportVideo({
  required MediaStream stream,
  required MediaStreamTrack track,
  required List<RtpEncodingParameters> encodings,
  required ProducerCodecOptions codecOptions,
  RtpCodecCapability? codec,
  required ConnectSendTransportVideoParameters parameters,
}) async {
  try {
    Producer? localVideoProducer = parameters.localVideoProducer;
    Transport? localProducerTransport = parameters.localProducerTransport;
    final updateLocalVideoProducer = parameters.updateLocalVideoProducer;
    final updateLocalProducerTransport =
        parameters.updateLocalProducerTransport;

    // Produce local video data if transport exists
    if (localProducerTransport != null) {
      localProducerTransport.produce(
        track: track,
        stream: stream,
        encodings: encodings,
        codecOptions: codecOptions,
        codec: codec,
        source: 'webcam',
      );

      // Update local producer and transport
      if (updateLocalVideoProducer != null) {
        updateLocalVideoProducer(localVideoProducer);
      }
      if (updateLocalProducerTransport != null) {
        updateLocalProducerTransport(localProducerTransport);
      }
    }
  } catch (error) {
    if (kDebugMode) {
      print('Error connecting local video transport: $error');
    }
    rethrow; // Re-throw to propagate the error
  }
}