Commit Graph

643172 Commits

Author SHA1 Message Date
Andreas Pehrson
e57962eea8 Bug 1423253 - Remove durations from VideoSegment::AppendFrame. r=padenot
VideoSegments still have durations, and they are still needed by the
MediaStreamGraph as it shuffles MediaSegments around.
They do not have a say in the wall-clock duration of video frames however.
Removing this should prevent any producers starting to add video chunks with
durations in the future.

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

--HG--
extra : moz-landing-system : lando
2019-03-22 11:43:40 +00:00
Andreas Pehrson
0bb89b2b34 Bug 1423253 - Remove pulling (and mutex) from MediaPipelineReceiveVideo. r=padenot
Differential Revision: https://phabricator.services.mozilla.com/D22912

--HG--
extra : moz-landing-system : lando
2019-03-22 11:43:32 +00:00
Andreas Pehrson
9abc2ffdf4 Bug 1423253 - Remove pulling (and mutex) from the default video source. r=padenot
Differential Revision: https://phabricator.services.mozilla.com/D22911

--HG--
extra : moz-landing-system : lando
2019-03-22 11:43:23 +00:00
Andreas Pehrson
198ca9c5c6 Bug 1423253 - Remove pulling from MediaEngineTabVideoSource and fix thread safety. r=padenot
Differential Revision: https://phabricator.services.mozilla.com/D22910

--HG--
extra : moz-landing-system : lando
2019-03-22 11:43:15 +00:00
Andreas Pehrson
04fb07dce9 Bug 1423253 - Disregard VideoChunk durations in VideoTrackEncoder. r=padenot
Long-term we want to lift durations out of video altogether, and only use
wall-clock timestamps. This patch achieves this in VideoTrackEncoder.

When the MediaStreamGraph is audio-only, the equivalent for video will be
completely duration-less. Until we have that, some pieces around the MSG will
still need durations for track-bookkeeping reasons.

This also integrates the DriftCompensator into VideoTrackEncoder, by
compensating for drift when frames are moved from mIncomingBuffer to
mOutgoingBuffer, i.e., when we recalculate time stamps into durations for the
underlying encoder to use.

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

--HG--
extra : moz-landing-system : lando
2019-03-22 11:43:08 +00:00
Andreas Pehrson
154c803c91 Bug 1423253 - Route MediaEncoder::Suspend/Resume through the graph thread for less drift. r=padenot
Because we sync video frames to audio time before encoding, we suspend and
resume on the audio thread because that's the only place we have acccess to
both clocks at the same time;
- A dispatch to the audio encoder puts the event in the right place in the
  audio encoder buffer.
- TimeStamp::Now() is the current video time, and since we capture it on the
  audio thread these are in sync. This timestamp needs drift compensation too -
  this happens in a later patch on this bug.

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

--HG--
extra : moz-landing-system : lando
2019-03-22 11:42:55 +00:00
Andreas Pehrson
e5ffaa1966 Bug 1423253 - Remove support for direct audio listeners from AudioTrackEncoder. r=padenot
Differential Revision: https://phabricator.services.mozilla.com/D22906

--HG--
extra : moz-landing-system : lando
2019-03-22 11:42:49 +00:00
Andreas Pehrson
3cac7c4765 Bug 1423253 - Automatically progress a pushed video track to avoid blocking its stream. r=padenot
Differential Revision: https://phabricator.services.mozilla.com/D22905

--HG--
extra : moz-landing-system : lando
2019-03-22 11:42:45 +00:00
Andreas Pehrson
097ee23c9e Bug 1423253 - Add drift compensation to MediaEncoder. r=padenot
This plumbs the DriftCompensator into the AudioTrackListener and
VideoTrackEncoder. The VideoTrackEncoder is however only finally integrated in
the future patch "Disregard VideoChunk durations in VideoTrackEncoder".

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

--HG--
extra : moz-landing-system : lando
2019-03-22 11:42:38 +00:00
Andreas Pehrson
a5346ec96d Bug 1423253 - Add a drift compensator to reclock video timestamps. r=padenot
Differential Revision: https://phabricator.services.mozilla.com/D22902

--HG--
extra : moz-landing-system : lando
2019-03-22 11:42:31 +00:00
Andreas Pehrson
78c790ab2a Bug 1423253 - Change MediaEngineRemoteVideoSource to push instead of pull. r=padenot
Differential Revision: https://phabricator.services.mozilla.com/D22901

--HG--
extra : moz-landing-system : lando
2019-03-22 11:42:23 +00:00
Andreas Pehrson
1b9ef949cd Bug 1423253 - Change CanvasCaptureMediaStream's driver to push instead of pull. r=padenot
Differential Revision: https://phabricator.services.mozilla.com/D22900

--HG--
extra : moz-landing-system : lando
2019-03-22 11:42:10 +00:00
Andreas Pehrson
9ca802f154 Bug 1423253 - Use a timer to make sure we keep sending video over a peer connection when there's no input. r=dminor
The webrtc-pc spec says:
> If track is ended, or if the track's output is disabled, i.e. the track is
> disabled and/or muted, the RTCRtpSender MUST send silence (audio),
> black frames (video) or a zero-information-content equivalent.
> In the case of video, the RTCRtpSender SHOULD send one black frame per second.

This patch covers the case when the output is disabled, and the case when no
frames reach the MediaPipeline, for both direct and non-direct video listeners.

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

--HG--
extra : moz-landing-system : lando
2019-03-22 11:42:11 +00:00
Andreas Pehrson
5fa61e274d Bug 1423253 - Remove mMutex from VideoFrameConverter. r=dminor
Differential Revision: https://phabricator.services.mozilla.com/D23708

--HG--
extra : moz-landing-system : lando
2019-03-22 11:42:04 +00:00
Andreas Pehrson
ee54652d16 Bug 1506093 - Fix DecodedStream A/V sync. r=padenot
DecodedStream sends video to its video tracks by initially buffering a set
of images, then appending future ones by adding them one by one.

A long time ago we refactored how MediaStreamGraph sends images to the screen,
i.e., to an ImageContainer. It used to send all future frames to
ImageContainer::SetCurrentFrames each time it sent something. After the
refactor we just forward any new frame from a direct listener to
ImageContainer::SetCurrentFrames.

So in case DecodedStream has already sent 10 future frames to its track,
and sends another, we end up calling ImageContainer::SetCurrentFrames(frame11).
However, this is not how ImageContainer works. The refactor was wrong.

Even though the timestamp for frame11 is after a previously buffered frame,
it will be ignored. SetCurrentFrames wipes any previously set frames. Hence
the word "Current" in its name.

This patch largely restores the old behaviour by adding a thin buffering layer
between the MSG (in a direct listener) and the ImageContainer.

This does not give 100% identical frame sync to VideoSink (how we normally
render video), because VideoSink can update the timestamps of already-pushed
images by pushing them again. We can't do that here because the SourceMediaStream
API only allows appending. It does however get in sync for frames appended after
the first frame has been rendered.

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

--HG--
extra : moz-landing-system : lando
2019-03-22 11:41:48 +00:00
Andreas Pehrson
e0b244ec9e Bug 1506093 - Remove StreamTracksStartTimeStamp. r=padenot
DecodedStream has been basing video timestamps on something called
StreamTracksStartTimeStamp in MediaStreams, which call through all the way
down to the GraphDriver.

This removes the entire timestamp mechanism, except for a bit of legit
usage internally in the SystemClockDriver. Video timestamps are instead
based on the audio clock through GetPosition(), the same way the VideoSink
operates.

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

--HG--
extra : moz-landing-system : lando
2019-03-22 11:41:46 +00:00
Andreas Pehrson
a8f25bd13a Bug 1506093 - Remove MediaStreamVideoSink. r=padenot
The way it's implemented it only adds plumbing and overhead, no value.
This patch moves it to a thin wrapper around DirectMediaStreamTrackListener,
managed by VideoStreamTrack, instead.

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

--HG--
extra : moz-landing-system : lando
2019-03-22 11:41:39 +00:00
Mike Hommey
49a0cbadc9 Bug 1524396 - Unify how target/host linker/flags are passed to rust. r=chmanchester
The current setup uses different ways for different platforms, with
different workarounds, even using extra configuration items for Windows.

Now that there can't be a difference between the host per the build
system and the host per rust, we can get rid of those configuration
items, and use a more common infrastructure.

We cannot, however, avoid using wrapper scripts, because per-target rust
link-arg flags don't work up great.

The downside is that multiplies the number of wrappers, as we now have
to have a different one for host and target, and then we have .bat files
and shell scripts for, respectively, Windows hosts, and other hosts.

Depends on D24321

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

--HG--
extra : moz-landing-system : lando
2019-03-22 11:05:18 +00:00
Mike Hommey
46318ccb91 Bug 1524396 - Replace RUST_TARGET_ENV_NAME with make substitutions. r=chmanchester
While the substitution pattern is kind of awful in make, it will allow
to more straightforwardly deal with the difference between target and
host.

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

--HG--
extra : moz-landing-system : lando
2019-03-22 11:06:11 +00:00
Andreea Pavel
9bdad35860 No bug - delete conflict marker 2019-03-22 12:46:22 +02:00
Andreea Pavel
74a4769236 Merge mozilla-central to autoland 2019-03-22 12:37:25 +02:00
Andreea Pavel
c1f948c75f Backed out 2 changesets (bug 1527463) for bustages a=backout
Backed out changeset 74b3bf36f5e8 (bug 1527463)
Backed out changeset 235af3330b73 (bug 1527463)
2019-03-22 12:09:57 +02:00
Andreea Pavel
4eaf7c637a Merge mozilla-inbound to mozilla-central. a=merge 2019-03-22 11:57:35 +02:00
Andreea Pavel
a7a4c4c9df Merge autoland to mozilla-central. a=merge 2019-03-22 11:55:04 +02:00
Tom Tung
75324d92e3 Bug 1529301 - P3 - Use the listInitializedOrigins on Sanitizer.jsm; r=baku
Differential Revision: https://phabricator.services.mozilla.com/D21725

--HG--
extra : moz-landing-system : lando
2019-03-22 06:04:50 +00:00
Ryan VanderMeulen
783910f80f Bug 1538064 - Update pdf.js to version 2.2.91. r=bdahl 2019-03-21 22:21:24 -04:00
Jan de Mooij
752be3958f Bug 1538006 - Don't emit unbarriered writes to an object if its group might change. r=tcampbell, a=dveditz
Differential Revision: https://phabricator.services.mozilla.com/D24448

--HG--
extra : histedit_source : 6f34512c3cad2b6821eb8b5476068700eea1037c
2019-03-21 22:47:55 +00:00
Ted Campbell
601d226fe3 Bug 1538006 - Propagate unknownProperties when changing prototype. r=jandem, a=dveditz
Differential Revision: https://phabricator.services.mozilla.com/D24446

--HG--
extra : histedit_source : 6fad0e8b10de518d78f0033cc1b48f78516def4a
2019-03-21 22:36:46 +00:00
Drew Willcoxon
a277e6fa71 Bug 1533039 - Test that down/up from an autofill entry autofills again and other aspects of autofill are preserved. r=mak
We already have browser_autoFill_preserveCase.js, which checks that we preserve case. This patch extends it to check a couple of more things: autofill is restored on up/down, and the user's input is restored when no result is selected.

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

--HG--
rename : browser/components/urlbar/tests/browser/browser_autoFill_preserveCase.js => browser/components/urlbar/tests/browser/browser_autoFill_preserve.js
extra : moz-landing-system : lando
2019-03-21 21:13:12 +00:00
Geoff Brown
32d344ba38 Bug 1533221 - In Mn test_capabilities.py, compare only the basename of profile paths; r=whimboo
Differential Revision: https://phabricator.services.mozilla.com/D24377

--HG--
extra : moz-landing-system : lando
2019-03-21 21:08:55 +00:00
Timothy Nikkel
cdeb7dab27 Bug 1537667. Allow the 'layout.display-list.retain' pref to work on android. r=mattwoodrow
Fennec isn't e10s, so neither existing check worked.

https://phabricator.services.mozilla.com/D24310

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

--HG--
extra : moz-landing-system : lando
2019-03-21 20:59:11 +00:00
Alex Chronopoulos
cbb81ed136 Bug 1536783 - Use two tile threads in dav1d decoder for performance improvement. r=TD-Linux
Differential Revision: https://phabricator.services.mozilla.com/D24331

--HG--
extra : moz-landing-system : lando
2019-03-21 20:37:46 +00:00
Alex Chronopoulos
30586d8fe5 Bug 1535631 - Use 16 byte stack alignment on dav1d in OSX. r=TD-Linux
Differential Revision: https://phabricator.services.mozilla.com/D24382

--HG--
extra : moz-landing-system : lando
2019-03-21 19:43:15 +00:00
Kartikaya Gupta
388044686f Bug 1536162 - Update bugzilla component for gfx/wr. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D23894

--HG--
extra : moz-landing-system : lando
2019-03-21 20:40:57 +00:00
Hemakshi Sachdev
7262280404 Bug 1531790 - Reset DOMContentLoaded and load metrics on Reload while Persist Logs is enabled. r=Honza
Added a new state `requestsStarted` in the timing-marker.js reducer which is initialized with the time a new reload (when persist logs in enabled) is triggered. Used this parameter to calculate the `DOMContentLoaded` and `load` metrics in the StatusBar.

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

--HG--
extra : moz-landing-system : lando
2019-03-22 06:08:17 +00:00
Botond Ballo
2ce3d47ca0 Bug 1536157 - Make sure we repaint after accepting a visual scroll update. r=kats
A possible alternative would be to have the main thread already paint a
displayport at the target position of a requested visual update as part of
the same transaction that requests the update.

There are a couple of reasons we may not want to do that:

 1) APZ could reject the requested visual update under certain conditions,
    e.g. if there is a higher-priority layout update.

 2) It would break the property that the displayport in the main thread's
    scroll metadata is relative to the scroll offset in said metadata.
    Various places assume this and untangling that seems tricky.

This does mean that if the main thread requests a visual update to "far away"
(outside the existing displayport), we can get temporary checkerboarding
before the content at the target position is painted. However, it's
straightforward for callers to work around that, by changing the layout scroll
offset _and_ scheduling a visual update if they wish to visual-scroll far
away.

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

--HG--
extra : moz-landing-system : lando
2019-03-22 05:20:31 +00:00
Botond Ballo
531d381209 Bug 1536157 - Schedule a paint when setting a pending visual scroll update. r=kats
Differential Revision: https://phabricator.services.mozilla.com/D23901

--HG--
extra : moz-landing-system : lando
2019-03-21 23:44:09 +00:00
Paul Bone
47a363df69 Bug 1531626 - (part 6) Introduce a GC_MIN_NURSERY_BYTES parameter r=jonco
Differential Revision: https://phabricator.services.mozilla.com/D21671

--HG--
extra : moz-landing-system : lando
2019-03-22 05:16:21 +00:00
Paul Bone
297738aab7 Bug 1531626 - (part 5) Use a sensible maximum nursery size in a test r=arai
Differential Revision: https://phabricator.services.mozilla.com/D24474

--HG--
extra : moz-landing-system : lando
2019-03-22 05:15:50 +00:00
Paul Bone
ff868762ff Bug 1531626 - (part 4) Always round-nearest for nursery size r=jonco
We were rounding up for growing the nursery, rounding down for shrinking.
If we round nearest in all cases then we can also round our minimum and
maximum size parameters the same way.

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

--HG--
extra : moz-landing-system : lando
2019-03-22 05:15:38 +00:00
Paul Bone
488211fb22 Bug 1531626 - (part 3) Include chunk trailers in nursery capacity r=jonco
The nursery capacity included the usable size of nursery chunks.  However
it'll simplify the parameters for the nursery size if it uses whole
nursery chunks, so include the chunk trailers in the nursery capacity.

This means changing the subchunk calculations slightly to handle the
sub-chunk/whole-chunk mode transitions.

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

--HG--
extra : moz-landing-system : lando
2019-03-22 05:15:24 +00:00
Paul Bone
f7aa75fd25 Bug 1531626 - (part 2) Refactor Nursery::maybeResizeNursery r=jonco
This change moves some details of maybeResizeNursery() into a new function
that will resize the nursery in one of the situations where the nursery has
a fixed size.

It also simplifies the clamping code.

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

--HG--
extra : moz-landing-system : lando
2019-03-22 05:15:04 +00:00
Paul Bone
a3621807eb Bug 1531626 - (part 1) Add missing keys to GCRuntime::getParameter() r=jonco
Differential Revision: https://phabricator.services.mozilla.com/D21669

--HG--
extra : moz-landing-system : lando
2019-03-22 05:14:49 +00:00
Coroiu Cristina
48a10d6871 Backed out 6 changesets (bug 1528159, bug 1531626) for mozcrash.py on a CLOSED TREE
Backed out changeset d1e0b848dfca (bug 1528159)
Backed out changeset 31825d66ed83 (bug 1531626)
Backed out changeset f754814d9ade (bug 1531626)
Backed out changeset fb099fd16c0c (bug 1531626)
Backed out changeset 782656ddec8a (bug 1531626)
Backed out changeset d2a8cc3ca43e (bug 1531626)
2019-03-22 06:35:47 +02:00
Noemi Erli
81350b76e9 Backed out 2 changesets (bug 1524396) for mass build bustages CLOSED TREE
Backed out changeset 3a444460cb6c (bug 1524396)
Backed out changeset 0480bca0d680 (bug 1524396)
2019-03-22 06:23:04 +02:00
Mike Hommey
d58c9a5f85 Bug 1524396 - Unify how target/host linker/flags are passed to rust. r=chmanchester
The current setup uses different ways for different platforms, with
different workarounds, even using extra configuration items for Windows.

Now that there can't be a difference between the host per the build
system and the host per rust, we can get rid of those configuration
items, and use a more common infrastructure.

We cannot, however, avoid using wrapper scripts, because per-target rust
link-arg flags don't work up great.

The downside is that multiplies the number of wrappers, as we now have
to have a different one for host and target, and then we have .bat files
and shell scripts for, respectively, Windows hosts, and other hosts.

Depends on D24321

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

--HG--
extra : moz-landing-system : lando
2019-03-21 23:40:41 +00:00
Mike Hommey
27044ed480 Bug 1524396 - Replace RUST_TARGET_ENV_NAME with make substitutions. r=chmanchester
While the substitution pattern is kind of awful in make, it will allow
to more straightforwardly deal with the difference between target and
host.

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

--HG--
extra : moz-landing-system : lando
2019-03-21 23:40:23 +00:00
Mike Hommey
632127ba32 Bug 1521734 - Use thumbv7neon rust targets when stars align. r=chmanchester
Newer versions of rust come with a specialized arm target that matches
more closely our armv7 targets (with neon and thumb2), so use that when
possible.

Depends on D24324

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

--HG--
extra : moz-landing-system : lando
2019-03-21 23:36:49 +00:00
Mike Hommey
17fde3dc29 Bug 1521734 - Refresh rust target list in toolchain configure test. r=chmanchester
Depends on D24323

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

--HG--
extra : moz-landing-system : lando
2019-03-21 23:36:22 +00:00
Mike Hommey
99bdcc7cb2 Bug 1521734 - Print out the chosen rust host/target triplet during configure. r=chmanchester
Differential Revision: https://phabricator.services.mozilla.com/D24323

--HG--
extra : moz-landing-system : lando
2019-03-21 23:36:00 +00:00