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

117 Коммитов

Автор SHA1 Сообщение Дата
Andreas Pehrson 6862394047 Bug 1208371 - Ensure DOMMediaStream principals reflect what could reside in their playback streams. r=mt,jesup
Calculating a principal when adding a track is easy - just combine the new
track principal into the stream's principal.

When removing a track it's a bit trickier. The DOMMediaStream has to wait until
the MediaStreamGraph has removed the track from the underlying playback stream.

We do this by letting the MediaStreamGraph return a Pledge (single threaded
Promise) when blocking a track in a stream (the way we end removed tracks).
The pledge gets passed to the MediaStreamGraph and when the block has been
applied it is passed back to the main thread where it is finally resolved
and the DOMMediaStream may recompute its principal once all outstanding
track removals have been applied.

MozReview-Commit-ID: 3QP0YcDyfGf

--HG--
extra : rebase_source : 6642849ec1c7d774467395dee82b0a37fdd33a99
2016-03-16 16:00:34 +01:00
Andreas Pehrson 15e9109891 Bug 1208371 - Add `NotifyPrincipalHandleChanged` to MediaStreamTrackListener. r=mt,jesup
MozReview-Commit-ID: Hq0XtqIiMAO

--HG--
extra : rebase_source : 3483bff525ba50bc45f409463e7eb49056adbdf4
2016-01-26 16:45:25 +08:00
Andreas Pehrson 849f97a6f3 Bug 1208371 - Move FindTrack from SourceMediaStream to MediaStream. r=roc
MozReview-Commit-ID: 2BzGdGdbpy0

--HG--
extra : rebase_source : f011fe75b86e0db80443f0042866678d438d6d63
2016-01-21 19:25:25 +08:00
Andreas Pehrson f1662d16c9 Bug 1208371 - Switch MediaPipeline to use direct listeners on tracks. r=jesup,bwc
MozReview-Commit-ID: BSSfkTwXoVN

--HG--
extra : rebase_source : 8f001d4513062bb426f0a18670a3692ecf737a52
2016-03-18 14:21:51 +01:00
Andreas Pehrson 77ac51c2c4 Bug 1208371 - Add DirectTrackLister to MediaStreamGraph and MediaStreamTrack. r=roc,jesup
MozReview-Commit-ID: HRWa6A35FSC

--HG--
extra : rebase_source : 85f2507cc91c62105eda6568b5a40edd604d5af8
2016-03-03 17:28:37 +01:00
Andreas Pehrson d8ed56d953 Bug 1208371 - Make it possible to block tracks in a MediaInputPort initally. r=roc
MozReview-Commit-ID: AwOO0lW9zpj

--HG--
extra : rebase_source : 01be9776a411498d83f8f3ebb156db45d302709c
2016-01-05 10:16:25 +08:00
Andreas Pehrson 8ee8a34873 Bug 1208371 - Add a MediaStreamTrackListener to MediaStreamGraph. r=roc
MozReview-Commit-ID: 6KHzimw9kiP

--HG--
extra : rebase_source : 78e7f4b4bf18eaf390ee09c08f6f5c19d9f24d65
2016-03-03 17:27:59 +01:00
Andreas Pehrson d29c47befe Bug 1208371 - Allow MediaInputPorts mapped to a destination TrackID. r=roc
This lets us know the track's TrackID in the destination stream before
the input port has been processed.
For sanity we only allow mapping to a destination TrackID if the
destination stream does not have any TRACK_ANY input ports already
assigned to it as that can cause intermittent TrackID collisions.

MozReview-Commit-ID: ClFyQl0nYFC

--HG--
extra : rebase_source : 25fa0f34cb4fa9293a572bff03fe005c33be0195
2016-01-05 10:16:22 +08:00
Andreas Pehrson 1bffbe178b Bug 1208371 - Count the users of a MediaStream to ease Destroy() responsibility. r=roc
MozReview-Commit-ID: FdcR4ChTND4

--HG--
extra : rebase_source : c0dfccffb686b483203b2906b734ae8b9459b924
2016-01-05 10:16:22 +08:00
Randell Jesup a237d6632f Bug 1250934: Only dig out cubeb deviceIDs immediately before use since they can be freed r=padenot
MozReview-Commit-ID: CyIk4WCuJ9s
2016-03-08 12:11:09 -05:00
Randell Jesup 674904d269 Bug 1237816: count open input sources for MediaStreams to release inputs on Destroy() r=roc,padenot
MozReview-Commit-ID: LkCBqPXAWBP
2016-02-03 21:12:51 -05:00
Randell Jesup 0a6b21aecf Bug 1245216: plumb preferred sample rate from full_duplex cubeb through NotifyInput/Output r=padenot
MozReview-Commit-ID: 4F9LwSIZ5OA
2016-02-17 13:19:01 -05:00
Randell Jesup a853e094df Bug 1221587: Update for API changes in cubeb r=padenot
--HG--
extra : commitid : C4GE8epQXOe
2016-01-21 11:51:36 -05:00
Randell Jesup 46878bf96f Bug 1221587: use cubeb devids to select input devices r=padenot
--HG--
extra : commitid : AH6Lt4KfNaF
2016-01-21 11:51:36 -05:00
Randell Jesup be7d8f1d36 Bug 1221587: change audio listeners for full-duplex audio r=padenot
--HG--
extra : commitid : HGZSv3IY3OF
2016-01-21 11:51:36 -05:00
Randell Jesup 6d7d97d7bc Bug 1221587: Base update of the MSG API for full-duplex r=padenot
--HG--
extra : commitid : Kf1JpZKH7LH
2016-01-21 11:51:35 -05:00
Wes Kocher d8d8cf6b90 Backed out changeset 3bd606775747 (bug 1221587)
--HG--
extra : commitid : 73qThGgq9ee
2016-01-21 17:28:29 -08:00
Wes Kocher 4d52f1b36b Backed out changeset 765fa97d2407 (bug 1221587)
--HG--
extra : commitid : GLNtVETOSsb
2016-01-21 17:28:26 -08:00
Wes Kocher 71e2d1b3e4 Backed out changeset 8af4dd12d47c (bug 1221587)
--HG--
extra : commitid : AD53AdwdwaG
2016-01-21 17:28:25 -08:00
Wes Kocher 6a60db7718 Backed out changeset ff326b0cc099 (bug 1221587)
--HG--
extra : commitid : IaIBmzsd7rp
2016-01-21 17:28:14 -08:00
Randell Jesup 600178b7d6 Bug 1221587: Update for API changes in cubeb r=padenot
--HG--
extra : commitid : B6ZRzya3bL6
2016-01-21 11:51:36 -05:00
Randell Jesup 2501b5c4c1 Bug 1221587: use cubeb devids to select input devices r=padenot
--HG--
extra : commitid : 80Zdtlc9zJI
2016-01-21 11:51:36 -05:00
Randell Jesup a621cb7376 Bug 1221587: change audio listeners for full-duplex audio r=padenot
--HG--
extra : commitid : 9yDpe5JP1eS
2016-01-21 11:51:36 -05:00
Randell Jesup 3abc9ead67 Bug 1221587: Base update of the MSG API for full-duplex r=padenot
--HG--
extra : commitid : 4p2GpBpkEVz
2016-01-21 11:51:35 -05:00
Jean-Yves Avenard bc55ba93a4 Bug 1240411: P9. Clean up media headers. r=jwwang
Remove redundant virtual keyword and add missing override if any.
2016-01-19 19:47:36 +11:00
Andrea Marchesini 7167daa292 summary: Bug 1231378 - part 5 - Fix uninitialized members of classes in dom/{workers,events,media,canvas}, r=smaug 2016-01-12 18:16:59 +00:00
Carsten "Tomcat" Book 00abd66130 Backed out changeset 6d08ab04a77c (bug 1231378) 2016-01-12 15:48:53 +01:00
Andrea Marchesini 98f16784c5 Bug 1231378 - part 5 - Fix uninitialized members of classes in dom/{workers,events,media,canvas}, r=smaug 2016-01-12 13:57:37 +00:00
sajitk 582e1a55fa Bug 1219480 - Replace PRLogModuleInfo with LazyLogModule in the media directory. r=rillian 2015-11-15 14:49:01 +01:00
Wes Kocher f3a9eb2a26 Backed out changeset 1e5f3d1151d6 (bug 1219480) for cpp unittest bustage CLOSED TREE
--HG--
extra : commitid : BMVKq6cPeho
2015-11-11 09:36:56 -08:00
sajitk 3cbe348cdd Bug 1219480 - Replace PRLogModuleInfo with LazyLogModule in the media directory. r=rillian
--HG--
extra : rebase_source : c73098485fa005d914304fb6e7f8eba3c15e66dc
2015-11-11 06:52:00 +01:00
Karl Tomlinson 3c93b81fd5 bug 1217625 remove ADD_STREAM_SUSPENDED r=padenot
Sometimes we'll need an initial suspended count of 2, which is not supported
by this API, but this is not necessary anyway.

--HG--
extra : rebase_source : 56ecca7c14025ea7e18ba9a20e0b7725a610b429
2015-10-22 22:14:46 +13:00
Andreas Pehrson cd79c1257d Bug 1216417 - Add logging for audio and video output changes in MSG. r=roc
--HG--
extra : commitid : 22iTDWGdkKT
extra : rebase_source : fe30f433900b8e685f6c1d525c1b279babbb8079
2015-10-29 13:19:51 +08:00
Nathan Froyd 01583602a9 Bug 1207245 - part 6 - rename nsRefPtr<T> to RefPtr<T>; r=ehsan; a=Tomcat
The bulk of this commit was generated with a script, executed at the top
level of a typical source code checkout.  The only non-machine-generated
part was modifying MFBT's moz.build to reflect the new naming.

CLOSED TREE makes big refactorings like this a piece of cake.

 # The main substitution.
find . -name '*.cpp' -o -name '*.cc' -o -name '*.h' -o -name '*.mm' -o -name '*.idl'| \
    xargs perl -p -i -e '
 s/nsRefPtr\.h/RefPtr\.h/g; # handle includes
 s/nsRefPtr ?</RefPtr</g;   # handle declarations and variables
'

 # Handle a special friend declaration in gfx/layers/AtomicRefCountedWithFinalize.h.
perl -p -i -e 's/::nsRefPtr;/::RefPtr;/' gfx/layers/AtomicRefCountedWithFinalize.h

 # Handle nsRefPtr.h itself, a couple places that define constructors
 # from nsRefPtr, and code generators specially.  We do this here, rather
 # than indiscriminantly s/nsRefPtr/RefPtr/, because that would rename
 # things like nsRefPtrHashtable.
perl -p -i -e 's/nsRefPtr/RefPtr/g' \
     mfbt/nsRefPtr.h \
     xpcom/glue/nsCOMPtr.h \
     xpcom/base/OwningNonNull.h \
     ipc/ipdl/ipdl/lower.py \
     ipc/ipdl/ipdl/builtin.py \
     dom/bindings/Codegen.py \
     python/lldbutils/lldbutils/utils.py

 # In our indiscriminate substitution above, we renamed
 # nsRefPtrGetterAddRefs, the class behind getter_AddRefs.  Fix that up.
find . -name '*.cpp' -o -name '*.h' -o -name '*.idl' | \
    xargs perl -p -i -e 's/nsRefPtrGetterAddRefs/RefPtrGetterAddRefs/g'

if [ -d .git ]; then
    git mv mfbt/nsRefPtr.h mfbt/RefPtr.h
else
    hg mv mfbt/nsRefPtr.h mfbt/RefPtr.h
fi

--HG--
rename : mfbt/nsRefPtr.h => mfbt/RefPtr.h
2015-10-18 01:24:48 -04:00
Andreas Pehrson 867415c0b5 Bug 1170958 - Remove ProcessedMediaStream::ForwardTrackEnabled. r=roc,jesup
TrackUnionStream guarantees that TrackIDs are maintained if no tracks
have claimed them before.

In the gUM case, we have a SourceMediaStream which we wholly own (the
DOMMediaStream's Input stream), piped into a TrackUnionStream which
no-one external is able to add tracks to (the DOMMediaStream's Owned
stream) - addTrack()ed tracks are added to the DOMMediaStream's Playback
stream.

The MediaStreamTracks being enabled/disable refer to a TrackID in the
DOMMediaStream's Owned stream.

Alas, we don't need to forward a track's enabled state, we can just do
it on the source.

--HG--
extra : commitid : GPSNwBVyD4j
extra : rebase_source : 4388211be87ebe8a3839ea031b5c504d642806ab
2015-09-30 09:31:54 +08:00
Andreas Pehrson 937747498a Bug 1170958 - Refactor DOMMediaStream to contain a 3-stage track chain. r=roc
This lets us separate tracks by ownership like so:
* Input    - Owned by the producer of the DOMMediaStream (gUM etc.)
* Owned    - Contains Input tracks (per above) or tracks cloned tracks
             if this DOMMediaStream is a clone.
* Playback - Contains Owned tracks plus tracks addTrack()ed to this
             DOMMediaStream minus tracks removeTrack()ed from this
             DOMMediaStream.

--HG--
extra : commitid : GPSNwBVyD4j
extra : rebase_source : fba22e96c6c65a74e012509f3da67a4d7df7a244
2015-09-30 09:31:54 +08:00
Andreas Pehrson 53a6c38d0d Bug 1170958 - Allow MediaInputPort to lock to a specific input track. r=roc
Locking to specific tracks lets us dynamically remove and add single
tracks to a ProcessedMediaStream.

--HG--
extra : commitid : GPSNwBVyD4j
extra : rebase_source : 0b1b79077f95bbefc8c71de551c5e3483a7d6ac0
2015-09-30 09:31:53 +08:00
Andreas Pehrson 2802ee3e88 Bug 1170958 - Add input stream and track as args to NotifyQueuedTrackChanges. r=roc
This allows for tracking the input track of an added track (for
ProcessedMediaStream tracks; SourceMediaStream tracks don't have input
tracks) directly in the NotifyQueuedTrackChanges handler, which will be
necessary for locking MediaInputPorts to specific tracks.

--HG--
extra : commitid : GPSNwBVyD4j
extra : rebase_source : 4bed5dffe66b71b7ad23f4c02531d84af25cd316
2015-09-30 09:31:53 +08:00
Karl Tomlinson 75183c57ba bug 1205558 introduce SecondsToNearestStreamTime r=padenot
--HG--
extra : rebase_source : 4a0cce9e1c89ee08d7b1d09babeda861380f1ff2
2015-09-18 15:42:00 +12:00
Karl Tomlinson e8c9471dea bug 1208327 make enum AudioContextOperation strongly typed and forward declare instead of including AudioContext.h r=roc
AudioContext.h is now exported only under mozilla.dom.

--HG--
extra : rebase_source : 7fc0a25a6bb8efe497a0e779dca2df5d7e3397b1
2015-09-25 08:49:03 +12:00
Wes Kocher 03a1803261 Backed out 9 changesets (bug 1170958) for frequent test_getUserMedia_addTrackRemoveTrack.html failures
Backed out changeset 277c1f8098d1 (bug 1170958)
Backed out changeset aa86bb9eea95 (bug 1170958)
Backed out changeset 8af8b85a4b26 (bug 1170958)
Backed out changeset ec1bf225e9cb (bug 1170958)
Backed out changeset 4a04ddca2b6b (bug 1170958)
Backed out changeset e85c9977a311 (bug 1170958)
Backed out changeset 16b40ff04e8f (bug 1170958)
Backed out changeset ad206925c84a (bug 1170958)
Backed out changeset 2106eccec79b (bug 1170958)
2015-09-25 13:08:55 -07:00
Andreas Pehrson b4ff8db67c Bug 1170958 - Remove ProcessedMediaStream::ForwardTrackEnabled. r=roc,jesup
TrackUnionStream guarantees that TrackIDs are maintained if no tracks
have claimed them before.

In the gUM case, we have a SourceMediaStream which we wholly own (the
DOMMediaStream's Input stream), piped into a TrackUnionStream which
no-one external is able to add tracks to (the DOMMediaStream's Owned
stream) - addTrack()ed tracks are added to the DOMMediaStream's Playback
stream.

The MediaStreamTracks being enabled/disable refer to a TrackID in the
DOMMediaStream's Owned stream.

Alas, we don't need to forward a track's enabled state, we can just do
it on the source.

--HG--
extra : commitid : Kvj9RrN9MgP
2015-09-25 23:23:18 +08:00
Andreas Pehrson eacfc2cf0e Bug 1170958 - Refactor DOMMediaStream to contain a 3-stage track chain. r=roc
This lets us separate tracks by ownership like so:
* Input    - Owned by the producer of the DOMMediaStream (gUM etc.)
* Owned    - Contains Input tracks (per above) or tracks cloned tracks
             if this DOMMediaStream is a clone.
* Playback - Contains Owned tracks plus tracks addTrack()ed to this
             DOMMediaStream minus tracks removeTrack()ed from this
             DOMMediaStream.

--HG--
extra : commitid : Kvj9RrN9MgP
2015-09-25 23:23:18 +08:00
Andreas Pehrson cbd58a2839 Bug 1170958 - Allow MediaInputPort to lock to a specific input track. r=roc
Locking to specific tracks lets us dynamically remove and add single
tracks to a ProcessedMediaStream.

--HG--
extra : commitid : Kvj9RrN9MgP
2015-09-25 23:23:18 +08:00
Andreas Pehrson 7aca9eb1fd Bug 1170958 - Add input stream and track as args to NotifyQueuedTrackChanges. r=roc
This allows for tracking the input track of an added track (for
ProcessedMediaStream tracks; SourceMediaStream tracks don't have input
tracks) directly in the NotifyQueuedTrackChanges handler, which will be
necessary for locking MediaInputPorts to specific tracks.

--HG--
extra : commitid : Kvj9RrN9MgP
2015-09-25 23:23:17 +08:00
Robert O'Callahan 592e13f05f Bug 1189506. Call StreamTimeToGraphTime in MediaStreamGraphImpl::UpdateCurrentTimeForStreams, since we know blocking has been taken account of already there. r=karlt
--HG--
extra : commitid : YABaL6h9O0
extra : rebase_source : 3032e3a04a14f2d203ea29c501d8ebc08f531365
2015-09-08 16:38:40 +12:00
Robert O'Callahan 5e38d30d6f Bug 1189506. Create StreamTimeToGraphTime/GraphTimeToStreamTime that don't take account of blocking, and call them from AudioNodeStream. r=karlt
--HG--
extra : commitid : KZL20bqIcTe
extra : rebase_source : 001476a097968e6fa382949ababbf6bdd5e4f76d
2015-09-16 16:35:16 +12:00
Robert O'Callahan 13179ae295 Bug 1189506. Rename StreamTimeToGraphTime/GraphTimeToStreamTime to ...WithBlocking. r=karlt
--HG--
extra : commitid : 77I6WKoXbJA
extra : rebase_source : b289cbcb99c4bc52d70c78a6195c992bb5ba7ac1
2015-09-08 15:41:00 +12:00
Robert O'Callahan d745ffaf22 Bug 1189506. Remove unused NotifyConsumptionChanged. r=karlt
--HG--
extra : commitid : 844LybDIKss
extra : rebase_source : 6a514c1ef0926e540e4d27a1e3f9561636c38ddb
2015-09-04 21:39:35 +12:00
Robert O'Callahan 964e856e68 Bug 1189506. Remove no-longer-used TimeVarying.h. r=karlt
--HG--
extra : commitid : 2i4IxiPCeuH
extra : rebase_source : 399fa74717306d873d1ddb655400af81090146e4
2015-09-04 18:49:27 +12:00