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

153 Коммитов

Автор SHA1 Сообщение Дата
Jeff Gilbert d517313a40 Bug 1697670 - Remove gfx::YUVColorSpace::UNKNOWN. r=mstange
Replace with Maybe<YUVColorSpace> where still needed.

Differential Revision: https://phabricator.services.mozilla.com/D107938
2021-03-19 00:58:23 +00:00
Csoregi Natalia e0c536d241 Backed out changeset f155cf6af343 (bug 1697670) for bustage on gfxUtils.cpp. CLOSED TREE 2021-03-17 02:41:15 +02:00
Jeff Gilbert 7d9b571b77 Bug 1697670 - Remove gfx::YUVColorSpace::UNKNOWN. r=mstange
Replace with Maybe<YUVColorSpace> where still needed.

Differential Revision: https://phabricator.services.mozilla.com/D107938
2021-03-16 23:25:54 +00:00
alwu 80632b032f Bug 1684126 - part1 : modify `mTime` and `mOriginalTime` together. r=padenot,bryce
In AudioData, we use `mOriginalTime` to store the original start time before trimming, which should keep sync to `mTime` if data hasn't been trimmed before. Otherwise, if they are not equal, it would cause a problem when handling trimming.

For example.
If audio data's time is X, original time is X-1 and duration is T. When MDSM performs seeking, it would use (X + T) as trimming window's end time. However, in `AudioData::SetTrimWindow()`, original time + duration (X - 1 + T) would be less than the trimming end time, which causes an error.

Differential Revision: https://phabricator.services.mozilla.com/D100825
2021-01-12 14:14:01 +00:00
alwu b8c6ef7b92 Bug 1685215 - 'AdjustForStartTime()' should only exist on decoded data type. r=padenot
`AdjustForStartTime()` is only used for decoded data type in order to adjust their start time to zero, such as `VideoData` and `AudioData`.

However, some other types inherited from `MediaData` don't need that function. Eg. `MediaRawData`, so it's not necessary to put it on the `MediaData`, we should move that function to `VideoData` and `AudioData` separately.

Differential Revision: https://phabricator.services.mozilla.com/D100846
2021-01-11 08:13:12 +00:00
Chun-Min Chang b7811b117b Bug 1654462 - Add alpha support in nsAVIFDecoder r=jbauman
This patch implements the transparency support for AVIF image files.

To convert the decoded YCbCr and Alpha data to RGBA, a function named
`ConvertYCbCrAToARGB` is created to do this job in the following
procedure:

ConvertYCbCrAToARGB:
  If the layout of the YCbCr is I420
    Calling libyuv::I420AlphaToARGB
  Else
    Fill RGB data converted by ConvertYCbCrToRGB in ARGB buffer first
    Insert the alpha data to ARGB buffer

On the other hand, this patch refactors the nsAVIFDecoder a bit to make
the lifetime of the parsed data and decoded image data clearer. They
won't live longer than Parser object and {Dav1d, AOM}Decoder object.
This should improve the code readability.

This patch also adds a transparent image test (TransparentAVIFTestCase)
to check the FLAG_HAS_TRANSPARENCY is posted or not. The test image file
`transparent.avif` is from Bug 1654462.

Differential Revision: https://phabricator.services.mozilla.com/D98951
2020-12-16 01:27:14 +00:00
Razvan Maries ad08fd8438 Backed out 2 changesets (bug 1669503) for crashing in mozilla::MP3TrackDemuxer::GetNextFrame. a=backout DONTBUILD
Backed out changeset 863ecb9b15d5 (bug 1669503)
Backed out changeset d5cbc458d318 (bug 1669503)
2020-11-06 11:28:35 +02:00
Jean-Yves Avenard f8210c4ae7 Bug 1669503 - Handle mp3 encoder padding when the padding duration spans more than one packet. r=jya
We can't handle this at the decoder level, because the decoder doesn't know that
a particular packet it's seeing is the second to last packet and it should start
trimming the end of this packet because the encoder padding spans multiple
packet.

Differential Revision: https://phabricator.services.mozilla.com/D92645
2020-11-05 14:24:37 +00:00
Bryce Seager van Dyk 4f0219bdf2 Bug 1672188 - MediaData::ConstructPlanarYCbCrData should set color range. r=jya
Differential Revision: https://phabricator.services.mozilla.com/D94109
2020-10-24 05:56:55 +00:00
Matt Woodrow 5487b02f9e Bug 1666055 - Remove RenderTextureHostOGL. r=lsalzman
This interface is never used directly, and the only consumers of the virtual functions are by the derived classes themselves.

Differential Revision: https://phabricator.services.mozilla.com/D93180
2020-10-14 07:58:18 +00:00
Jean-Yves Avenard 2c63e2e5b0 Bug 1648309 - P2. Add RemoteArrayOfByteBuffer and ArrayOfRemoteMediaRawData objects. r=padenot,mjf
Those two objects can be used to pack multiple array of objects into a minimal amount of shmem.

An ArrayOfRemoteByteBuffer will take at most a single shmem and perform a single memory allocation..
Similarly, an ArrayOfMediaRawData will pack multiple MediaRawData in at most 3 shmems (one for each array of bytes a MediaRawData contains).

They are designed to work in combination with a ShmemPool which will own each of the allocated Shmem and so can be re-used over and over.

Differential Revision: https://phabricator.services.mozilla.com/D91537
2020-09-29 04:39:14 +00:00
Paul Adenot 2f461c2326 Bug 1662805 - Replace instantaneous audibility decisions for MediaStream and regular playback with the AudibilityMonitor. r=pehrsons
Depends on D89634

Differential Revision: https://phabricator.services.mozilla.com/D89635
2020-09-15 09:00:57 +00:00
Cristina Coroiu d85babf17b Backed out 5 changesets (bug 1662805) for multiple failures, e.g. bc failures at dom/media/mediacontrol/tests/browser_media_control_non_eligible_media.js on a CLOSED TREE
Backed out changeset 820eb655de3d (bug 1662805)
Backed out changeset 23c90dd335b1 (bug 1662805)
Backed out changeset eff66444dc68 (bug 1662805)
Backed out changeset caeffea29d80 (bug 1662805)
Backed out changeset 2f8f9799d1f3 (bug 1662805)
2020-09-14 14:44:34 +03:00
Paul Adenot f07e869482 Bug 1662805 - Replace instantaneous audibility decisions for MediaStream and regular playback with the AudibilityMonitor. r=pehrsons
Depends on D89634

Differential Revision: https://phabricator.services.mozilla.com/D89635
2020-09-14 09:41:26 +00:00
Lee Salzman 8326780f95 Bug 1652894 - add SWGL RenderTextureHosts. r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D86340
2020-08-12 21:25:17 +00:00
Mihai Alexandru Michis f44ab317a5 Backed out 4 changesets (bug 1652894) for causing multiple reftest failures.
CLOSED TREE

Backed out changeset d6786fcf717b (bug 1652894)
Backed out changeset 97df16d3b738 (bug 1652894)
Backed out changeset 8a1f8b9e2524 (bug 1652894)
Backed out changeset 96bca5729430 (bug 1652894)
2020-08-12 02:08:28 +03:00
Lee Salzman 75d072859c Bug 1652894 - add SWGL RenderTextureHosts. r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D86340
2020-08-11 15:53:15 +00:00
Csoregi Natalia cc057fb442 Backed out 4 changesets (bug 1652894) for texture related crashes. CLOSED TREE
Backed out changeset 714ad1b01cb2 (bug 1652894)
Backed out changeset e3b4753fd09c (bug 1652894)
Backed out changeset 8abaf47071d8 (bug 1652894)
Backed out changeset 175df7659c3f (bug 1652894)
2020-08-11 15:50:07 +03:00
Lee Salzman 6b4a081f33 Bug 1652894 - add SWGL RenderTextureHosts. r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D86340
2020-08-11 07:38:10 +00:00
Csoregi Natalia 555c643104 Backed out 4 changesets (bug 1652894) for bustages on RenderThread.cpp. CLOSED TREE
Backed out changeset 0e0107226c9e (bug 1652894)
Backed out changeset ff5e4bffb497 (bug 1652894)
Backed out changeset 2e4c7cced692 (bug 1652894)
Backed out changeset a8b850455c90 (bug 1652894)
2020-08-11 08:52:47 +03:00
Lee Salzman 385e5cc6c6 Bug 1652894 - add SWGL RenderTextureHosts. r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D86340
2020-08-11 05:24:04 +00:00
Simon Giesecke dea5b543db Bug 1653335 - Remove uses of MakeSpan in return statements. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D83812
2020-08-07 07:42:50 +00:00
Matt Woodrow a679ee84cf Bug 1657107 - Use YUV22 format for uploading videos to IOSurfaces instead of NV12. r=mstange
Differential Revision: https://phabricator.services.mozilla.com/D86081
2020-08-06 21:27:46 +00:00
Matt Woodrow 553c2d162d Bug 1653409 - Upload software decoded video directly to IOSurface on OSX. r=mstange
Differential Revision: https://phabricator.services.mozilla.com/D85105
2020-08-04 01:18:14 +00:00
Bryce Seager van Dyk ac666e8dcb Bug 1643375 - Remove VideoData::YCbCrBuffer::Plane::mOffset. r=alwu
Because we store each plane's data pointer we don't need to store a separate
offset, we can just roll that offset into the pointer for that plane.

This helps remove a lot of code where we're not using the offset anyway, and in
the Chromium CDM case we simply roll the offset into our data pointer.

Differential Revision: https://phabricator.services.mozilla.com/D78320
2020-06-11 23:04:55 +00:00
Simon Giesecke 88ead5d627 Bug 1613985 - Use default for equivalent-to-default constructors/destructors in dom/media. r=padenot
Differential Revision: https://phabricator.services.mozilla.com/D65178

--HG--
extra : moz-landing-system : lando
2020-03-04 15:39:20 +00:00
Boris Zbarsky c1c6ce37b3 Bug 1613827. Be more careful with SharedBuffer::Create callsites. r=padenot
Differential Revision: https://phabricator.services.mozilla.com/D61959

--HG--
extra : moz-landing-system : lando
2020-02-11 16:58:33 +00:00
John Lin aeb8b64dbe Bug 1509316 - p1: move composite listening out of VideoData/VideoSink. r=jya,mattwoodrow
On Android, decoded buffers need to be send back to MediaCodec in order to be
rendered and/or recycled. The current mechanism introduced in bug 1299068 only
works for playback(VideoData/VideoSink) but not WebRTC(VideoFrame/VideoOutput).
Move the callback to SurfaceTextureImage because VideoData and VideoFrame both
own that when using MediaCodec, and move the notification to VideoFrameContainer
for both VideoSink and VideoOutput pass frames there for compositing.

Differential Revision: https://phabricator.services.mozilla.com/D45771

--HG--
extra : moz-landing-system : lando
2019-10-09 23:08:12 +00:00
Dorel Luca c18b81f79f Backed out 3 changesets (bug 1509316) for MDA failures on dom/media/tests/mochitest/test_peerConnection_captureStream_canvas_2d.html
Backed out changeset d64c35b9c211 (bug 1509316)
Backed out changeset 817f14af91f0 (bug 1509316)
Backed out changeset b4bee18bb499 (bug 1509316)
2019-09-27 23:31:51 +03:00
John Lin 01cc36b53b Bug 1509316 - p1: move composite listening out of VideoData/VideoSink. r=jya,mattwoodrow
On Android, decoded buffers need to be send back to MediaCodec in order to be
rendered and/or recycled. The current mechanism introduced in bug 1299068 only
works for playback(VideoData/VideoSink) but not WebRTC(VideoFrame/VideoOutput).
Move the callback to SurfaceTextureImage because VideoData and VideoFrame both
own that when using MediaCodec, and move the notification to VideoFrameContainer
for both VideoSink and VideoOutput pass frames there for compositing.

Differential Revision: https://phabricator.services.mozilla.com/D45771

--HG--
extra : moz-landing-system : lando
2019-09-27 03:01:49 +00:00
Jean-Yves Avenard 577b826128 Bug 1543359 - P13. Let the video decoder determines the default colorspace if unknown. r=mattwoodrow
When unknown, we rely on the picture height and assume that anything less than 720p is 601 and 709 otherwise. It's not perfect but it's the best we can do.

Differential Revision: https://phabricator.services.mozilla.com/D39275

--HG--
extra : moz-landing-system : lando
2019-07-26 08:45:39 +00:00
Narcis Beleuzu e84980d8b1 Backed out 15 changesets (bug 1543359) for wrench bustages on image.rs . CLOSED TREE
Backed out changeset 548006270186 (bug 1543359)
Backed out changeset c9585e9d9f3c (bug 1543359)
Backed out changeset 1c7ca95a2a9b (bug 1543359)
Backed out changeset d742d80b892f (bug 1543359)
Backed out changeset 210eee703fd9 (bug 1543359)
Backed out changeset 4eb933d55d88 (bug 1543359)
Backed out changeset fb9b71ed9f4b (bug 1543359)
Backed out changeset 98b968443458 (bug 1543359)
Backed out changeset a85bd4691bea (bug 1543359)
Backed out changeset b576317853e9 (bug 1543359)
Backed out changeset 095bca5c9b1a (bug 1543359)
Backed out changeset 48eb0ebf9f2e (bug 1543359)
Backed out changeset b22b0eb708b8 (bug 1543359)
Backed out changeset 52187d9320b1 (bug 1543359)
Backed out changeset fa6792c1c2e8 (bug 1543359)
2019-07-26 11:40:33 +03:00
Jean-Yves Avenard d6adb6b604 Bug 1543359 - P13. Let the video decoder determines the default colorspace if unknown. r=mattwoodrow
When unknown, we rely on the picture height and assume that anything less than 720p is 601 and 709 otherwise. It's not perfect but it's the best we can do.

Differential Revision: https://phabricator.services.mozilla.com/D39275

--HG--
extra : moz-landing-system : lando
2019-07-26 06:14:30 +00:00
Cosmin Sabou ae7e8fbf55 Backed out 14 changesets (bug 1543359) for causing build bustages. CLOSED TREE
Backed out changeset 87c99ef85813 (bug 1543359)
Backed out changeset cd0afc5758ba (bug 1543359)
Backed out changeset 101ac87ff017 (bug 1543359)
Backed out changeset 348e748e3451 (bug 1543359)
Backed out changeset d9e937f5caf4 (bug 1543359)
Backed out changeset 2f4eb6501552 (bug 1543359)
Backed out changeset 0d316ef8c668 (bug 1543359)
Backed out changeset bf238b58c694 (bug 1543359)
Backed out changeset 496f206d03d6 (bug 1543359)
Backed out changeset 7c3a1f23baa8 (bug 1543359)
Backed out changeset 90fff717198b (bug 1543359)
Backed out changeset b2ce591ca398 (bug 1543359)
Backed out changeset a63968f077e3 (bug 1543359)
Backed out changeset ca660ab1e0c1 (bug 1543359)
2019-07-26 07:39:11 +03:00
Jean-Yves Avenard 84900ae6ff Bug 1543359 - P13. Let the video decoder determines the default colorspace if unknown. r=mattwoodrow
When unknown, we rely on the picture height and assume that anything less than 720p is 601 and 709 otherwise. It's not perfect but it's the best we can do.

Differential Revision: https://phabricator.services.mozilla.com/D39275

--HG--
extra : moz-landing-system : lando
2019-07-26 04:26:56 +00:00
sotaro e615d8edf3 Bug 1557257 - Rename KnowsCompositor* aForwarder to aKnowsCompositor r=nical
Differential Revision: https://phabricator.services.mozilla.com/D33928

--HG--
extra : moz-landing-system : lando
2019-06-07 12:27:05 +00:00
Markus Stange da2dce5cff Bug 1544478 - Respect SharedRGBImage's stride during YUV->RGBA conversion. r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D27600

--HG--
extra : moz-landing-system : lando
2019-04-16 17:02:59 +00:00
Alastor Wu f076a8ece9 Bug 1540740 - part2 : using TimeUnit as input parameter for 'AdjustForStartTime()'. r=jya
There is no need to cast to `TimeUnit` to `int64` and then cast to `TimeUnit` again.

Differential Revision: https://phabricator.services.mozilla.com/D26758

--HG--
extra : moz-landing-system : lando
2019-04-11 17:32:54 +00:00
alwu aebb6d8617 Bug 1540740 - part1 : let the return value of 'AdjustForStartTime()' to tell whether the adjustment is succeeded r=jya
Now the caller of `AdjustForStartTime()` should check the return value to know whether the adjustment is succeeded.

If the error happens the caller should handle it and return an error.

Differential Revision: https://phabricator.services.mozilla.com/D26756

--HG--
extra : moz-landing-system : lando
2019-04-11 20:43:00 +00:00
Bryce Van Dyk e8c6250244 Bug 1542539 - MediaData::ValidateBufferAndPicture warns on 0 by 0 dimension data instead of asserting. r=jya
Warn instead of asserting since it's possible for decoders to give us 0 by 0
frames here.

Differential Revision: https://phabricator.services.mozilla.com/D26612

--HG--
extra : moz-landing-system : lando
2019-04-09 09:56:13 +00:00
Ryan Hunt 00e98538aa Bug 1523969 part 6 - Move method definition inline comments to new line in 'dom/'. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D21106

--HG--
extra : rebase_source : ea3f51c2c11247114deccbc86e90fb02b8a97257
2019-02-25 16:05:29 -06:00
Jean-Yves Avenard 85e13542f9 Bug 1531286 - Temporarily make an error a strong assertion to determine the root cause of various crashes. r=padenot
Differential Revision: https://phabricator.services.mozilla.com/D21513

--HG--
extra : moz-landing-system : lando
2019-02-28 11:18:18 +00:00
Jean-Yves Avenard dc992b8658 Bug 1530322 - Abort trim if an overflow occurred during earlier time calculation. r=padenot
Differential Revision: https://phabricator.services.mozilla.com/D21209

--HG--
extra : moz-landing-system : lando
2019-02-26 17:32:54 +00:00
Jean-Yves Avenard 04019bde46 Bug 1530322 - P3. Add temporary diagnostics. r=gerald
Differential Revision: https://phabricator.services.mozilla.com/D21173

--HG--
extra : moz-landing-system : lando
2019-02-26 09:10:04 +00:00
Narcis Beleuzu 06e372323d Backed out 3 changesets (bug 1530322) for bustages on Assertions.h . CLOSED TREE
Backed out changeset 65870fec6eea (bug 1530322)
Backed out changeset d5159dfc6d86 (bug 1530322)
Backed out changeset 68fd0947b767 (bug 1530322)
2019-02-26 09:39:14 +02:00
Jean-Yves Avenard 120c38f502 Bug 1530322 - P3. Add diagnostics. r=gerald
Depends on D21172

Differential Revision: https://phabricator.services.mozilla.com/D21173

--HG--
extra : moz-landing-system : lando
2019-02-26 06:39:57 +00:00
Jean-Yves Avenard 68176b56c7 Bug 1524890 - P13. [MSE] Mark frames as truncated when needed. r=bryce
There's two cases to handle.
1- A Frame isn't entirely contained between appendWindowStart and appendWindowEnd
2- A new frame is appended which overlaps partially an existing frame.

To achieve this we tweak the start time and duration of the sample added (case 1), or the frame about to be partially covered (case 2). We then set a flag that will indicate to the decoder that the decompressed frame will have to be truncated.

Differential Revision: https://phabricator.services.mozilla.com/D20172

--HG--
extra : moz-landing-system : lando
2019-02-22 09:21:05 +00:00
Jean-Yves Avenard 4377bd3b8b Bug 1524890 - P11. Remove duration from AudioData construction parameter. r=bryce
It can be determined from the size of the buffer and the number of audio frames. Additionally, it ensures that the duration of the frame is always exactly what the AudioData contains.

Differential Revision: https://phabricator.services.mozilla.com/D20170

--HG--
extra : moz-landing-system : lando
2019-02-22 09:19:47 +00:00
Jean-Yves Avenard ca21a59533 Bug 1524890 - P10. Add AudioData::SetTrimWindow. r=bryce
Don't re-create a new trimmed AudioData when we want to remove some content. This remove the need for some copies.

Differential Revision: https://phabricator.services.mozilla.com/D20168

--HG--
extra : moz-landing-system : lando
2019-02-22 09:19:32 +00:00
Jean-Yves Avenard dd3c534de5 Bug 1524890 - P6. Remove mFrames member from MediaData. r=bryce
The number of frames is only meaningful with audio as a VideoData always contain a single frame.
So we only have this member in AudioData, which will simplify the logic in a future commit where the number of frames present depends on the trimming filter applied.

Differential Revision: https://phabricator.services.mozilla.com/D20164

--HG--
extra : moz-landing-system : lando
2019-02-22 09:18:33 +00:00