[
  {
    "interfaces": [
      {
        "base": "nsISupports",
        "callable": false,
        "consts": [
          {
            "name": "TYPE_UNKNOWN",
            "value": 0
          },
          {
            "name": "TYPE_INPUT",
            "value": 1
          },
          {
            "name": "TYPE_OUTPUT",
            "value": 2
          },
          {
            "name": "STATE_DISABLED",
            "value": 0
          },
          {
            "name": "STATE_UNPLUGGED",
            "value": 1
          },
          {
            "name": "STATE_ENABLED",
            "value": 2
          },
          {
            "name": "PREF_NONE",
            "value": 0
          },
          {
            "name": "PREF_MULTIMEDIA",
            "value": 1
          },
          {
            "name": "PREF_VOICE",
            "value": 2
          },
          {
            "name": "PREF_NOTIFICATION",
            "value": 4
          },
          {
            "name": "PREF_ALL",
            "value": 15
          },
          {
            "name": "FMT_S16LE",
            "value": 16
          },
          {
            "name": "FMT_S16BE",
            "value": 32
          },
          {
            "name": "FMT_F32LE",
            "value": 4096
          },
          {
            "name": "FMT_F32BE",
            "value": 8192
          }
        ],
        "enums": [],
        "id": "nsIAudioDeviceInfo",
        "members": [
          {
            "name": "name",
            "readonly": true,
            "type": "string"
          },
          {
            "name": "groupId",
            "readonly": true,
            "type": "string"
          },
          {
            "name": "vendor",
            "readonly": true,
            "type": "string"
          },
          {
            "name": "type",
            "readonly": true,
            "type": "u16"
          },
          {
            "name": "state",
            "readonly": true,
            "type": "u16"
          },
          {
            "name": "preferred",
            "readonly": true,
            "type": "u16"
          },
          {
            "name": "supportedFormat",
            "readonly": true,
            "type": "u16"
          },
          {
            "name": "defaultFormat",
            "readonly": true,
            "type": "u16"
          },
          {
            "name": "maxChannels",
            "readonly": true,
            "type": "u32"
          },
          {
            "name": "defaultRate",
            "readonly": true,
            "type": "u32"
          },
          {
            "name": "maxRate",
            "readonly": true,
            "type": "u32"
          },
          {
            "name": "minRate",
            "readonly": true,
            "type": "u32"
          },
          {
            "name": "maxLatency",
            "readonly": true,
            "type": "u32"
          },
          {
            "name": "minLatency",
            "readonly": true,
            "type": "u32"
          }
        ]
      }
    ],
    "path": "dom/media/nsIAudioDeviceInfo.idl",
    "typedefs": [
      [
        "PRTime",
        "i64"
      ]
    ]
  },
  {
    "interfaces": [
      {
        "base": "nsISupports",
        "callable": false,
        "consts": [],
        "enums": [],
        "id": "nsIMediaDevice",
        "members": [
          {
            "name": "type",
            "readonly": true,
            "type": "string"
          },
          {
            "name": "mediaSource",
            "readonly": true,
            "type": "string"
          },
          {
            "name": "rawId",
            "readonly": true,
            "type": "string"
          },
          {
            "name": "id",
            "readonly": true,
            "type": "string"
          },
          {
            "name": "scary",
            "readonly": true,
            "type": "boolean"
          },
          {
            "name": "canRequestOsLevelPrompt",
            "readonly": true,
            "type": "boolean"
          },
          {
            "name": "rawName",
            "readonly": true,
            "type": "string"
          }
        ]
      }
    ],
    "path": "dom/media/nsIMediaDevice.idl",
    "typedefs": [
      [
        "PRTime",
        "i64"
      ]
    ]
  },
  {
    "interfaces": [
      {
        "base": "nsISupports",
        "callable": false,
        "consts": [
          {
            "name": "STATE_NOCAPTURE",
            "value": 0
          },
          {
            "name": "STATE_CAPTURE_ENABLED",
            "value": 1
          },
          {
            "name": "STATE_CAPTURE_DISABLED",
            "value": 2
          }
        ],
        "enums": [],
        "id": "nsIMediaManagerService",
        "members": [
          {
            "name": "activeMediaCaptureWindows",
            "readonly": true,
            "type": "nsIArray"
          },
          {
            "args": [
              {
                "name": "aWindow",
                "optional": false,
                "type": "nsIDOMWindow"
              },
              {
                "name": "aCamera",
                "optional": false,
                "type": "OutParam<u16>"
              },
              {
                "name": "aMicrophone",
                "optional": false,
                "type": "OutParam<u16>"
              },
              {
                "name": "aScreenShare",
                "optional": false,
                "type": "OutParam<u16>"
              },
              {
                "name": "aWindowShare",
                "optional": false,
                "type": "OutParam<u16>"
              },
              {
                "name": "aBrowserShare",
                "optional": false,
                "type": "OutParam<u16>"
              },
              {
                "name": "devices",
                "optional": false,
                "type": "OutParam<nsIMediaDevice[]>"
              }
            ],
            "iid_is": null,
            "name": "mediaCaptureWindowState",
            "type": "void"
          },
          {
            "args": [
              {
                "name": "sinceWhen",
                "optional": false,
                "type": "i64"
              }
            ],
            "iid_is": null,
            "name": "sanitizeDeviceIds",
            "type": "void"
          }
        ]
      }
    ],
    "path": "dom/media/nsIMediaManager.idl",
    "typedefs": [
      [
        "PRTime",
        "i64"
      ]
    ]
  },
  {
    "interfaces": [
      {
        "base": "nsISupports",
        "callable": false,
        "consts": [],
        "enums": [],
        "id": "nsIMediaPictureInPictureProvider",
        "members": [
          {
            "args": [
              {
                "name": "videoElement",
                "optional": false,
                "type": "Element"
              },
              {
                "name": "pictureInPictureWindow",
                "optional": false,
                "type": "PictureInPictureWindow"
              }
            ],
            "iid_is": null,
            "name": "openMediaPictureInPictureWindow",
            "type": "Promise<any>"
          },
          {
            "args": [
              {
                "name": "videoElement",
                "optional": false,
                "type": "Element"
              }
            ],
            "iid_is": null,
            "name": "closeMediaPictureInPictureWindow",
            "type": "Promise<any>"
          }
        ]
      }
    ],
    "path": "dom/media/nsIMediaPictureInPictureProvider.idl",
    "typedefs": [
      [
        "PRTime",
        "i64"
      ]
    ]
  }
]