getRemoteVideoStreams function

List<ResolvedMedia> getRemoteVideoStreams(
  1. MediaStreamsParameters parameters
)

Remote cameras, de-duplicated by producer id and free of the self marker.

oldAllStreams is merged because the SDK moves entries between the two lists as the layout changes; reading only the current one drops people mid-call.

Implementation

List<ResolvedMedia> getRemoteVideoStreams(MediaStreamsParameters parameters) {
  final resolved = <ResolvedMedia>[];
  final seen = <String>{};

  void add(Stream entry) {
    final producerId = entry.producerId;
    if (producerId.isEmpty || _isSelfMarker(producerId)) return;
    if (!seen.add(producerId)) return;
    final stream = entry.stream;
    if (!_hasLiveTrack(stream, 'video', requireEnabled: false)) return;
    resolved.add(ResolvedMedia(
      producerId: producerId,
      name: entry.name ?? '',
      stream: stream!,
    ));
  }

  for (final entry in parameters.allVideoStreams) {
    add(entry);
  }
  for (final entry in parameters.oldAllStreams) {
    add(entry);
  }
  return resolved;
}