Commit Graph

124 Commits

Author SHA1 Message Date
Kaku Kuo
6c95ab3e8e Bug 1275541 - Undefine GetCurrentTime. r=padenot, r=jesup
MozReview-Commit-ID: 3LSadqoMKD3

--HG--
extra : rebase_source : 514892577c08251de1c2be0a7e3ca110497370d4
2016-05-25 20:12:27 +08:00
ctai
7e0671d483 Bug 1266647 - Clean NotifyQueuedTrackChange to only notify when command is track create and track end. r=jesup r=pehrsons
MozReview-Commit-ID: 4Pp3xHeBIW4

--HG--
extra : transplant_source : %D4c%13P%82Y%04%FA%0E%9D%9C%97%91%AAH%FCI%C3u_
2016-05-04 16:08:44 +08:00
ctai
5d4238b60d Bug 1266644 - Simple refactoring. r=jesup r=pehrsons
Update some comments, rename.

MozReview-Commit-ID: A747Fd8mH3D
2016-04-07 11:44:00 +08:00
ctai
e22bc567de Bug 1266644 - Remove unused codes. r=jesup r=pehrsons
MozReview-Commit-ID: 4Ib1qWhoBw3
2016-04-25 11:54:54 +08:00
ctai
8fcb64e480 Bug 1266644 - Rename StreamBuffer to StreamTracks. r=jesup r=pehrsons
Rename StreamBuffer to StreamTracks. We still need a place to keep the track information in every MediaStream, even the StreamBuffer::Track::mSegment is empty.

--HG--
rename : dom/media/StreamBuffer.cpp => StreamTracks.cpp
rename : dom/media/StreamBuffer.h => StreamTracks.h
2016-01-26 10:49:01 +08:00
Andreas Pehrson
1e072d6fc3 Bug 1266680 - Rename BlockTrackId to BlockSourceTrackId. r=jesup
It wasn't clear which TrackID should be passed to MediaInputPort::BlockTrackId(); source or destination.

MozReview-Commit-ID: I9LoSjdpRwE

--HG--
extra : rebase_source : 20eeb5e4ee47eb1cdf00e94cdc72ee11177bbee2
2016-04-22 17:14:26 +02:00
Paul Adenot
b3adcea90b Bug 1266438 - Reset the AEC and other processing when audio devices change. r=jesup
MozReview-Commit-ID: Jrr9E9ZSukv
2016-04-22 16:24:17 +02:00
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