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

428 Коммитов

Автор SHA1 Сообщение Дата
Andreas Pehrson 68c86a9506 Bug 957691: Ensure that MediaManager ends all tracks before finishing its source stream r=jib,jesup,pehrsons
This puts all the logic in GetUserMediaCallbackMediaStreamListener and none in
MediaOperationTask to make it simpler to reason about what's happening.

When we want to stop a track, the gUMCallbackListener will send a
MEDIA_STOP_TRACK if other tracks will still be live.
If it was the last live track, the gUMCallbackListener will send a MEDIA_STOP
instead. The MEDIA_STOP makes sure the passed in devices (we pass in all) are
stopped before finishing the stream.

MozReview-Commit-ID: E43Iqw491tB
2016-02-05 13:20:20 +01:00
Paul Kerr [:pkerr] d7144f8634 Bug 1219339 - Part2: Ensure close of webrtc trace file during shutdown. r=rjesup 2016-02-10 13:10:46 -08:00
Kyle Huey 91efc5a86c Bug 1241764: Replace nsPIDOMWindow with nsPIDOMWindowInner/Outer. r=mrbkap,smaug 2016-01-30 09:05:36 -08:00
Randell Jesup f138ca68d1 Bug 987186 - remove AudioConfig, send agc/aec/noise from prefs r=jib,smaug
(Reland squashed)
Respect echoCancellation constraint in GetUserMedia
Support echoCancellation constraint, pass test

--HG--
extra : commitid : 7Bq2u1yamMf
2016-01-22 16:46:38 -05:00
Kyle Huey 0fbc58d746 Backed out 3 changesets (bug 987186) for build bustage. CLOSED TREE
Backed out changeset 00cb175253b9 (bug 987186)
Backed out changeset deaf45c9ad2a (bug 987186)
Backed out changeset bc3d6c21f5ed (bug 987186)
2016-01-22 10:35:23 -08:00
Brian Armstrong 6f7fc7357b Bug 987186 - remove AudioConfig, send agc/aec/noise from prefs r=jib
--HG--
extra : commitid : 5Yfw0K2W9nl
2016-01-19 16:33:11 -08:00
Randell Jesup cbdb5359ca Bug 1221587: add per-platform prefs to control full-duplex cubeb input r=jib
--HG--
extra : commitid : 7P9rnGXTYh1
2016-01-21 11:51:36 -05:00
Wes Kocher e8203da294 Backed out changeset 4b22bd7b7a73 (bug 1221587)
--HG--
extra : commitid : K0g4NPkKZW6
2016-01-21 17:28:18 -08:00
Randell Jesup b8df5b1837 Bug 1221587: add per-platform prefs to control full-duplex cubeb input r=jib
--HG--
extra : commitid : JswRdGqAT1s
2016-01-21 11:51:36 -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
Emilio Cobos Álvarez b5364082de Bug 866513 - Non-empty MediaStreamTrack labels. r=jib 2016-01-16 13:39:00 +01:00
Chris Peterson 74f570e360 Bug 1240264 - Annotate intentional switch fallthroughs in dom/media/. r=cpearce
dom/media/MediaManager.cpp:1905:7 [-Wimplicit-fallthrough] unannotated fall-through between switch labels
dom/media/webm/WebMBufferedParser.cpp:133:7 [-Wimplicit-fallthrough] unannotated fall-through between switch labels
2016-01-14 01:42:18 -08:00
Jan-Ivar Bruaroey d7d3df857d Bug 1224766 - forward callID to disambiguate multiple gUM requests from same window. r=jesup,smaug
--HG--
extra : rebase_source : 038e5b2eb6d2332da05c2c7dc44dc6ed3dde3d83
2016-01-07 17:30:10 -05:00
Jim Mathies d52bf97565 Bug 1107702 - Try to avoid internal memory exhaustion problems with the Windows api GetAdaptersInfo by making a priming call to the api during startup. r=jesup 2016-01-07 13:57:42 -06:00
Jan-Ivar Bruaroey fad5e24ed1 Bug 1229413 - remove MediaManager's xpcom-will-shutdown observer. r=jesup
--HG--
extra : transplant_source : %AF%E4%80id%2B%23%CD%9D%B1%DF%1F%B4%0B%F5%7Di%DCz%15
2015-12-01 12:13:47 -05:00
Jan-Ivar Bruaroey e23061aecc Bug 1229926 - only fake cams and mics. r=jesup
--HG--
extra : transplant_source : %0F%90%21%94%14X%EC%83%03M%068p%D3%F9%0D%84%F29J
2015-12-02 22:51:03 -05:00
Jan-Ivar Bruaroey 3d86334afb Bug 1229926 - don't throw OverConstrainedError(deviceId) on fake devices. r=jesup
--HG--
extra : transplant_source : .R%BF%F3%93qV/%DB%A0%3C%F5m%10.%FB2%8F%1ES
2015-12-02 21:35:56 -05:00
David Rajchenbach-Teller 0da8936844 Bug 1216972 - MediaManager AsyncShutdown for content processes. r=jesup
--HG--
extra : transplant_source : %D9%A4%C4%95%EB%F9%0Fh%83z%21%91A5cu7%B4%DF%DE
2015-11-18 21:42:16 +01:00
Randell Jesup bc9f456480 Bug 1218799: Shutdown MediaManager engines from the MediaManager thread r=jib 2015-11-18 15:03:13 -05: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
Andreas Pehrson 4a2ca8f712 Bug 1219711 - Let fake stream take precedence in testing. r=jib
TL;DR requesting a fake stream always gives you a fake stream. No magic.

The gUMConstraint `fake: true` should take precedence and if set always
use MediaEngineDefault.
If it is set the state of `faketracks` is passed
on to MediaEngineDefault.
If it is not set, but (any of) audio/video loopback devices are set, the
device enumeration will filter out only those.

--HG--
extra : commitid : IGZfna954PV
extra : rebase_source : e9b5f69c176f6987ab6b0f9081147330a2bf87ad
2015-11-09 23:17:42 +08:00
Wes Kocher fbc669c142 Backed out 5 changesets (bug 1219711) for frequent android m(9) failures
Backed out changeset 2d5f09d89424 (bug 1219711)
Backed out changeset cf14a6e5f340 (bug 1219711)
Backed out changeset 4eaa8cf9a752 (bug 1219711)
Backed out changeset 65abe62869df (bug 1219711)
Backed out changeset a21d79a94307 (bug 1219711)

--HG--
extra : commitid : HEjaguOuDSy
extra : rebase_source : e1d48c63852424d2cbe5ab75996c5485f8536a87
2015-11-06 11:14:11 -08:00
Matthew Noorenberghe a0a2b249c4 Bug 1221365 - Move "Is origin potentially trustworthy?" logic outside ServiceWorkerManager.cpp. r=ckerschb,bkelly 2015-11-06 11:10:17 -08:00
Andreas Pehrson 3affebad3f Bug 1219711 - Let fake stream take precedence in testing. r=jib
TL;DR requesting a fake stream always gives you a fake stream. No magic.

The gUMConstraint `fake: true` should take precedence and if set always
use MediaEngineDefault.
If it is set the state of `faketracks` is passed
on to MediaEngineDefault.
If it is not set, but (any of) audio/video loopback devices are set, the
device enumeration will filter out only those.

--HG--
extra : commitid : ACLnd4zWe6Y
extra : rebase_source : 3fc85bb11def1d19707338baf05317d2ee216b44
2015-11-05 17:15:51 +08:00
Birunthan Mohanathas 9985829ecc Bug 1219392 - Capitalize mozilla::unused to avoid conflicts. r=froydnj 2015-11-02 07:53:26 +02:00
Jan-Ivar Bruaroey 8a441a9cf1 Bug 1193075 - add viewport constraints for independent scrolling in tab sharing. r=smaug, r=jesup
--HG--
extra : transplant_source : %F8%AE%16%B7D%EFN%CC%16%A7%0C%B9%07%3F%D4%7B%E5%3Co%97
2015-10-22 17:03:47 -04:00
Jan-Ivar Bruaroey ef83b4f124 Bug 1166293 - Use AsyncShutdown API to shut down media thread in non-e10s. r= jesup
--HG--
extra : transplant_source : %5Cfb%EC%C4%C6L%9E%8C%0E%E5%C5%C3/%81lS%06%D2%F3
2015-10-14 23:54:39 -04: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
Nathan Froyd 583afa0965 Bug 1207245 - part 3 - switch all uses of mozilla::RefPtr<T> to nsRefPtr<T>; r=ehsan
This commit was generated using the following script, executed at the
top level of a typical source code checkout.

 # Don't modify select files in mfbt/ because it's not worth trying to
 # tease out the dependencies currently.
 #
 # Don't modify anything in media/gmp-clearkey/0.1/ because those files
 # use their own RefPtr, defined in their own RefCounted.h.
find . -name '*.cpp' -o -name '*.h' -o -name '*.mm' -o -name '*.idl'| \
    grep -v 'mfbt/RefPtr.h' | \
    grep -v 'mfbt/nsRefPtr.h' | \
    grep -v 'mfbt/RefCounted.h' | \
    grep -v 'media/gmp-clearkey/0.1/' | \
    xargs perl -p -i -e '
 s/mozilla::RefPtr/nsRefPtr/g; # handle declarations in headers
 s/\bRefPtr</nsRefPtr</g; # handle local variables in functions
 s#mozilla/RefPtr.h#mozilla/nsRefPtr.h#; # handle #includes
 s#mfbt/RefPtr.h#mfbt/nsRefPtr.h#;       # handle strange #includes
'

 # |using mozilla::RefPtr;| is OK; |using nsRefPtr;| is invalid syntax.
find . -name '*.cpp' -o -name '*.mm' | xargs sed -i -e '/using nsRefPtr/d'

 # RefPtr.h used |byRef| for dealing with COM-style outparams.
 # nsRefPtr.h uses |getter_AddRefs|.
 # Fixup that mismatch.
find . -name '*.cpp' -o -name '*.h'| \
    xargs perl -p -i -e 's/byRef/getter_AddRefs/g'
2015-10-18 00:40:10 -04:00
Andrew McCreight ae5fe6a2ad Bug 1210591, part 1 - Use nsVariantCC in various places. r=smaug
Most of these will end up in DataTransfer:mItems, so this is needed
for it to do anything useful.
2015-10-09 10:24:23 -07:00
Andrew McCreight 0ff7248107 Bug 1210517 - Create nsVariant directly rather than via do_CreateInstance(). r=froydnj
The goal here is to leave creation stuff mostly for JS, so we can
convert it entirely over to a non-threadsafe cycle-collected version
without breaking any existing C++ users.

I didn't do this for a remaining use in nsGlobalWindow.h to avoid
including nsVariant.h all over the place.
2015-10-07 08:17:42 -07:00
Jan-Ivar Bruaroey 61cd22ad23 Bug 1210852 - do SelectSettings of device capabilities on media thread. r=jesup
--HG--
extra : transplant_source : %8E%BB%7B%90MSt%0F%40s%8A%0C/%16y%15Ne%2A%1E
2015-10-03 20:42:26 -04:00
Sotaro Ikeda 739eddd54e Bug 1186813 - Replace nsBaseHashtable::EnumerateRead() calls in dom/media/ with iterators r=cpearce 2015-09-30 06:40:54 -07:00
Andreas Pehrson 9914ff85f8 Bug 1103188 - Keep track of stopped tracks in gUM stream listener. r=jib
This is needed to avoid something like:
* [old stream] stop track 1 -> deallocate MediaDevice for track 1
* [new stream] gUM() -> allocate MediaDevice for track 1
* [old stream] stop stream -> deallocate MediaDevice for track 1
* [new stream] gUM() -> start MediaDevice for track 1 (oops, MediaDevice was no more!)

--HG--
extra : commitid : FmkFYbCfel7
extra : rebase_source : e17ad400705198c48e3d561241dd50d0844c472e
2015-09-30 14:08:33 +08:00
Andreas Pehrson 6f60cbc89d Bug 1103188 - Keep track of capture stop only in gUM stream listener. r=jib
--HG--
extra : commitid : AqIOlsR7w1y
extra : rebase_source : 6f5670be3bf711a38eb9f914dc69c5b987dd9b9e
2015-09-30 14:08:26 +08:00
Andreas Pehrson aaef4911a9 Bug 1103188 - Always call MediaManager::NotifyFinished/NotifyRemoved on main thread. r=jib
--HG--
extra : commitid : 8kb5G98FAY9
extra : rebase_source : 97086507d1c546f9423f4d2f790924c21ccfa28a
2015-09-30 14:08:22 +08:00
Andreas Pehrson 0239788481 Bug 1103188 - Deprecate DOMMediaStream::Stop(). r=jib
--HG--
extra : commitid : 3I8mAeBB3oL
extra : rebase_source : cc7351a34694b7b0e822bcd0b7025ded0ab54b9d
2015-09-30 09:32:06 +08:00
Andreas Pehrson ce2776ea0d Bug 1103188 - Remove identical override nsDOMUserMediaStream::Stop(). r=jib
--HG--
extra : commitid : 3I8mAeBB3oL
extra : rebase_source : 2e37a21b1789bf4ab893c6fb8b2dd2c75f613855
2015-09-30 09:32:05 +08: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 9ecf8f59c7 Bug 1170958 - Feed a SourceMediaStream-backed dom stream instead of a raw SourceMediaStream in MediaManager. r=jesup
Simplifies the structure of MediaManager somewhat. Possible since
MediaManager owns both the SourceMediaStream and the DOMMediaStream.

--HG--
extra : commitid : GPSNwBVyD4j
extra : rebase_source : 494b8b673084ea050420dfaf8d16e44a3bc49672
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
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
Wes Kocher b4a25c9f58 Backed out 7 changesets (bug 1103188) for frequent test_getUserMedia_addTrackRemoveTrack.html failures
Backed out changeset f0f33a8ef14c (bug 1103188)
Backed out changeset dbe0ebdebad5 (bug 1103188)
Backed out changeset bb656022a1a7 (bug 1103188)
Backed out changeset cc6b5f5ba444 (bug 1103188)
Backed out changeset ca97d52bf144 (bug 1103188)
Backed out changeset de8cc967f8eb (bug 1103188)
Backed out changeset 6da8f4905060 (bug 1103188)
2015-09-25 13:08:44 -07:00
Andreas Pehrson 7c822e759d Bug 1103188 - Deprecate DOMMediaStream::Stop(). r=jib
--HG--
extra : commitid : FxucwRqUZUo
2015-09-25 23:23:31 +08:00
Andreas Pehrson 6c449288a0 Bug 1103188 - Remove identical override nsDOMUserMediaStream::Stop(). r=jib
--HG--
extra : commitid : FxucwRqUZUo
2015-09-25 23:23:30 +08: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 96fa1303ef Bug 1170958 - Feed a SourceMediaStream-backed dom stream instead of a raw SourceMediaStream in MediaManager. r=jesup
Simplifies the structure of MediaManager somewhat. Possible since
MediaManager owns both the SourceMediaStream and the DOMMediaStream.

--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