chromium/third_party/blink/renderer/modules/webcodecs/opus_encoder_config.idl

// Copyright 2022 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// https://github.com/w3c/web-codecs

enum OpusBitstreamFormat {
  "opus",
  "ogg",
};

enum OpusSignal {
  "auto",
  "music",
  "voice",
};

enum OpusApplication {
  "voip",
  "audio",
  "lowdelay",
};

// NOTE: Keep this structure in sync with CopyOpusConfig() defined in
// audio_encoder.cc.
dictionary OpusEncoderConfig {
  OpusBitstreamFormat format = "opus";
  OpusSignal signal = "auto";
  OpusApplication application = "audio";
  [EnforceRange] unsigned long long frameDuration = 20000;
  [EnforceRange] unsigned long complexity;
  [EnforceRange] unsigned long packetlossperc = 0;
  boolean useinbandfec = false;
  boolean usedtx = false;
};