您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

FeatureFlags.js 1.8KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. import { getLogger } from '@jitsi/logger';
  2. import browser from '../browser';
  3. const logger = getLogger('FeatureFlags');
  4. /**
  5. * A global module for accessing information about different feature flags state.
  6. */
  7. class FeatureFlags {
  8. /**
  9. * Configures the module.
  10. *
  11. * @param {boolean} flags.sourceNameSignaling - Enables source names in the signaling.
  12. */
  13. init(flags) {
  14. this._sourceNameSignaling = Boolean(flags.sourceNameSignaling);
  15. this._sendMultipleVideoStreams = Boolean(flags.sendMultipleVideoStreams);
  16. this._ssrcRewriting = Boolean(flags.ssrcRewritingOnBridgeSupported);
  17. // For Chromium, check if Unified plan is enabled.
  18. this._usesUnifiedPlan = browser.supportsUnifiedPlan()
  19. && (!browser.isChromiumBased() || (flags.enableUnifiedOnChrome ?? true));
  20. logger.info(`Source name signaling: ${this._sourceNameSignaling},`
  21. + ` Send multiple video streams: ${this._sendMultipleVideoStreams},`
  22. + ` SSRC rewriting supported: ${this._ssrcRewriting},`
  23. + ` uses Unified plan: ${this._usesUnifiedPlan}`);
  24. }
  25. /**
  26. * Checks if multiple local video streams support is enabled.
  27. *
  28. * @returns {boolean}
  29. */
  30. isMultiStreamSupportEnabled() {
  31. return this._sourceNameSignaling && this._sendMultipleVideoStreams && this._usesUnifiedPlan;
  32. }
  33. /**
  34. * Checks if the source name signaling is enabled.
  35. *
  36. * @returns {boolean}
  37. */
  38. isSourceNameSignalingEnabled() {
  39. return this._sourceNameSignaling;
  40. }
  41. /**
  42. * Checks if the clients supports re-writing of the SSRCs on the media streams by the bridge.
  43. * @returns {boolean}
  44. */
  45. isSsrcRewritingSupported() {
  46. return this._ssrcRewriting;
  47. }
  48. }
  49. export default new FeatureFlags();