fromFFI static method

RtcOutboundRtpStreamStats fromFFI(
  1. RtcStatsType_RtcOutboundRtpStreamStats stats
)
override

Creates RtcOutboundRtpStreamStats basing on the ffi.RtcStatsType_RtcOutboundRtpStreamStats received from the native side.

Implementation

static RtcOutboundRtpStreamStats fromFFI(
    ffi.RtcStatsType_RtcOutboundRtpStreamStats stats) {
  RtcOutboundRtpStreamStatsMediaType? mediaType;
  var kind = stats.mediaType.runtimeType.toString().substring(2);
  if (kind == 'RtcOutboundRtpStreamStatsKind_Audio') {
    var cast =
        stats.mediaType as ffi.RtcOutboundRtpStreamStatsMediaType_Audio;
    mediaType = RtcOutboundRtpStreamStatsAudio(
        cast.totalSamplesSent, cast.voiceActivityFlag);
  } else if (kind == 'RtcOutboundRtpStreamStatsKind_Video') {
    var cast =
        stats.mediaType as ffi.RtcOutboundRtpStreamStatsMediaType_Video;
    mediaType = RtcOutboundRtpStreamStatsVideo(
        cast.frameWidth, cast.frameHeight, cast.framesPerSecond);
  }
  return RtcOutboundRtpStreamStats(
    stats.trackId,
    mediaType,
    stats.bytesSent,
    stats.packetsSent,
    stats.mediaSourceId,
  );
}