Commit Graph

15730 Commits

Author SHA1 Message Date
Andreas Pehrson
35b3d95480 Bug 1014393 - Unify MediaRecorder session shutdown paths and fix event timing when stopping per spec. r=bryce
Differential Revision: https://phabricator.services.mozilla.com/D17814

--HG--
extra : moz-landing-system : lando
2019-08-01 08:48:23 +00:00
Andreas Pehrson
243ffff1f1 Bug 1014393 - Remove MediaRecorder::GetParentObject. r=bryce
Differential Revision: https://phabricator.services.mozilla.com/D35308

--HG--
extra : moz-landing-system : lando
2019-08-01 08:48:16 +00:00
Andreas Pehrson
ab728319e1 Bug 1014393 - Remove MediaRecorder::Session::PushBlobRunnable. r=bryce
This moves the impl of PushBlobRunnable from a runnable to MozPromise, which
let's us more easily modularize it's parts (gather the blob, fire dataavailable)
to make individual code paths more explicit.

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

--HG--
extra : moz-landing-system : lando
2019-08-01 08:48:09 +00:00
Andreas Pehrson
e77851418e Bug 1014393 - Add gtests for the standalone muxer. r=bryce
Differential Revision: https://phabricator.services.mozilla.com/D35307

--HG--
extra : moz-landing-system : lando
2019-08-01 08:48:07 +00:00
Andreas Pehrson
3fdfbbebfb Bug 1014393 - Break out muxing and queueing of track data from MediaEncoder to new Muxer class. r=bryce
This first of all does some refactoring of how metadata is encoded in
MediaEncoder. This is now guided by the new Muxer class. If we're ready to pass
data to the muxer and it does not have metadata yet, we provide metadata before
giving it any media data. This metadata is passed to the muxer in a single call.
The metadata provided in this call must stay valid for the entire recording.
This removes MediaEncoder::GetEncodedMetadata().

This also removes the ctor argument from the WebMWriter since it can now rely on
the single SetMetadata() instead.
To comply with the ContainerWriter::SetMetadata() docs,
WebMWriter::SetMetadata() will now also sanity check metadata.

ContainerWriter instances are updated somewhat, to accommodate these changes.

Lastly, and most important, the new Muxer class manages muxing of the (up to)
two tracks into a single container, ensuring that timestamps increase
monotonically throughout a recording.

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

--HG--
extra : moz-landing-system : lando
2019-08-01 08:48:05 +00:00
Bryce Van Dyk
5bc9634dd0 Bug 1014393 - Move AudioGenerator to its own files so it can be used in more media gtests. r=pehrsons
Differential Revision: https://phabricator.services.mozilla.com/D35389

--HG--
extra : moz-landing-system : lando
2019-08-01 08:47:58 +00:00
Bryce Van Dyk
43248dc436 Bug 1014393 - MediaEncoder better orders frames passed to the muxer. r=pehrsons
Update MediaEncoder to pass frames to the muxer in order of their time stamps.
This should prevent the currently possible scenario where audio and video
frames are written with non-monotonically increasing timestamps (in violation
of the webm spec).

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

--HG--
extra : moz-landing-system : lando
2019-08-01 08:47:56 +00:00
Bryce Van Dyk
3709f83504 Bug 1014393 - Use MediaQueue to store frames pending write to muxer in MediaEncoder. r=pehrsons
MediaQueue provides a better interface for interleaving frames when writing to
the muxer (this change will follow in another changeset). The queue interface
provides a nicer abstraction than manually managing a nsTArray.

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

--HG--
extra : moz-landing-system : lando
2019-08-01 08:47:54 +00:00
Bryce Van Dyk
30807b0d9c Bug 1014393 - Update EncodedFrame class to more closely resemble MediaData class. r=pehrsons
This changes EncodedFrame to behave more like MediaData, so that EncodedFrame
can be used with the MediaQueue data structure. It also provides a somewhat
more consistent interface across media data types.

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

--HG--
extra : moz-landing-system : lando
2019-08-01 08:47:52 +00:00
Bryce Van Dyk
8153763cf9 Bug 1014393 - Shift responsibility of adjusting packets with opus codec delay to MediaEncoder. r=pehrsons
Move the responsibility of adjusting opus frame timestamps to the MediaEncoder.
This was previously done by the EbmlComposer, but doing so in the MediaEncoder
means we can have greater control over handling of time codes and interleaving
of frames.

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

--HG--
extra : moz-landing-system : lando
2019-08-01 08:47:51 +00:00
Bryce Van Dyk
bb260c1a1f Bug 1014393 - Remove EncodedFrameContainer. r=pehrsons
Remove EncodedFrameContainer and clean up areas where it was used.
EncodedFrameContainer provided a wrapper around an
nsTArray<RefPtr<EncodedFrame>>, but it simplifies the code to simply expose
this array. Also clean up unused enums in EncodedFrame, and clean up some of
the outdated comments for our encoded frame handling.

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

--HG--
rename : dom/media/encoder/EncodedFrameContainer.h => dom/media/encoder/EncodedFrame.h
extra : moz-landing-system : lando
2019-08-01 08:47:49 +00:00
Bryce Van Dyk
12d9da22ba Bug 1014393 - Separate MediaEncoders encode and mux steps. r=pehrsons
Separating the encode and mux steps allows for better control over interleaving
audio and video data. If encode and mux are done in a single step it's possible
to mux large amounts of audio or video data which should have been interleaved
with the other data type to give correctly ordered time stamps in the target
container.

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

--HG--
extra : moz-landing-system : lando
2019-08-01 08:47:47 +00:00
Gurzau Raul
bcc3fa9613 Backed out 15 changesets (bug 1014393) for build bustage at TestMuxer.cpp on a CLOSED TREE.
Backed out changeset e6d834f3786e (bug 1014393)
Backed out changeset 2d880ea6e67c (bug 1014393)
Backed out changeset 9a087b7459cc (bug 1014393)
Backed out changeset 0dd76879ff03 (bug 1014393)
Backed out changeset b88188e0d590 (bug 1014393)
Backed out changeset 24f244ea8fff (bug 1014393)
Backed out changeset 0e85d193f8ff (bug 1014393)
Backed out changeset 12f932aeb3e9 (bug 1014393)
Backed out changeset 8bcbc931942b (bug 1014393)
Backed out changeset a16bcc633362 (bug 1014393)
Backed out changeset bf46f2a2e519 (bug 1014393)
Backed out changeset aa508d83a2c3 (bug 1014393)
Backed out changeset 085fb3e97aaa (bug 1014393)
Backed out changeset e872361b9f3b (bug 1014393)
Backed out changeset b4fb228c8624 (bug 1014393)

--HG--
rename : dom/media/encoder/EncodedFrame.h => dom/media/encoder/EncodedFrameContainer.h
2019-07-31 23:28:47 +03:00
Dan Minor
97c5db53eb Bug 1561923 - Remove expired WebRTC telemetry; r=drno,bwc
Differential Revision: https://phabricator.services.mozilla.com/D37757

--HG--
extra : moz-landing-system : lando
2019-07-31 19:57:55 +00:00
Andreas Pehrson
e69b4c4e72 Bug 1499572 - Use default keyframe interval when no timeslice (aka 0) was passed. r=bryce
Differential Revision: https://phabricator.services.mozilla.com/D40043

--HG--
extra : moz-landing-system : lando
2019-07-31 15:37:27 +00:00
Andreas Pehrson
0123e701dd Bug 1014393 - Use undef-after-def pattern in MediaRecorder and related files. r=bryce
Differential Revision: https://phabricator.services.mozilla.com/D37700

--HG--
extra : moz-landing-system : lando
2019-07-31 11:30:26 +00:00
Andreas Pehrson
b6a479c75e Bug 1014393 - Minor mochitest fixes. r=jib
Differential Revision: https://phabricator.services.mozilla.com/D35311

--HG--
extra : moz-landing-system : lando
2019-07-31 11:30:11 +00:00
Andreas Pehrson
da4fea8db5 Bug 1014393 - Unify MediaRecorder session shutdown paths and fix event timing when stopping per spec. r=bryce
Differential Revision: https://phabricator.services.mozilla.com/D17814

--HG--
extra : moz-landing-system : lando
2019-07-31 11:30:01 +00:00
Andreas Pehrson
b0373ad9e6 Bug 1014393 - Remove MediaRecorder::GetParentObject. r=bryce
Differential Revision: https://phabricator.services.mozilla.com/D35308

--HG--
extra : moz-landing-system : lando
2019-07-31 11:29:54 +00:00
Andreas Pehrson
e8685eab05 Bug 1014393 - Remove MediaRecorder::Session::PushBlobRunnable. r=bryce
This moves the impl of PushBlobRunnable from a runnable to MozPromise, which
let's us more easily modularize it's parts (gather the blob, fire dataavailable)
to make individual code paths more explicit.

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

--HG--
extra : moz-landing-system : lando
2019-07-31 11:29:47 +00:00
Andreas Pehrson
e22277134b Bug 1014393 - Add gtests for the standalone muxer. r=bryce
Differential Revision: https://phabricator.services.mozilla.com/D35307

--HG--
extra : moz-landing-system : lando
2019-07-31 11:29:37 +00:00
Andreas Pehrson
de0e63f0ea Bug 1014393 - Break out muxing and queueing of track data from MediaEncoder to new Muxer class. r=bryce
This first of all does some refactoring of how metadata is encoded in
MediaEncoder. This is now guided by the new Muxer class. If we're ready to pass
data to the muxer and it does not have metadata yet, we provide metadata before
giving it any media data. This metadata is passed to the muxer in a single call.
The metadata provided in this call must stay valid for the entire recording.
This removes MediaEncoder::GetEncodedMetadata().

This also removes the ctor argument from the WebMWriter since it can now rely on
the single SetMetadata() instead.
To comply with the ContainerWriter::SetMetadata() docs,
WebMWriter::SetMetadata() will now also sanity check metadata.

ContainerWriter instances are updated somewhat, to accommodate these changes.

Lastly, and most important, the new Muxer class manages muxing of the (up to)
two tracks into a single container, ensuring that timestamps increase
monotonically throughout a recording.

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

--HG--
extra : moz-landing-system : lando
2019-07-31 11:29:34 +00:00
Bryce Van Dyk
152dffdfc5 Bug 1014393 - Move AudioGenerator to its own files so it can be used in more media gtests. r=pehrsons
Differential Revision: https://phabricator.services.mozilla.com/D35389

--HG--
extra : moz-landing-system : lando
2019-07-31 11:29:24 +00:00
Bryce Van Dyk
3218ee4ded Bug 1014393 - MediaEncoder better orders frames passed to the muxer. r=pehrsons
Update MediaEncoder to pass frames to the muxer in order of their time stamps.
This should prevent the currently possible scenario where audio and video
frames are written with non-monotonically increasing timestamps (in violation
of the webm spec).

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

--HG--
extra : moz-landing-system : lando
2019-07-31 11:29:22 +00:00
Bryce Van Dyk
3ffe22391b Bug 1014393 - Use MediaQueue to store frames pending write to muxer in MediaEncoder. r=pehrsons
MediaQueue provides a better interface for interleaving frames when writing to
the muxer (this change will follow in another changeset). The queue interface
provides a nicer abstraction than manually managing a nsTArray.

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

--HG--
extra : moz-landing-system : lando
2019-07-31 11:29:15 +00:00
Bryce Van Dyk
472dabf14c Bug 1014393 - Update EncodedFrame class to more closely resemble MediaData class. r=pehrsons
This changes EncodedFrame to behave more like MediaData, so that EncodedFrame
can be used with the MediaQueue data structure. It also provides a somewhat
more consistent interface across media data types.

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

--HG--
extra : moz-landing-system : lando
2019-07-31 11:29:07 +00:00
Bryce Van Dyk
7ad3574edc Bug 1014393 - Shift responsibility of adjusting packets with opus codec delay to MediaEncoder. r=pehrsons
Move the responsibility of adjusting opus frame timestamps to the MediaEncoder.
This was previously done by the EbmlComposer, but doing so in the MediaEncoder
means we can have greater control over handling of time codes and interleaving
of frames.

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

--HG--
extra : moz-landing-system : lando
2019-07-31 11:29:00 +00:00
Bryce Van Dyk
22b3ebdfe5 Bug 1014393 - Remove EncodedFrameContainer. r=pehrsons
Remove EncodedFrameContainer and clean up areas where it was used.
EncodedFrameContainer provided a wrapper around an
nsTArray<RefPtr<EncodedFrame>>, but it simplifies the code to simply expose
this array. Also clean up unused enums in EncodedFrame, and clean up some of
the outdated comments for our encoded frame handling.

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

--HG--
rename : dom/media/encoder/EncodedFrameContainer.h => dom/media/encoder/EncodedFrame.h
extra : moz-landing-system : lando
2019-07-31 11:28:53 +00:00
Bryce Van Dyk
9eba1b4c92 Bug 1014393 - Separate MediaEncoders encode and mux steps. r=pehrsons
Separating the encode and mux steps allows for better control over interleaving
audio and video data. If encode and mux are done in a single step it's possible
to mux large amounts of audio or video data which should have been interleaved
with the other data type to give correctly ordered time stamps in the target
container.

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

--HG--
extra : moz-landing-system : lando
2019-07-31 11:28:46 +00:00
Edwin Gao
d6127aa0c2 Bug 1561046 - remove API 22 from manifest files r=gbrown
Changes:
- remove references to API 22 from manifests

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

--HG--
extra : moz-landing-system : lando
2019-07-31 17:38:39 +00:00
Andreas Pehrson
b2dd965a2d Bug 1493613 - Remove TracksCreatedListener. r=padenot
It could lead to a ref-cycle leak if it was added as listener to a
MediaStreamTrack but the underlying track in the graph was never created, so
that the TracksCreatedListener never received NotifyOutput or NotifyRemoved
events.

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

--HG--
extra : moz-landing-system : lando
2019-07-30 14:56:19 +00:00
Andreas Pehrson
4b3fa9c67e Bug 1493613 - Move MediaStream control from DOMMediaStream to MediaStreamTrack. r=padenot
This is inherently large, because modifying these bits of DOMMediaStream and
MediaStreamTrack affects all consumers and producers of all DOMMediaStreams and
MediaStreamTracks.

Things are generally much simpler now.

Producers of tracks now create a MediaStream in the graph, add it to a
MediaStreamTrackSource subclass that takes ownership of it, and add the source
to a MediaStreamTrack. Should the producer need a DOMMediaStream it is now much
simpler to create as the only thing needed is the current window. The stream is
a rather simple wrapper around an array of MediaStreamTracks.

HTMLMediaElement is still not as straight forward as other consumers since it
consumes the DOMMediaStream directly, as opposed to a set of tracks.
The new MediaStreamRenderer helper class helps bridge the gap between this fact
and the new track-based MediaStreamGraph interface, as it needs to juggle
registering multiple audio tracks for audio output. This hooks into existing
HTMLMediaElement logic and brings a welcome simplification to all the glue
previously needed there.

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

--HG--
extra : moz-landing-system : lando
2019-07-31 07:58:17 +00:00
Andreas Pehrson
719dfe4ede Bug 1493613 - Update muted state through MediaStreamTrackSource. r=bwc,smaug
This ensures all clones of the original track also receives the new muted state.

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

--HG--
extra : moz-landing-system : lando
2019-07-31 09:35:06 +00:00
Andreas Pehrson
dc0cfa8bb6 Bug 1493613 - Clear mUpdateTracks in DestroyImpl to avoid leaking image buffers until CC shutdown. r=padenot
Normally a track in mUpdateTracks is cleared by ExtractPendingInput, when that
track's ending is processed. However, if the SourceMediaStream is destroyed
before an ended track is processed, the track including it's buffered segment
in mUpdateTracks will leak until the SourceMediaStream is destroyed.

This might not be until late XPCOM Shutdown when the cycle collector shuts down,
which is too late to release graphics resources.

Depends on D37931

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

--HG--
extra : moz-landing-system : lando
2019-07-30 14:55:48 +00:00
Andreas Pehrson
82d0f44077 Bug 1493613 - Remove assert that next driver must be non-audio when no audio tracks are present. r=padenot
A legit case that fails this assert is:
- CloseAudioInput() on main thread for last non-webaudio MediaStream
- AudioContext closes on main thread
- CloseAudioInputImpl() on graph thread sets next driver to an output-only audio
  driver since there are AudioNodeStreams still present
- AudioContext's Close operation is applied on graph thread, first all
  AudioNodeStreams are suspended, making the graph consider itself as having no
  audio tracks present. Then we check the next driver, which is an audio driver
  per above. This fails the assert.

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

--HG--
extra : moz-landing-system : lando
2019-07-30 14:55:30 +00:00
Andreas Pehrson
10202bfc64 Bug 1561254 - Support groupId in constraints. r=achronop,jib,smaug
Differential Revision: https://phabricator.services.mozilla.com/D37692

--HG--
extra : moz-landing-system : lando
2019-07-30 16:28:44 +00:00
Paul Adenot
834e954d9f Bug 1570015 - Fix test_waveShaperGain.html by placing the <pre> tag before the script. r=pehrsons
Differential Revision: https://phabricator.services.mozilla.com/D39893

--HG--
extra : moz-landing-system : lando
2019-07-30 16:41:15 +00:00
Paul Adenot
65d954a3e5 Bug 1568182 - Rename variables in AudioCallbackDriver::Init to adhere to the style guide.
Differential Revision: https://phabricator.services.mozilla.com/D39674

--HG--
extra : moz-landing-system : lando
2019-07-29 12:50:44 +00:00
Paul Adenot
f8f68410c1 Bug 1568182 - Pick audio latencies depending on the use case on OSX. r=pehrsons
Voice get a bit more than 10ms latency, because it's being packetized in 10ms
chunks in webrtc land.

Other input device use lower latency, that can help for musical applications.

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

--HG--
extra : moz-landing-system : lando
2019-07-29 12:50:39 +00:00
Tom Ritter
334edd038c Bug 1563774 - Enable Binary Signature Policy on the RDD process r=bobowen
To do this, we preload the AV libraries. They may not be needed right now,
but by doing this now we ensure that future RDD work won't mysteriously
fail during development for some poor coworker.

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

--HG--
extra : moz-landing-system : lando
2019-07-23 17:49:55 +00:00
Kannan Vijayan
3fb6190ec6 Bug 1559414 - Rename unaudited pre-fission methods with SameProcess for future audit burndown. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D39378

--HG--
extra : moz-landing-system : lando
2019-07-26 16:48:31 +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
Jean-Yves Avenard
b14a14b66a Bug 1543359 - P8. Fill YUV color range information with decoders. r=bryce
Differential Revision: https://phabricator.services.mozilla.com/D27239

--HG--
extra : moz-landing-system : lando
2019-07-26 08:45:28 +00:00
Jean-Yves Avenard
c4def0fb6f Bug 1543359 - P7. Plumb YUV Color Range info in Windows' Image types. r=mattwoodrow
Still non-functional.

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

--HG--
extra : moz-landing-system : lando
2019-07-26 08:45:30 +00:00
Jean-Yves Avenard
bbb33d6106 Bug 1543359 - P4. Add YUV Full Range info to AppleVTDecoder. r=bryce
Differential Revision: https://phabricator.services.mozilla.com/D27212

--HG--
extra : moz-landing-system : lando
2019-07-26 08:45:33 +00:00
Jean-Yves Avenard
bb8acbc1f9 Bug 1543359 - P1. Add mColorRange info to YCbCrBufferData. r=bryce
Differential Revision: https://phabricator.services.mozilla.com/D27210

--HG--
extra : moz-landing-system : lando
2019-07-26 08:45:37 +00:00
Jean-Yves Avenard
e41290cb09 Bug 1543359 - P0. Make video range info an enum. r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D29639

--HG--
extra : moz-landing-system : lando
2019-07-26 08:45:22 +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
Jean-Yves Avenard
a9add66f0b Bug 1543359 - P8. Fill YUV color range information with decoders. r=bryce
Differential Revision: https://phabricator.services.mozilla.com/D27239

--HG--
extra : moz-landing-system : lando
2019-07-26 06:13:52 +00:00
Jean-Yves Avenard
e6eb3464df Bug 1543359 - P7. Plumb YUV Color Range info in Windows' Image types. r=mattwoodrow
Still non-functional.

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

--HG--
extra : moz-landing-system : lando
2019-07-26 06:13:44 +00:00
Jean-Yves Avenard
216eed81e9 Bug 1543359 - P4. Add YUV Full Range info to AppleVTDecoder. r=bryce
Differential Revision: https://phabricator.services.mozilla.com/D27212

--HG--
extra : moz-landing-system : lando
2019-07-26 06:13:18 +00:00
Jean-Yves Avenard
b7d2623f93 Bug 1543359 - P1. Add mColorRange info to YCbCrBufferData. r=bryce
Differential Revision: https://phabricator.services.mozilla.com/D27210

--HG--
extra : moz-landing-system : lando
2019-07-26 06:10:37 +00:00
Jean-Yves Avenard
4ea329b749 Bug 1543359 - P0. Make video range info an enum. r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D29639

--HG--
extra : moz-landing-system : lando
2019-07-26 06:10: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
Jean-Yves Avenard
c0a6061c31 Bug 1543359 - P8. Fill YUV color range information with decoders. r=bryce
Differential Revision: https://phabricator.services.mozilla.com/D27239

--HG--
extra : moz-landing-system : lando
2019-07-22 07:27:35 +00:00
Jean-Yves Avenard
9d741696fe Bug 1543359 - P7. Plumb YUV Color Range info in Windows' Image types. r=mattwoodrow
Still non-functional.

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

--HG--
extra : moz-landing-system : lando
2019-07-22 08:04:54 +00:00
Jean-Yves Avenard
e2585407f3 Bug 1543359 - P4. Add YUV Full Range info to AppleVTDecoder. r=bryce
Differential Revision: https://phabricator.services.mozilla.com/D27212

--HG--
extra : moz-landing-system : lando
2019-07-22 07:25:14 +00:00
Jean-Yves Avenard
ad13a81d3e Bug 1543359 - P1. Add mColorRange info to YCbCrBufferData. r=bryce
Differential Revision: https://phabricator.services.mozilla.com/D27210

--HG--
extra : moz-landing-system : lando
2019-07-22 07:24:09 +00:00
Jean-Yves Avenard
9871202958 Bug 1543359 - P0. Make video range info an enum. r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D29639

--HG--
extra : moz-landing-system : lando
2019-07-13 03:25:18 +00:00
Nicholas Nethercote
18fae65f38 Bug 1563139 - Remove StaticPrefs.h. r=glandium
This requires replacing inclusions of it with inclusions of more specific prefs
files.

The exception is that StaticPrefsAll.h, which is equivalent to StaticPrefs.h,
and is used in `Codegen.py` because doing something smarter is tricky and
suitable for a follow-up. As a result, any change to StaticPrefList.yaml will
still trigger recompilation of all the generated DOM bindings files, but that's
still a big improvement over trigger recompilation of every file that uses
static prefs.

Most of the changes in this commit are very boring. The only changes that are
not boring are modules/libpref/*, Codegen.py, and ServoBindings.toml.

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

--HG--
extra : moz-landing-system : lando
2019-07-26 01:10:23 +00:00
Ryan Alderete
992406dcb2 Bug 1506219 - Use a known remote for applications loaded from file:// URIs r=bwc
Fall back to using Google's DNS server to determine the associated local
addresses for web applications that are not loaded over the network.  This
includes the loopback address, which is frequently used in the unit tests.

Provide a separate function for setting the target for the default local
address lookup.

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

--HG--
extra : moz-landing-system : lando
2019-07-24 21:58:33 +00:00
Ryan Alderete
cd13ca2e02 Bug 1506219 - Update default route according to latest IETF draft r=bwc
draft-ietf-rtcweb-ip-handling specifies that the default route is the route
used to reach the origin rather than the one used to reach the internet, so
update the IP routing to reflect this.  This addresses issues in which the
wrong IP address is used on machines with multiple network interfaces.

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

--HG--
extra : moz-landing-system : lando
2019-07-24 19:50:46 +00:00
Noemi Erli
6fc91e697b Backed out changeset 043b8e2042b8 (bug 1562910) for bustages in RemoteAudioDecoder.cpp CLOSED TREE 2019-07-26 00:33:07 +03:00
Michael Froman
705b5ce214 Bug 1562910 - Use ShmemPool to reduce shmem thrashing in RDD audio decoding. r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D36611

--HG--
extra : moz-landing-system : lando
2019-07-25 20:01:49 +00:00
alwu
bdbe1ab086 Bug 1566066 - part2 : add 'empty_size.mp3' to playback test. r=jya
Differential Revision: https://phabricator.services.mozilla.com/D39253

--HG--
extra : moz-landing-system : lando
2019-07-25 11:00:10 +00:00
alwu
0b3d5845c0 Bug 1566066 - part1 : use Maybe to distinguish size 0 and uninitialized value. r=jya
We found there is a mp3 where the size is empty in its ID3 header, which makes mp3 parser think of that we haven't parsed the header yet, and then skip unnecessary bytes again and again.

We should use `Maybe` to know whether we finish parsing the size or not.

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

--HG--
extra : moz-landing-system : lando
2019-07-25 16:49:57 +00:00
Byron Campen [:bwc]
1106701623 Bug 1568639: Re-enable this test on fission. r=jib
Differential Revision: https://phabricator.services.mozilla.com/D39233

--HG--
extra : moz-landing-system : lando
2019-07-25 00:40:45 +00:00
Ciure Andrei
77673dccee Merge mozilla-central to autoland. a=merge CLOSED TREE 2019-07-25 09:28:08 +03:00
Andreea Pavel
e4263c00eb Merge mozilla-inbound to mozilla-central. a=merge 2019-07-25 08:59:39 +03:00
Nicholas Nethercote
cbaaacf6ae Bug 1563139 - Remove StaticPref{s,List}_accessibility.h. r=glandium
These files exist because they were the proof-of-concept first step for
splitting the static prefs header files. Now that those header files can be
generated from a script, we need to move the `accessibility.*` prefs into the
YAML file.

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

--HG--
extra : moz-landing-system : lando
2019-07-25 04:08:14 +00:00
Michael Froman
de0172246c Bug 1568372 - add mutex in RemoteDecoderModule::LaunchRDDProcessIfNeeded. r=jya
This stops a potential race when multiple media playback threads attempt to
launch the RDD process and setup the IPC connections between
RemoteDecoderManager{Child|Parent} at the same time.

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

--HG--
extra : moz-landing-system : lando
2019-07-24 07:02:07 +00:00
Christian Holler
cd7a74b452 Bug 1499041 - Remove libFuzzer flags from ipc/chromium/. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D39165

--HG--
extra : moz-landing-system : lando
2019-07-24 14:13:30 +00:00
Paul Adenot
e7113463d0 Bug 1562626 - Keep a reference to the graph on device change. r=jesup
Differential Revision: https://phabricator.services.mozilla.com/D36580

--HG--
extra : moz-landing-system : lando
2019-07-23 18:49:45 +00:00
Christian Holler
e15fadb7af Bug 1561492 - Check samples per second prior to divide in ADTS. r=jya
Differential Revision: https://phabricator.services.mozilla.com/D38626

--HG--
extra : moz-landing-system : lando
2019-07-23 00:55:50 +00:00
Christian Holler
7c82f0b4d9 Bug 1567441 - Check for invalid rate in FramesToTimeUnit. r=jya
Differential Revision: https://phabricator.services.mozilla.com/D38648

--HG--
extra : moz-landing-system : lando
2019-07-23 00:57:27 +00:00
Jan-Ivar Bruaroey
4e2000dea5 Bug 1567951: Test implicit rollback in SRD(offer). r=bwc
Differential Revision: https://phabricator.services.mozilla.com/D38890

--HG--
extra : moz-landing-system : lando
2019-07-23 20:36:11 +00:00
Jan-Ivar Bruaroey
e8e268ed95 Bug 1567951: Add implicit rollback in setRemoteDescription(offer). r=bwc
Differential Revision: https://phabricator.services.mozilla.com/D38889

--HG--
extra : moz-landing-system : lando
2019-07-23 20:35:58 +00:00
Matthew Gregan
703bd02c00 Bug 1539225 - Pass cubeb backend name to AudioIPC server during init. r=chunmin
Differential Revision: https://phabricator.services.mozilla.com/D37833

--HG--
extra : moz-landing-system : lando
2019-07-23 19:41:37 +00:00
Narcis Beleuzu
5f131d63bd Backed out 2 changesets (bug 1567951) for mda failures on test_peerConnection_setRemoteOfferInHaveLocalOffer.html . CLOSED TREE
Backed out changeset ca95add81105 (bug 1567951)
Backed out changeset 092e24332c39 (bug 1567951)

--HG--
extra : histedit_source : e2768cd60a59cd80528a92bab86d3fe24962cfe8
2019-07-23 23:02:54 +03:00
Jan-Ivar Bruaroey
5bce336f55 Bug 1567951: Add implicit rollback in setRemoteDescription(offer). r=bwc
Differential Revision: https://phabricator.services.mozilla.com/D38889

--HG--
extra : moz-landing-system : lando
2019-07-23 18:07:18 +00:00
Christian Holler
92b529251c Bug 1567444 - Check start and end time validity in AudioTrimmer. r=jya
Differential Revision: https://phabricator.services.mozilla.com/D38652

--HG--
extra : moz-landing-system : lando
2019-07-23 00:55:07 +00:00
Christian Holler
94a51cd279 Bug 1568037 - Check for successful Opus decoder creation. r=jya
Differential Revision: https://phabricator.services.mozilla.com/D38936

--HG--
extra : moz-landing-system : lando
2019-07-23 00:56:44 +00:00
alwu
55e171e76b Bug 1563949 - part5 : return nullptr when time overflow. r=jya
If the result of expected dts/pts after added `fuzz` is overflow, we should return nullptr as if we reach to the end of the file.

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

--HG--
extra : moz-landing-system : lando
2019-07-19 02:16:44 +00:00
alwu
441473d744 Bug 1563949 - part4 : prevent direct usage of 'AppendElement()' to append sample. r=jya
We should always append sample by using `AppendSample()` to assert whether a sample is valid, so making `mSamples` private can prevent a direct usage of the nsTarry's `AppendElement()`.
Also provide a method to return non-const mSamples which is only used for the move semantics.

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

--HG--
extra : moz-landing-system : lando
2019-07-19 21:11:21 +00:00
alwu
44cfc7989a Bug 1563949 - part3 : handle invalid sample in demuxer. r=jya
Return demux error when we get a invalid sample. For mp4 demuxer, we use `MOZ_DIAGNOSTIC_ASSERT` instead because we are pretty sure that it won't happen.

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

--HG--
extra : moz-landing-system : lando
2019-07-19 20:48:15 +00:00
alwu
424b48c982 Bug 1563949 - part2 : add 'AppendSample' to assert that a sample should always be valid r=jya
We don't want to have a sample with invalid time, duration, end time or end timecode, so add a diagnostic assertion to check. And will handle invalid sample for demuxers in next patch.

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

--HG--
extra : moz-landing-system : lando
2019-07-19 20:16:26 +00:00
alwu
7cea87585a Bug 1563949 - part1 : add function 'GetEndTimeCode'. r=jya
We already have function `GetEndTime()`, so it's good to have a similar function `GetEndTimeCode()` so that we won't have to calculate end time code by ourselves.

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

--HG--
extra : moz-landing-system : lando
2019-07-18 11:03:28 +00:00
Ciure Andrei
24c0d0e47d Backed out 2 changesets (bug 1506219) for causing test_presentation_datachannel_sessiontransport.html to perma fail CLOSED TREE
Backed out changeset 7e39db6e12a5 (bug 1506219)
Backed out changeset ab31fbc14a00 (bug 1506219)
2019-07-22 23:54:45 +03:00
Ryan Alderete
14e5b45ecc Bug 1506219 - Use a known remote for applications loaded from file:// URIs r=bwc
Fall back to using Google's DNS server to determine the associated local
addresses for web applications that are not loaded over the network.  This
includes the loopback address, which is frequently used in the unit tests.

Provide a separate function for setting the target for the default local
address lookup.

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

--HG--
extra : moz-landing-system : lando
2019-07-22 15:42:06 +00:00
Ryan Alderete
35bd2662ca Bug 1506219 - Update default route according to latest IETF draft r=bwc
draft-ietf-rtcweb-ip-handling specifies that the default route is the route
used to reach the origin rather than the one used to reach the internet, so
update the IP routing to reflect this.  This addresses issues in which the
wrong IP address is used on machines with multiple network interfaces.

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

--HG--
extra : moz-landing-system : lando
2019-07-22 15:43:12 +00:00
Christian Holler
35c00b8242 Bug 1567442 - Check TrackInfo validity in media benchmark. r=jya
Differential Revision: https://phabricator.services.mozilla.com/D38649

--HG--
extra : moz-landing-system : lando
2019-07-22 09:35:36 +00:00
Kris Maglione
e40b418215 Bug 1566952: Part 2 - Update Fission failure annotations after skipping crashes. r=mccr8
When a test crashes, the harness skips all of the remaining tests in the
directory. That means that with crashes skipped, we now try to run a whole lot
more tests than we did before, and a lot of them fail under Fission.

This patch adds annotations to the new failures that show up after part 1.

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

--HG--
extra : rebase_source : 292157039c88fc615f5de41679e96e72766ac4db
2019-07-19 12:30:10 -07:00
Kris Maglione
4bd4d680d4 Bug 1566952: Part 1 - Annotate mochitests that crash with Fission enabled. r=mccr8
Differential Revision: https://phabricator.services.mozilla.com/D38725

--HG--
extra : rebase_source : 3e8b32b86b12b22d038baa770070a5c8095043c9
2019-07-17 13:37:48 -07:00
Nicholas Nethercote
7974362afd Bug 1567329 - Append _AtStartup to once static pref getters. r=erahm
Currently it's completely unclear at use sites that the getters for `once`
static prefs return the pref value from startup, rather than the current pref
value. (Bugs have been caused by this.) This commit improves things by changing
the getter name to make it clear that the pref value obtained is from startup.

This required changing things within libpref so it distinguishes between the
"base id" (`foo_bar`) and the "full id" (`foo_bar` or
`foo_bar_DoNotUseDirectly` or `foo_bar_AtStartup` or
`foo_bar_AtStartup_DoNotUseDirectly`; the name used depends on the `mirror` and
`do_not_use_directly` values in the YAML definition.) The "full id" is used in
most places, while the "base id" is used for the `GetPrefName_*` and
`GetPrefDefault_*` functions.

(This is a nice demonstration of the benefits of the YAML file, BTW. Making
this change with the old code would have involved adding an entry to every
single pref in StaticPrefList.h.)

The patch also rejigs the comment at the top of StaticPrefList.yaml, to clarify
some things.

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

--HG--
extra : moz-landing-system : lando
2019-07-22 02:10:14 +00:00
Jean-Yves Avenard
a34f058d11 Bug 1561486 - shutdown demuxer early. r=alwu
We don't need the demuxer after we've resolved the promise.

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

--HG--
extra : moz-landing-system : lando
2019-07-10 12:04:50 +00:00
Andreas Pehrson
59a2b619f0 Bug 1565374 - Reset state. r=jib
Differential Revision: https://phabricator.services.mozilla.com/D37784

--HG--
extra : moz-landing-system : lando
2019-07-17 19:57:31 +00:00
Andreas Pehrson
49f7e9bdc2 Bug 1565374 - Improve test. r=jib
Differential Revision: https://phabricator.services.mozilla.com/D37783

--HG--
extra : moz-landing-system : lando
2019-07-17 19:57:30 +00:00
alwu
23c2b98a25 Bug 1565501 - use fallible memory allocation in MediaSpan. r=jya
Use fallible memory allocation in order to avoid the OOM issue.

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

--HG--
extra : moz-landing-system : lando
2019-07-18 11:02:26 +00:00