getCodecsList static method

List<Codec> getCodecsList(
  1. List<int>? selectedCodecsIds, {
  2. bool audio = true,
})

Converts list of int id's to list of Codecs. When input list not specified - returns default codecs settings

Implementation

static List<Codec> getCodecsList(
  List<int>? selectedCodecsIds, {
  bool audio = true,
}) {
  List<Codec> ret = <Codec>[];
  if (selectedCodecsIds != null) {
    for (var c in selectedCodecsIds) {
      ret.add(Codec(c, selected: true));
    }

    for (var c in Codec.availableCodecs(audio)) {
      if (ret.indexWhere((codec) => (codec.id == c)) == -1) {
        ret.add(Codec(c, selected: false));
      }
    }
  } else {
    //Build codecs selected by default
    for (var c in Codec.availableCodecs(audio)) {
      bool sel = audio
          ? ((c == PjsipConnectFlutter.kAudioCodecDTMF) ||
                (c == PjsipConnectFlutter.kAudioCodecOpus) ||
                (c == PjsipConnectFlutter.kAudioCodecPCMA))
          : ((c == PjsipConnectFlutter.kVideoCodecVP8) ||
                (c == PjsipConnectFlutter.kVideoCodecH264));
      ret.add(Codec(c, selected: sel));
    }
  }

  return ret;
}