We use AV_CODEC_HW_CONFIG_METHOD_HW_DEVICE_CTX for HW decode so we need to reference hw_device_ctx instead of hw_frames_ctx.
Differential Revision: https://phabricator.services.mozilla.com/D141831
These Windows swgl tests no longer need the expanded fuzziness for asan or
beta builds. They can use the same fuzziness levels as other platforms.
Differential Revision: https://phabricator.services.mozilla.com/D141879
According to [1], `MFShutdown` will shutdown the media foundation for every other call of `MFStartup`, which means it's possible to shutdown the media foundation even if other components are still using that.
Therefore, we should consider make the media foundation alive when the first time any component wants to use it, and shutdown it when the whole process destroys.
We already did similar thing on the RDD process [2] so it makes sense to do it as well on other places. Especially considering we will move the MFT decoder into the RDD process in the future, we definitely don't want an encoder incorrectly shutdown the media foundation the decoder is using.
Also, it saves time to call `MFStartup` if the media foundation is already started.
[1] https://docs.microsoft.com/en-us/windows/win32/api/mfapi/nf-mfapi-mfshutdown
[2] https://searchfox.org/mozilla-central/rev/eeeba8183d3268e0d563c2becf9f4adc21a37368/dom/media/ipc/RDDParent.cpp#111,303,315
Differential Revision: https://phabricator.services.mozilla.com/D140757
This patch just adds the plumbing to allow for baked in blocklist rules
or the downloadable blocklist to prevent certain configurations from
getting WebGPU. It does not add any rules.
It also changes us from allowing WebGPU only in nightly, including
tests, to not release and not beta. This allows try to run the WebGPU
tests as expected, since even try builds forked from mozilla-central are
not considered nightly builds by CI (or so it seems).
Differential Revision: https://phabricator.services.mozilla.com/D141682
Before this change, the converter would be drained after each packet would be
pushed to the queue, introducing discontinuities in the audio, at the end, after
all the decoding operations were finished, but before all the audio packets were
pushed to the queue.
This went unnoticed because there is no converter most of the time, with audio
that has a sample-rate higher or equal to the common 44100Hz value.
Depends on D141356
Differential Revision: https://phabricator.services.mozilla.com/D141357
VPXChangeMonitor never initialized a decoder to test for that hardware support on when requested by MediaCapabilities. To fix this, codec initialization data is created to be processed by VPXChangeMonitor to initialize a dummy decoder.
MediaCapabilities and related APIs will now accept VP9 Profile 3, as the profile is supported by libdav1d.
Depends on D138884
Differential Revision: https://phabricator.services.mozilla.com/D140148
This will be used to avoid problematic includes from WorkerPrivate.h,
and it matches the behavior of RefPtr<> and WeakPtr<>.
Differential Revision: https://phabricator.services.mozilla.com/D140658
This will be used to avoid problematic includes from WorkerPrivate.h,
and it matches the behavior of RefPtr<> and WeakPtr<>.
Differential Revision: https://phabricator.services.mozilla.com/D140658
mIPCIsAlive is already cleared and notified before Shutdown() is called on the
IPC thread.
mIPCIsAlive is read only in DispatchToParent() on the MediaManager thread,
which cannot happen while Shutdown() is called on the same thread.
Depends on D140029
Differential Revision: https://phabricator.services.mozilla.com/D140030
so that CamerasChild gets notified that the parent will no longer reply.
CamerasParent::ActorDestroy() now calls StopVideoCapture() in response to the
delete.
This change also means that no further IPC messages will be received on this
CamerasParent after the StopVideoCapture().
Differential Revision: https://phabricator.services.mozilla.com/D140027
mReplySuccess is set appropriately only when the reply is received.
An inappriopriate success could lead to incorrect data being returned.
Depends on D140023
Differential Revision: https://phabricator.services.mozilla.com/D140025
RecvPCamerasConstructor() is used because IPC messages cannot be sent from
AllocPCamerasParent() because SetManagerAndRegister() has not been called to
change mLinkStatus to Connected.
Differential Revision: https://phabricator.services.mozilla.com/D140022