== Ongoing Work ==
== Audio Performance Framework. ==<p>{{Bug|909524}} is ongoing effort to provide minimal components that serves as a good starting point for carrying out Peer Connection audio quality analysis as part of Mozilla's Talos framework.</p>
Below picture captures the test setup for reporting Perceptual Evaluation of Speech Quality (PESQ)
scores for audio played through the Peer Connection.
Following sub-sections explain in details the various components for this setup.
=== Talos ===
<p>[[Talos]] is Mozilla's python performance testing framework that is usable on Windows, Mac and Linux. Talos provides automated way to start/stop Firefox , perform tests and capture results to be reported to the Mozilla's graphing server across various Firefox builds.</p><p>Talos is used in our setup to run media tests along with other start-up and page-loader performance tests.</p>
=== MozCaptureStream and Peer Connection ===
<p>Once we have the framework figured out to run automated media-tests, let's discuss the next step is deciding on how do we insert input audio file into the WebRTC Peer Connection. </p> <p>For this purpose Mozilla's MediaStreamProcessing API '''mozCaptureStreamUntilEnded''' enables the <audio> element to produce MediaStream that consistsof whatever the <audio> element is playing. Thus the stream produced by the <audio> element in thisfashion replaces the function of obtaining the media stream via the WebRTC GetUserMedia API. Finally,
the generated MediaStream is added to the local Peer Connection element via the addStream() API as shown
below.</p>
<code>// localAudio is an <audio> , localPC is a hrefPeerConnection ObjectlocalAudio.src ="https://dvcsinput.wav";localAudioStream = localAudio.mozCaptureStreamUnitlEnded();localAudio.w3play()localPC.org/hg/audio/raw-file/tipaddStream(localAudioStream)</streams/StreamProcessing.html"code>Media Processing API </abr>
=== Audio Tools - PulseAudio, Sox, PESQ ===
From the previous 2 sub-sections we have the following <br>
*A way to run automated browser tests using Talos
*A way a feeding audio from an input audio file audio input to the Peer Connection without having to use the GetUserMedia() API
In order to record the output Audio and compute PESQ scores,
=== Summary ===