/** * This class handles the codec selection mechanism for the conference based on the config.js settings. * The preferred codec is selected based on the settings and the list of codecs supported by the browser. * The preferred codec is published in presence which is then used by the other endpoints in the * conference to pick a supported codec at join time and when the call transitions between p2p and jvb * connections. */ export class CodecSelection { /** * Creates a new instance for a given conference. * * @param {JitsiConference} conference the conference instance * @param {*} options * @param {string} options.jvb settings (codec list, preferred and disabled) for the jvb connection. * @param {string} options.p2p settings (codec list, preferred and disabled) for the p2p connection. */ constructor(conference: any, options: any); conference: any; options: any; codecPreferenceOrder: {}; /** * Returns a list of video codecs that are supported by the browser. * * @param {string} connectionType - media connection type, p2p or jvb. * @returns {Array} */ _getSupportedVideoCodecs(connectionType: string): any[]; /** * Filters VP9 from the list of the preferred video codecs for JVB if E2EE is enabled. * * @returns {Array} */ _maybeFilterJvbCodecs(): any[]; /** * Sets the codec on the media session based on the codec preference order configured in config.js and the supported * codecs published by the remote participants in their presence. * * @param {JingleSessionPC} mediaSession session for which the codec selection has to be made. */ _selectPreferredCodec(mediaSession: any): void; /** * Returns the current codec preference order for the given connection type. * * @param {String} connectionType The media connection type, 'p2p' or 'jvb'. * @returns {Array} */ getCodecPreferenceList(connectionType: string): Array; }