Граф коммитов

24515 Коммитов

Автор SHA1 Сообщение Дата
Edgar Chen 1609bd332a Bug 1880372 - Include headers for ManagedEndpoint/Endpoint if it is used in a struct or union; r=nika,media-playback-reviewers,padenot
Differential Revision: https://phabricator.services.mozilla.com/D201878
2024-02-15 22:16:42 +00:00
Cristian Tuns 251ef52bed Backed out 3 changesets (bug 1878380) for causing gtest failures in GraphDriver.cpp CLOSED TREE
Backed out changeset b82c1a744158 (bug 1878380)
Backed out changeset fb1c6e6b2549 (bug 1878380)
Backed out changeset a3ac160c3048 (bug 1878380)
2024-02-14 17:12:03 -05:00
Andreas Pehrson 832c528305 Bug 1878380 - To AudioCallbackDriver add a ChangingDevice audio stream state. r=padenot
The new state is set when we're notified by cubeb (which is implemented only in
the mac backend) that it is changing output device under the hood. While the new
state is set, any audio callbacks coming in will be ignored, since there is no
guarantee that they won't come in after the DeviceChanged callback, but before
the device switch starts. A fallback driver is started, if not already running,
at the same time as setting the ChangingDevice audio stream state. The fallback
driver changes the audio stream state back to Starting in its first data
callback after a five millisecond grace period. Then handover to the audio
driver happens as it normally would: the first data callback from the audio
driver sets the audio stream state to Running, and the next fallback data
callback after that stops the fallback driver and tells the audio driver it can
drive the graph.

Differential Revision: https://phabricator.services.mozilla.com/D201195
2024-02-14 20:35:45 +00:00
Andreas Pehrson 2d12c05a2d Bug 1878380 - Add AudioCallbackDriver unit test. r=padenot
This adds a test that notifies an audio driver of a device change and waits for
a second without making data callbacks. Then it checks that something else was
iterating the graph during the wait.

Differential Revision: https://phabricator.services.mozilla.com/D200938
2024-02-14 20:35:45 +00:00
Andreas Pehrson 727a63ee11 Bug 1878380 - To MockCubebStream add a way to notify of DeviceChanged sync. r=padenot
Differential Revision: https://phabricator.services.mozilla.com/D201201
2024-02-14 20:35:45 +00:00
Jens Stutte b36e63a521 Bug 1880231 - Add names to WorkerDebuggeeRunnable and WorkerDebuggerRunnable derived runnables. r=dom-worker-reviewers,smaug
Differential Revision: https://phabricator.services.mozilla.com/D201805
2024-02-14 10:24:15 +00:00
Jan Grulich 9f664c10ed Bug 1880206 - Do not fallback from PipeWire to V4L2 on unsupported arches r=pehrsons
WEBRTC_USE_PIPEWIRE is not defined on ppc64 or riscv64 and this will end
up calling VideoCaptureOptions::set_allow_pipewire() that doesn't exist.

Differential Revision: https://phabricator.services.mozilla.com/D201803
2024-02-14 07:57:48 +00:00
Kelsey Gilbert b04996924d Bug 1037100 - Scoped.h removed because no outstanding uses. r=glandium,dom-storage-reviewers,jesup,janv
Differential Revision: https://phabricator.services.mozilla.com/D201763
2024-02-14 06:41:58 +00:00
Jan Grulich 1de8f91c94 Bug 1849608 - Fallback to V4L2 in case of broken PipeWire setup r=pehrsons
Fallback to V4L2 in case of a PipeWire failure. This could mean PipeWire
is not installed or not running. Also fallback to V4L2 in case camera
portal is not available or we failed to get information about available
cameras. We are not going to fallback when the camera access has been
specifically rejected or when camera portal reports there is no camera.

Differential Revision: https://phabricator.services.mozilla.com/D199858
2024-02-13 13:11:15 +00:00
Jamie Nicol b665169218 Bug 1879720 - Apply Pixel video color-space workaround to additional color space value. r=media-playback-reviewers,padenot
In bug 1866020 we added a workaround for GLES incorrectly rendering
videos with smpte432 color primaries on some Pixel devices. We enabled
this workaround on affected devices when the color space had a value
of 10.

In this bug we have discovered that some affected videos may
alternatively report their color space as 65800, therefore this patch
additionally applies the workaround in such cases.

Differential Revision: https://phabricator.services.mozilla.com/D201380
2024-02-13 10:56:05 +00:00
Jeff Muizelaar 239afc7998 Bug 1877726. Revert "Bug 1664063 - Ensure we consistently handle all errors from IDXGIKeyedMutex::AcquireSync.".
This reverts commit e25a5f344af32bdd689500bae7b4f24f205ba9f0.

We believe bug 1664063 was causing to hit some broken device reset
handling code.

Differential Revision: https://phabricator.services.mozilla.com/D201658
2024-02-13 04:25:35 +00:00
Chun-Min Chang 65e7831047 Bug 1876414 - Catch overflow in ChromiumCDMParent::CreateVideoFrame r=media-playback-reviewers,padenot
The change suppresses the clang-tidy warning. This patch doesn't change
the behavior in the release. However, if overflow happens, the
assertions will be triggered in nightly and beta.

Depends on D200887

Differential Revision: https://phabricator.services.mozilla.com/D201610
2024-02-13 00:18:16 +00:00
Chun-Min Chang 98cd60d371 Bug 1876414 - Let SharedPlanarYCbCrImage::CreateEmptyBuffer return nsresult r=media-playback-reviewers,gfx-reviewers,sotaro,padenot
Differential Revision: https://phabricator.services.mozilla.com/D200885
2024-02-13 00:18:15 +00:00
Chun-Min Chang d4c8cb75ca Bug 1876414 - Let PlanarYCbCrImage::CopyData return nsresult r=media-playback-reviewers,gfx-reviewers,sotaro,padenot
Differential Revision: https://phabricator.services.mozilla.com/D200570
2024-02-13 00:18:14 +00:00
Chun-Min Chang f48800da3b Bug 1876414 - Let PlanarYCbCrImage::AdoptData return nsresult r=gfx-reviewers,media-playback-reviewers,sotaro,padenot
Differential Revision: https://phabricator.services.mozilla.com/D200569
2024-02-13 00:18:14 +00:00
Chun-Min Chang af045ec3b4 Bug 1876414 - Let SetVideoDataToImage return MediaResult r=media-playback-reviewers,padenot
Differential Revision: https://phabricator.services.mozilla.com/D200568
2024-02-13 00:18:13 +00:00
Chun-Min Chang 9d206aa4a4 Bug 1876414 - Assert existence of given image in SetVideoDataToImage r=media-playback-reviewers,padenot
Differential Revision: https://phabricator.services.mozilla.com/D200540
2024-02-13 00:18:13 +00:00
Chun-Min Chang 86bd53ef61 Bug 1876414 - Let ValidateBufferAndPicture returns MediaResult r=media-playback-reviewers,padenot
Differential Revision: https://phabricator.services.mozilla.com/D200248
2024-02-13 00:18:12 +00:00
Chun-Min Chang dccae20110 Bug 1876414 - Update error message in ValidateBufferAndPicture r=media-playback-reviewers,padenot
Depends on D200539

Differential Revision: https://phabricator.services.mozilla.com/D201609
2024-02-13 00:18:12 +00:00
Chun-Min Chang 0decff79ff Bug 1876414 - Return MediaResult on VideoData::CreateAndCopyData error r=media-playback-reviewers,padenot
Differential Revision: https://phabricator.services.mozilla.com/D200539
2024-02-13 00:18:12 +00:00
Chun-Min Chang 2d6ad116b0 Bug 1876414 - Use bool literal to call VideoData::CreateAndCopyData r=media-playback-reviewers,padenot
This suppresses a clang-tidy warning in OmxDataDecoder.cpp

Depends on D201607

Differential Revision: https://phabricator.services.mozilla.com/D201608
2024-02-13 00:18:11 +00:00
Chun-Min Chang ed79638e7f Bug 1876414 - Correct ChromiumCDMParent's mLastStreamOffset type r=media-playback-reviewers,padenot
Depends on D200538

Differential Revision: https://phabricator.services.mozilla.com/D201607
2024-02-13 00:18:11 +00:00
Chun-Min Chang fef731a10f Bug 1876414 - Delete unused `self` in GMPVideoDecoder::Decoded r=media-playback-reviewers,padenot
Differential Revision: https://phabricator.services.mozilla.com/D200538
2024-02-13 00:18:10 +00:00
Chun-Min Chang bbef50fb7a Bug 1876414 - Log error if CreateYUV420VideoData fails r=media-playback-reviewers,padenot
Differential Revision: https://phabricator.services.mozilla.com/D200537
2024-02-13 00:18:10 +00:00
Chun-Min Chang c7d9b0e513 Bug 1876414 - Return MediaResult when ConstructImage fails r=media-playback-reviewers,padenot
Differential Revision: https://phabricator.services.mozilla.com/D200536
2024-02-13 00:18:10 +00:00
Chun-Min Chang 8545368e7b Bug 1876414 - Rework GetPicture's input and output r=media-playback-reviewers,padenot
Differential Revision: https://phabricator.services.mozilla.com/D200535
2024-02-13 00:18:09 +00:00
Chun-Min Chang 383894d6cb Bug 1876414 - Distinguish EAGAIN from other errors r=media-playback-reviewers,padenot
Per dav1d.h [1], The `DAV1D_ERR(EAGAIN)` returned from the
`dav1d_get_picture` is not a decoding error. It simply hints the caller
to feed more input.

[1] https://searchfox.org/mozilla-central/rev/41edcdf7fe44678c5913a603a286b1fc3979d540/third_party/dav1d/include/dav1d/dav1d.h#226

Differential Revision: https://phabricator.services.mozilla.com/D200534
2024-02-13 00:18:09 +00:00
Chun-Min Chang cadba26aa5 Bug 1876414 - Replace -EAGAIN by DAV1D_ERR(EAGAIN) r=media-playback-reviewers,padenot
DAV1DDecoder is the only place using `-EAGAIN` directly. Except
DAV1DDecoder, all all other places in our code uses a macro like
`DAV1D_ERR` or `AVERROR` to negate or detect the  POSIX `EAGAIN` error
code, which is a more appropriate approach to handle the error code
dynamically if the underlying macro usages in the libraries changed.

Differential Revision: https://phabricator.services.mozilla.com/D200533
2024-02-13 00:18:08 +00:00
Byron Campen 94793fc2ab Bug 1863534: Remove RTCRtpEncodingParameters.ssrc/rtx/fec. r=jib,webidl,smaug
Differential Revision: https://phabricator.services.mozilla.com/D192973
2024-02-10 01:18:29 +00:00
alwu ea3968dab2 Bug 1878039 - part3 : display HDCP 2.2 compatible in 'about:support'. r=fluent-reviewers,jolin,flod
HDCP 2.2 is the version which the video provide usually want to have
in order to stream 4K video securely, so we choose to display whether
the CDM supports HDCP 2.2.

Differential Revision: https://phabricator.services.mozilla.com/D201010
2024-02-10 00:24:34 +00:00
alwu 28ab226d21 Bug 1878039 - part2 : add test for mfcdm. r=jolin
Differential Revision: https://phabricator.services.mozilla.com/D200985
2024-02-10 00:24:33 +00:00
alwu 4ab0545847 Bug 1878039 - part1 : implement getStatusPolicy for WMFCDM. r=jolin
For MFCDM, we can use IsTypeSupported/IsTypeSupportedEx with HDCP query
[1] to know whether HDCP policy is usable.

[1]
https://docs.microsoft.com/en-us/uwp/api/windows.media.protection.protectioncapabilities.istypesupported?view=winrt-19041

Differential Revision: https://phabricator.services.mozilla.com/D200694
2024-02-10 00:24:33 +00:00
alwu 26d844a92e Bug 1878713 - part2 : implement GetStatusForPolicy for ClearKey CDM. r=media-playback-reviewers,jolin
This patch implement GetStatusForPolicy for ClearKey CDM so that we can
extend our test coverage.

Differential Revision: https://phabricator.services.mozilla.com/D200757
2024-02-10 00:24:32 +00:00
alwu d8f7773781 Bug 1878713 - part1 : use enum HDCPVersion to replace DOMString. r=media-playback-reviewers,webidl,jolin,smaug
Per spec [1], `minHDCPVersion` should be enum `HDCPVersion`.

[1] https://w3c.github.io/encrypted-media/#idl-def-mediakeyspolicy

Differential Revision: https://phabricator.services.mozilla.com/D200756
2024-02-10 00:24:32 +00:00
Perry McManis ddf1b618bb Bug 1879192 - Migrate GVST metrics in the audio namespace to pure glean r=chutten,media-playback-reviewers,padenot
GVST is how these probes sent data in Fenix and is now unnecessary (and doesn't send data in Fenix release) since Firefox Desktop has direct access to Glean. We therefore need to clean them up in some capacity.

Following the recommendations from the GeckoView Streaming (GVST) validation effort, this is a pure Glean api implementation of the metrics that fell under network in geckoview streaming.

Because these were both categorical histograms, to retain previous functionality we've added parallel instrumentation in Glean.

Differential Revision: https://phabricator.services.mozilla.com/D201144
2024-02-09 18:44:12 +00:00
Narcis Beleuzu 4701f6b0f9 Backed out 5 changesets (bug 1878713, bug 1878039) for wpt failure on clearkey-check-status-for-hdcp.https.html
Backed out changeset ba6c8f006d21 (bug 1878039)
Backed out changeset 825190c91d7a (bug 1878039)
Backed out changeset dda9fe6e9007 (bug 1878039)
Backed out changeset 1ad9eddcde2a (bug 1878713)
Backed out changeset 693b73304431 (bug 1878713)
2024-02-09 03:16:47 +02:00
alwu 96f3f29b27 Bug 1878039 - part3 : display HDCP 2.2 compatible in 'about:support'. r=fluent-reviewers,jolin,flod
HDCP 2.2 is the version which the video provide usually want to have
in order to stream 4K video securely, so we choose to display whether
the CDM supports HDCP 2.2.

Differential Revision: https://phabricator.services.mozilla.com/D201010
2024-02-08 23:25:03 +00:00
alwu 6d741d1bc3 Bug 1878039 - part2 : add test for mfcdm. r=jolin
Differential Revision: https://phabricator.services.mozilla.com/D200985
2024-02-08 23:25:03 +00:00
alwu 428850567e Bug 1878039 - part1 : implement getStatusPolicy for WMFCDM. r=jolin
For MFCDM, we can use IsTypeSupported/IsTypeSupportedEx with HDCP query
[1] to know whether HDCP policy is usable.

[1]
https://docs.microsoft.com/en-us/uwp/api/windows.media.protection.protectioncapabilities.istypesupported?view=winrt-19041

Differential Revision: https://phabricator.services.mozilla.com/D200694
2024-02-08 23:25:02 +00:00
alwu 10c6981b6c Bug 1878713 - part2 : implement GetStatusForPolicy for ClearKey CDM. r=media-playback-reviewers,jolin
This patch implement GetStatusForPolicy for ClearKey CDM so that we can
extend our test coverage.

Differential Revision: https://phabricator.services.mozilla.com/D200757
2024-02-08 23:25:02 +00:00
alwu 4e89bf3a80 Bug 1878713 - part1 : use enum HDCPVersion to replace DOMString. r=media-playback-reviewers,webidl,jolin,smaug
Per spec [1], `minHDCPVersion` should be enum `HDCPVersion`.

[1] https://w3c.github.io/encrypted-media/#idl-def-mediakeyspolicy

Differential Revision: https://phabricator.services.mozilla.com/D200756
2024-02-08 23:25:01 +00:00
alwu 64221455bd Bug 1873394 - part3 : record telemetry for the failure to recreate the state machine. r=jolin,chutten
When enaling the media engine playback, we would always start with using
the external state machine. Then fallback to the normal state machine if
the conditions are not met, eg. only enable encrypted media playback, or
the codec types/key system types which the media engine doesn't support.

This kind of transistion should be smooth and always succeed. If not,
then it would probably cause bad effect on the user experience, so we
add the probes to measure the error rate.

Differential Revision: https://phabricator.services.mozilla.com/D198242
2024-02-08 18:38:30 +00:00
alwu 55fe15a99b Bug 1873394 - part2 : add telemetry probe to record error and crash. r=jolin,chutten
Differential Revision: https://phabricator.services.mozilla.com/D198110
2024-02-08 18:38:30 +00:00
alwu 1e0c17c84c Bug 1873394 - part1 : collect playback statistic data for MFCDM. r=media-playback-reviewers,chunmin,chutten
Differential Revision: https://phabricator.services.mozilla.com/D198109
2024-02-08 18:38:29 +00:00
Byron Campen c9aff2999b Bug 1876526: Avoid holding the cubeb singleton mutex while calling into cubeb. r=pehrsons
Differential Revision: https://phabricator.services.mozilla.com/D200394
2024-02-08 13:08:30 +00:00
Byron Campen a22d093b80 Bug 1876526: Make cubeb singleton refcounted. r=pehrsons
Differential Revision: https://phabricator.services.mozilla.com/D200178
2024-02-08 13:08:29 +00:00
Byron Campen 4881d6ad3a Bug 1876526: Make sure AudioCallbackDriver is destroyed on the cubeb operation thread. r=pehrsons
Differential Revision: https://phabricator.services.mozilla.com/D199774
2024-02-08 13:08:29 +00:00
Paul Adenot e5ca01112a Bug 1877221 - Clamp rolloff factor appropriately in PannerNodeEngine. r=pehrsons
https://webaudio.github.io/web-audio-api/#dom-pannernode-rollofffactor

I mistook this as a fallout of the new FFT code, and saw the fix was trivial
when understood that it was an existing failure.

This includes a drive-by fix for a warning.

Differential Revision: https://phabricator.services.mozilla.com/D200830
2024-02-08 10:39:55 +00:00
pstanciu 41edcdf7fe Backed out 3 changesets (bug 1873394) for causing bug 1879250. CLOSED TREE
Backed out changeset b355f33d28c9 (bug 1873394)
Backed out changeset 6711b73d58e1 (bug 1873394)
Backed out changeset 44fdf4e83c7c (bug 1873394)
2024-02-08 11:53:13 +02:00
alwu badedf773a Bug 1873394 - part3 : record telemetry for the failure to recreate the state machine. r=jolin,chutten
When enaling the media engine playback, we would always start with using
the external state machine. Then fallback to the normal state machine if
the conditions are not met, eg. only enable encrypted media playback, or
the codec types/key system types which the media engine doesn't support.

This kind of transistion should be smooth and always succeed. If not,
then it would probably cause bad effect on the user experience, so we
add the probes to measure the error rate.

Differential Revision: https://phabricator.services.mozilla.com/D198242
2024-02-07 20:05:25 +00:00