getRemoteVideoStreams function
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;
}