[DEFAULT]
tags = "mtg webaudio"
subsuite = "media"
support-files = [
  "8kHz-320kbps-6ch.aac",
  "audio-expected.wav",
  "audio-mono-expected-2.wav",
  "audio-mono-expected.wav",
  "audio-quad.wav",
  "audio.ogv",
  "audiovideo.mp4",
  "audioBufferSourceNodeDetached_worker.js",
  "corsServer.sjs",
  "!/dom/events/test/event_leak_utils.js",
  "file_nodeCreationDocumentGone.html",
  "invalid.txt",
  "invalidContent.flac",
  "layouttest-glue.js",
  "nil-packet.ogg",
  "noaudio.webm",
  "small-shot-expected.wav",
  "small-shot-mono-expected.wav",
  "small-shot.ogg",
  "small-shot.mp3",
  "sweep-300-330-1sec.opus",
  "ting-44.1k-1ch.ogg",
  "ting-44.1k-2ch.ogg",
  "ting-48k-1ch.ogg",
  "ting-48k-2ch.ogg",
  "ting-44.1k-1ch.wav",
  "ting-44.1k-2ch.wav",
  "ting-48k-1ch.wav",
  "ting-48k-2ch.wav",
  "sine-440-10s.opus",
  "webaudio.js",
  # See ./generate-test-files.py
  "half-a-second-1ch-44100-aac.aac",
  "half-a-second-1ch-44100-aac.mp4",
  "half-a-second-1ch-44100-alaw.wav",
  "half-a-second-1ch-44100-flac.flac",
  "half-a-second-1ch-44100-libmp3lame.mp3",
  "half-a-second-1ch-44100-libopus.mp4",
  "half-a-second-1ch-44100-libopus.opus",
  "half-a-second-1ch-44100-libopus.webm",
  "half-a-second-1ch-44100-libvorbis.ogg",
  "half-a-second-1ch-44100-libvorbis.webm",
  "half-a-second-1ch-44100-mulaw.wav",
  "half-a-second-1ch-44100.wav",
  "half-a-second-1ch-48000-aac.aac",
  "half-a-second-1ch-48000-aac.mp4",
  "half-a-second-1ch-48000-flac.flac",
  "half-a-second-1ch-48000-libmp3lame.mp3",
  "half-a-second-1ch-48000-libopus.mp4",
  "half-a-second-1ch-48000-libopus.opus",
  "half-a-second-1ch-48000-libopus.webm",
  "half-a-second-1ch-48000-libvorbis.ogg",
  "half-a-second-1ch-48000-libvorbis.webm",
  "half-a-second-1ch-48000.wav",
  "half-a-second-2ch-44100-aac.aac",
  "half-a-second-2ch-44100-aac.mp4",
  "half-a-second-2ch-44100-flac.flac",
  "half-a-second-2ch-44100-libmp3lame.mp3",
  "half-a-second-2ch-44100-libopus.mp4",
  "half-a-second-2ch-44100-libopus.opus",
  "half-a-second-2ch-44100-libopus.webm",
  "half-a-second-2ch-44100-libvorbis.ogg",
  "half-a-second-2ch-44100-libvorbis.webm",
  "half-a-second-2ch-44100.wav",
  "half-a-second-2ch-48000-aac.aac",
  "half-a-second-2ch-48000-aac.mp4",
  "half-a-second-2ch-48000-flac.flac",
  "half-a-second-2ch-48000-libmp3lame.mp3",
  "half-a-second-2ch-48000-libopus.mp4",
  "half-a-second-2ch-48000-libopus.opus",
  "half-a-second-2ch-48000-libopus.webm",
  "half-a-second-2ch-48000-libvorbis.ogg",
  "half-a-second-2ch-48000-libvorbis.webm",
  "half-a-second-2ch-48000.wav",
  "half-a-second-1ch-44100-aac-afconvert.mp4",
  "waveformatextensible.wav",
  "waveformatextensiblebadmask.wav",
  "sixteen-frames.mp3", # only 16 frames of valid audio
  "../../webrtc/tests/mochitests/mediaStreamPlayback.js",
  "../../webrtc/tests/mochitests/head.js",
]

["test_OfflineAudioContext.html"]

["test_ScriptProcessorCollected1.html"]

["test_WebAudioMemoryReporting.html"]

["test_analyserNode.html"]
skip-if = ["!asan && os != android"] # These are tested in web-platform-tests, except on ASan and Android which don't run WPT.

["test_analyserNodeMinimum.html"]
skip-if = ["!asan && os != android"] # These are tested in web-platform-tests, except on ASan and Android which don't run WPT.

["test_analyserNodeOutput.html"]
skip-if = ["!asan && os != android"] # These are tested in web-platform-tests, except on ASan and Android which don't run WPT.

["test_analyserNodePassThrough.html"]

["test_analyserNodeWithGain.html"]
skip-if = ["!asan && os != android"] # These are tested in web-platform-tests, except on ASan and Android which don't run WPT.

["test_analyserScale.html"]
skip-if = ["!asan && os != android"] # These are tested in web-platform-tests, except on ASan and Android which don't run WPT.

["test_audioContextParams_recordNonDefaultSampleRate.html"]

["test_audioContextParams_sampleRate.html"]

["test_channelMergerNode.html"]

["test_channelMergerNodeWithVolume.html"]

["test_channelSplitterNode.html"]

["test_channelSplitterNodeWithVolume.html"]

["test_convolver-upmixing-1-channel-response.html"]
# This is a copy of
# testing/web-platform/tests/webaudio/the-audio-api/the-convolvernode-interface/convolver-upmixing-1-channel-response.html,
# but WPT are not run with ASan or Android builds.
skip-if = ["!asan && os != android"]

["test_convolverNode.html"]

["test_convolverNodeChannelCount.html"]

["test_convolverNodeChannelInterpretationChanges.html"]

["test_convolverNodeDelay.html"]

["test_convolverNodeFiniteInfluence.html"]

["test_convolverNodeNormalization.html"]

["test_convolverNodeOOM.html"]
skip-if = [
  "asan",
  "tsan", # 1672869
]

["test_convolverNodePassThrough.html"]

["test_convolverNodeWithGain.html"]

["test_convolverNode_mono_mono.html"]

["test_currentTime.html"]

["test_decodeAudioDataOnDetachedBuffer.html"]

["test_decodeAudioDataPromise.html"]

["test_decodeAudioError.html"]

["test_decodeMultichannel.html"]

["test_decodeOpusTail.html"]

["test_decoderDelay.html"]

["test_delayNode.html"]

["test_delayNodeAtMax.html"]

["test_delayNodeChannelChanges.html"]

["test_delayNodeCycles.html"]

["test_delayNodePassThrough.html"]

["test_delayNodeSmallMaxDelay.html"]

["test_delayNodeTailIncrease.html"]

["test_delayNodeTailWithDisconnect.html"]

["test_delayNodeTailWithGain.html"]

["test_delayNodeTailWithReconnect.html"]

["test_delayNodeWithGain.html"]

["test_delaynode-channel-count-1.html"]
# This is a copy of
# testing/web-platform/tests/webaudio/the-audio-api/the-delaynode-interface/delaynode-channel-count-1.html
# but WPT are not run with ASan or Android builds.
skip-if = ["!asan && os != android"]

["test_disconnectAll.html"]

["test_disconnectAudioParam.html"]

["test_disconnectAudioParamFromOutput.html"]

["test_disconnectExceptions.html"]

["test_disconnectFromAudioNode.html"]

["test_disconnectFromAudioNodeAndOutput.html"]

["test_disconnectFromAudioNodeAndOutputAndInput.html"]

["test_disconnectFromAudioNodeMultipleConnection.html"]

["test_disconnectFromOutput.html"]

["test_dynamicsCompressorNode.html"]

["test_dynamicsCompressorNodePassThrough.html"]

["test_dynamicsCompressorNodeWithGain.html"]

["test_event_listener_leaks.html"]

["test_gainNode.html"]

["test_gainNodeInLoop.html"]

["test_gainNodePassThrough.html"]

["test_iirFilterNodePassThrough.html"]

["test_maxChannelCount.html"]

["test_mixingRules.html"]

["test_nodeCreationDocumentGone.html"]

["test_nodeToParamConnection.html"]

["test_notAllowedToStartAudioContextGC.html"]

["test_offlineDestinationChannelCountLess.html"]

["test_offlineDestinationChannelCountMore.html"]

["test_oscillatorNode.html"]

["test_oscillatorNode2.html"]

["test_oscillatorNodeNegativeFrequency.html"]

["test_oscillatorNodePassThrough.html"]

["test_oscillatorNodeStart.html"]

["test_oscillatorTypeChange.html"]

["test_pannerNode.html"]

["test_pannerNodeAbove.html"]

["test_pannerNodeAtZeroDistance.html"]

["test_pannerNodeChannelCount.html"]

["test_pannerNodeHRTFSymmetry.html"]

["test_pannerNodeTail.html"]

["test_pannerNode_audioparam_distance.html"]

["test_pannerNode_equalPower.html"]

["test_pannerNode_maxDistance.html"]

["test_periodicWave.html"]

["test_periodicWaveBandLimiting.html"]

["test_periodicWaveDisableNormalization.html"]

["test_retrospective-exponentialRampToValueAtTime.html"]

["test_retrospective-linearRampToValueAtTime.html"]

["test_retrospective-setTargetAtTime.html"]

["test_retrospective-setValueAtTime.html"]

["test_retrospective-setValueCurveAtTime.html"]

["test_scriptProcessorNode.html"]

["test_scriptProcessorNodeChannelCount.html"]

["test_scriptProcessorNodeNotConnected.html"]

["test_scriptProcessorNodePassThrough.html"]

["test_scriptProcessorNodeZeroInputOutput.html"]

["test_scriptProcessorNode_playbackTime1.html"]

["test_sequentialBufferSourceWithResampling.html"]

["test_setValueCurveWithNonFiniteElements.html"]

["test_singleSourceDest.html"]

["test_slowStart.html"]

["test_stereoPannerNode.html"]

["test_stereoPannerNodePassThrough.html"]

["test_stereoPanningWithGain.html"]

["test_waveDecoder.html"]

["test_waveShaper.html"]

["test_waveShaperGain.html"]

["test_waveShaperInvalidLengthCurve.html"]

["test_waveShaperNoCurve.html"]

["test_waveShaperPassThrough.html"]

["test_webAudio_muteTab.html"]
scheme = "https"
skip-if = [
  "os == 'mac'",
  "os == 'win'",
  "os == 'android'", # Bug 1404995, no loopback devices on some platforms
]