Commit Graph

4637 Commits

Author SHA1 Message Date
Jean-Yves Avenard
3c833c2162 Bug 1194080: [mp3] Implement MP3TrackDemuxer::GetBuffered(). r=esawin
This is done by roughly estimated the duration of the MediaResource buffered range from the average bitrate.
2015-10-02 12:41:06 +10:00
Jean-Yves Avenard
759f764945 Bug 1207924: [mp3] P1. Fix MP3 decoding with early version of LibAV. r=esawin
LibAV 0.8 incorrectly set the pts as dts ; so we must set the dts to ensure not all frames have a time of 0.
2015-10-02 12:41:05 +10:00
Jean-Yves Avenard
877ef122ef Bug 1209850: Only attempt to initialize decoders as they are required. r=alfredo 2015-10-01 23:05:16 +10:00
Carsten "Tomcat" Book
3a44702ffb Backed out 1 changesets (bug 1209850) for causing m2 test failures
Backed out changeset 9c01e0e3da74 (bug 1209850)
2015-10-01 14:05:49 +02:00
Jean-Yves Avenard
822bab3238 Bug 1159171: [MSE] P4. Changing waiting time value. r=edwin.
When ffmpeg is enabled, it will use the FFmpeg's VPX decoder. FFmpeg appears to always buffer 15 frames before returning one (this is the same with h264) causing the waiting event to be fired much earlier than when using libvpx
2015-10-01 19:40:21 +10:00
JW Wang
e7914a68b6 Bug 1159171 - Enable ffmpeg on Linux platforms for media mochitests. r=jya 2015-10-01 19:40:20 +10:00
Jean-Yves Avenard
bf482d2ca8 Bug 1207442: Disable ffvpx with libav0.8 and earlier. r=edwin 2015-10-01 19:40:20 +10:00
JW Wang
2f38e6f128 Bug 1209887. Part 3 - remove unused code. r=jya. 2015-10-01 17:21:57 +08:00
JW Wang
1e5ddfde5c Bug 1209887. Part 2 - remove usage of decoder monitor. r=jya. 2015-10-01 17:21:56 +08:00
JW Wang
88f2b7fbdf Bug 1209887. Part 1 - add assertions. r=jya. 2015-09-30 06:55:20 +08:00
Jean-Yves Avenard
3785990cb1 Bug 1209850: Only attempt to initialize decoders as they are required. r=alfredo 2015-10-01 19:07:39 +10:00
Jean-Yves Avenard
6807956b60 Bug 1207312: P2. Amend gtest. r=bholley 2015-10-01 19:07:37 +10:00
Jean-Yves Avenard
e86d2aa8a5 Bug 1209806: P2. Initialize PDM before attempting to use it. r=gerald 2015-10-01 19:05:48 +10:00
Jean-Yves Avenard
e00a89455b Bug 1209806: Remove dependency on libavformat. r=edwin 2015-10-01 19:05:47 +10:00
Paul Adenot
5467473807 Bug 1209904 - Optimize OscillatorNode when its frequency is not changin and it's using ::ComputeCustom. r=karlt 2015-10-01 10:52:28 +02:00
Nigel Babu
906147b670 Backed out changeset 04430cc26dba (bug 1180940) for Mulet Gij(4) bustage again.
--HG--
extra : amend_source : 3a0164d64d841349526acd11223cd88501a996f5
2015-10-01 13:53:14 +05:30
sajitk
43d9468d87 Bug 1180940 - Changed return type of AudioDestinationNode::CreateAudioChannelAgent method to return errors, if any methods that it calls fail. Added code to handle the return value in AudioContext::Init(), and its callers. r=baku 2015-09-30 17:51:00 +02:00
JW Wang
f56fdd4173 Bug 1209886 - Clean up InstantiateDecoder() in DecoderTraits.cpp. r=kinetik. 2015-09-30 06:55:20 +08: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
JW Wang
fd23a5e794 Bug 1208933 - Remove AbstractMediaDecoder::NotifyWaitingForResourcesStatusChanged(). r=jya. 2015-09-27 21:02:18 +08:00
JW Wang
0bb44154c7 Bug 1208932 - Remove ReadMetadataFailureReason::WAITING_FOR_RESOURCES. r=jya. 2015-09-27 20:48:09 +08: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
f5d99891ad Bug 1103188 - Always check tracks on getUserMedia(). r=jib
--HG--
extra : commitid : 3I8mAeBB3oL
extra : rebase_source : 9820d09e7152de7c59a0aa81dde715dfa21fed18
2015-09-30 09:32:06 +08:00
Andreas Pehrson
f8854279f0 Bug 1103188 - MediaStream::AddTrack/RemoveTrack tests. r=jib,roc
--HG--
extra : commitid : 3I8mAeBB3oL
extra : rebase_source : 5f0de2f5babfd762ec81ecaf2cf060f93d616326
2015-09-30 09:32:06 +08:00
Andreas Pehrson
eb480b5acd Bug 1103188 - Break out MediaTrackListListener to an interface. r=roc
Other modules than MediaTrackLists may want to receive updates on a
DOMMediaStream's track set. This moves the MediaTrackListListener out of
the MediaTrackList class into DOMMediaStream as a general interface.

The logic for adding MediaTracks to the MediaTrackList when
MediaStreamTracks are added or removed from a DOMMediaStream is moved to
HTMLMediaElement as this fits the model better - HTMLMediaElement is the
owner of the MediaTrackLists.

--HG--
extra : commitid : 3I8mAeBB3oL
extra : rebase_source : 66b8ffcfb5343811c181e4169f295b08494f2ee0
2015-09-30 09:32:06 +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
aa989a17b6 Bug 1103188 - MediaStream::AddTrack/RemoveTrack implementation. r=roc
--HG--
extra : commitid : 3I8mAeBB3oL
extra : rebase_source : 7c8a9d50e5dbb672c773faa3675fe674aed9fb67
2015-09-30 09:32:05 +08:00
Andreas Pehrson
bf0d10f4e7 Bug 1103188 - MediaStream WebIDL update with addTrack/removeTrack. r=smaug,jib
--HG--
extra : commitid : 3I8mAeBB3oL
extra : rebase_source : 030f83f3a79a7f4cb938cb509983f87a5a557aab
2015-09-30 09:32:05 +08:00
Andreas Pehrson
f7821ba184 Bug 1170958 - Destroy track-locked MediaInputPorts when the track ends. r=roc
This is needed to make tests pass until we have bug 1208316 implemented.

--HG--
extra : commitid : GPSNwBVyD4j
extra : rebase_source : b7cb9cb1678a582fbf85b729b8f43508889f5c78
2015-09-30 09:31:54 +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
0a75ffee8d Bug 1170958 - Add DOMMediaStream::OwnedStreamListener. r=roc
A DOMMediaStream's owned stream is piped from the input stream which is
under the control of the DOMMediaStream's owner/producer (like
captureStream or gUM). When producers like these create new tracks after
the stream has already been created (the initial set should be available
to JS synchronously), it is nice if the DOMMediaStream picks them up
automatically and create the corresponding MediaStreamTracks.

The OwnedStreamListener added here does just that; creates an owned
MediaStreamTrack when a track appeared in the stream that didn't already
have a MediaStreamTrack.

It also moves the logic for ended tracks from the PlaybackStreamListener
to the OwnedStreamListener as we previously would see a track end in the
playbak stream after removeTrack() and that would be interpreted as the
track ending at the source.

--HG--
extra : commitid : GPSNwBVyD4j
extra : rebase_source : ee7d81282ee3fe0e05b55358dee8fc97a22473fe
2015-09-30 09:31:54 +08:00
Andreas Pehrson
5b79fead9f Bug 1170958 - Improve logging of MediaStreams and playback. r=roc
--HG--
extra : commitid : GPSNwBVyD4j
extra : rebase_source : 7463915dc8f14e6f9dde2e934e55b9c68d4148d6
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
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
Martin Thomson
afdaddf1d7 Bug 1155923 - Removing moz prefix from RTC interfaces, r=jesup,smaug
--HG--
extra : transplant_source : %0Adu%1E%A6j%9E%C2B%25%ECruo%F7%7Fc%EA%99%18
2015-09-28 11:25:04 -07:00
Jean-Yves Avenard
dacd5751f3 Bug 1208953: [mp3] Don't parse data we've already parsed. r=cpearce
NotifyDataArrived may be called again due to reads performed in NotifyDataArrived ; causing stall and serious slowdowns.
2015-09-30 16:07:56 +10:00
Mantaroh Yoshinaga
df06088026 Bug 1180589 part 3 - Rename shadowed variable name; r=bholley 2015-09-30 14:32:32 +09:00
JW Wang
93c354616a Bug 1208931 - Remove MediaDecoderReader::IsWaitingMediaResources(). r=jya. 2015-09-27 20:38:43 +08:00
JW Wang
92100b0074 Bug 1208930 - Remove usage of decoder monitor from MediaDecoder. r=jya. 2015-09-27 20:12:14 +08:00
JW Wang
7651430ef0 Bug 1208922. Part 6 - IsWaitingOnCDMResource() is not used by MDSM anymore. Remove it from MediaDecoderReader and make it private in MediaFormatReader. r=cpearce. 2015-09-27 18:59:52 +08:00
JW Wang
6b35bad359 Bug 1208922. Part 5 - MDSM can now query capabilities from CDMProxy without reader setting them in MediaInfo. r=cpearce. 2015-09-27 18:59:50 +08:00
JW Wang
489900ad10 Bug 1208922. Part 4 - remove AbstractMediaDecoder::GetCDMProxy() and devirtualize MediaDecoder::SetCDMProxy(). r=cpearce. 2015-09-27 18:59:08 +08:00
JW Wang
395e17fb4f Bug 1208922. Part 3 - forward the CDMProxy from MediaDecoder to MediaDecoderReader via MDSM. r=cpearce. 2015-09-27 18:48:59 +08:00
JW Wang
b502b0fe56 Bug 1208922. Part 2 - add MediaDecoderReader::SetCDMProxy so it won't need to ask MediaDecoder for a CDMProxy. r=cpearce. 2015-09-27 18:40:03 +08:00
JW Wang
401634bd83 Bug 1208922. Part 1 - add MediaDecoder::RequestCDMProxy() which resolves when a CDMProxy is set and capabilities are known. The client code won't need to handle the situation where a CDMProxy is set but capabilities are still unknown. This simplifies the client code a lot. r=cpearce. 2015-09-27 18:39:37 +08:00
JW Wang
5eb5527e50 Bug 1188643. Buffer more audio in audio capture mode to avoid glitches. r=cpearce. 2015-09-30 10:32:49 +08:00
Karl Tomlinson
23b10a8cba bug 1205558 remove DelayNodeEngine::mSource r=padenot
--HG--
extra : rebase_source : 2bc303e258a0d00ff3cf03ac3cb649046c05c0fb
2015-09-29 14:39:28 +13:00
Karl Tomlinson
cc26ca0fff bug 1205558 remove unnecessary ScriptProcessorNodeEngine::mSource r=padenot
--HG--
extra : rebase_source : 11eb2a10320e4e8028266730f3208f2b8cbc314f
2015-09-29 14:30:40 +13:00
Karl Tomlinson
56758d35f3 bug 1205558 remove unused AudioNodeStream* aSource parameter r=padenot
--HG--
extra : rebase_source : 23fb5cfaa0fa3bc117183bb122bbdf032957637b
2015-09-22 17:11:52 +12:00
Karl Tomlinson
24b8c43a95 bug 1205558 use destination stream for audio node engine time r=padenot
--HG--
extra : rebase_source : 19fa80f48fac673c13345002cd8e01d1b7a5ed3d
2015-09-22 16:34:45 +12: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
884c5a6d1f bug 1209286 remove now unnecessary StreamTimeToDOMTime and DOMTimeToStreamTime r=padenot
--HG--
extra : rebase_source : 7da869260707220259ef804f4b3cc6237a3d5843
2015-09-29 10:46:43 +13:00
Karl Tomlinson
22f0305b78 bug 1208318 ensure that currentTime has advanced sufficiently to easily detect failure r=padenot
--HG--
extra : rebase_source : 7ebf94ac10edb5b4ebd8b76e98e8a3821578ce04
2015-09-29 13:39:24 +13:00
Karl Tomlinson
5b32edea6d bug 1208318 modify test to avoid assuming different clocks are synchronized r=padenot
--HG--
extra : rebase_source : 31ecead7358bdb7b511d5efd802f479af46aef42
2015-09-25 13:05:03 +12:00
Chris Pearce
cc458e7e9d Bug 1209385 - Add pref to disable crashing hung GMPs. r=jwwang 2015-09-30 06:56:20 +13:00
Chris Pearce
a76b46867d Bug 1209385 - Crash GMPs that don't respond to GMPVideoDecoder::Reset(). r=jwwang 2015-09-30 06:56:07 +13:00
Eitan Isaacson
0d0b280146 Bug 1003464 - Support Web Speech API synthesis via speech-dispatcher. r=kdavis 2015-09-29 11:17:40 -04:00
Joel Maher
5d6ef8e355 Bug 1179826 - re-enable test_ipc.html for dom/media. r=padenot 2015-09-29 09:04:06 -04:00
Carsten "Tomcat" Book
57c4378df9 Merge mozilla-central to mozilla-inbound 2015-09-29 12:40:18 +02:00
Carsten "Tomcat" Book
b63d7b04fc merge mozilla-inbound to mozilla-central a=merge 2015-09-29 12:00:25 +02:00
Wes Kocher
e03ead4753 Merge m-c to b2ginbound, a=merge 2015-09-28 16:32:01 -07:00
Tim Chien
c251097169 Bug 1160923 - [B2G] Waiting for explicit mozContentEvent before sending out mozChromeEvents, r=vingtetun, f=ochaumeau 2015-09-28 09:27:49 -07:00
Nigel Babu
b8f64f3b1e Backed out changeset 967c555a595c (bug 1208289) for B2G build bustage 2015-09-28 12:22:43 +05:30
Nigel Babu
4013fbd739 Backed out changeset efcfe0c08c24 (bug 1208289) for B2G build bustage 2015-09-28 12:22:34 +05:30
Chris Pearce
faefcaba27 Bug 1208289 - Log outstanding frames in GMP DrainComplete() and detect dropped ResetComplete. r=jwwang
* * *
Bug 1208289 - Yet another bustage fix. r=bustage
2015-09-28 17:57:10 +13:00
Chris Pearce
8493a808b6 Bug 1208289 - Add SimpleTimer to make setting timeouts in C++ easy. r=jwwang 2015-09-28 17:57:10 +13:00
Chris Pearce
0f328b5200 Bug 1208348 - Check whether DirectShow can decode MP3 before assuming it will work. r=jya 2015-09-28 17:57:10 +13:00
Chris Pearce
947b4b02c2 Bug 1208348 - Backout 9f73b03732fc 2015-09-28 17:11:24 +13:00
Chris Pearce
e30c6e5fa9 Bug 1208289 - Backout. r=backout 2015-09-28 15:37:18 +13:00
Chris Pearce
771aa6c979 Bug 1208289 - Yet another-another bustage fix. r=bustage 2015-09-28 15:16:13 +13:00
Chris Pearce
3b2e225a56 Bug 1208289 - Yet another bustage fix. r=bustage 2015-09-28 14:26:44 +13:00
Chris Pearce
593512f49b Bug 1208289 - Bustage fix. r=bustage 2015-09-28 14:21:21 +13:00
Chris Pearce
8ded475d58 Bug 1208289 - Log outstanding frames in GMP DrainComplete() and detect dropped ResetComplete. r=jwwang 2015-09-28 14:03:21 +13:00
Chris Pearce
4e35212ee5 Bug 1208289 - Add SimpleTimer to make setting timeouts in C++ easy. r=jwwang 2015-09-28 14:03:15 +13:00
Chris Pearce
25a4f614a7 Bug 1208348 - Check whether DirectShow can decode MP3 before assuming it will work. r=jya 2015-09-28 14:03:04 +13:00
Jean-Yves Avenard
57037c7820 Bug 1208917: Fix VP9 decoding with recent version of libav. r=kentuckyfriedtakahe
Recent libav do not require a codec parser to decode VP9.
2015-09-28 10:30:03 +10:00
JW Wang
74504dc15a Bug 1207915 - Apply the fix of bug 1052206 to DecodedStream. r=roc. 2015-09-28 05:46:47 +08:00
Ehsan Akhgari
ad3a3c6527 Bug 1208892 - Replace the uses of memset to clean up data in GMPLoader::Load with an inline memset; r=cpearce
This is found by Viva64.  Because the data we're memsetting to 0
may not be used after this point, the compiler can eliminate the
memsets.  We need to roll our own inline memset that cannot be
optimized away.
2015-09-27 17:46:04 -04: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
Kaustabh Datta Choudhury
5270e212b7 Bug 1162003 - Enable run-by-dir mode on Fx desktop mac debug platform and re-enable a few tests. r=jmaher 2015-09-28 10:54:22 -04:00
Karl Tomlinson
dc7019feef bug 864171 move "extra" time accounting for AudioContext with no nodes to destination stream r=padenot
--HG--
extra : rebase_source : 28cb7a858721e80d68603c4adeaea55eb17f13ba
2015-09-23 19:05:46 +12:00
Karl Tomlinson
504ac09b2d bug 1053011 align "extra" time on AudioContext with processing block size r=padenot
--HG--
extra : rebase_source : efaf55d88a5c25e01d56a701a0f88205d67424f8
2015-09-23 19:52:26 +12:00
Jean-Yves Avenard
3f3757ce78 Bug 1207429: P2. Enable FFmpeg by default if available. r=kentuckyfriedtakahe
By default we only use libav 9 or FFmpeg 1.2 if found on the system.

If media.fragmented-mp4.ffmpeg.enabled is set, will allow use of libav 0.7 and ffmpeg 0.8 or later.
2015-09-27 15:19:28 +10:00
Jean-Yves Avenard
e071e87392 Bug 1207429: P1. remove media.fragmented-mp4.exposed pref. r=kentuckyfriedtakahe 2015-09-27 15:19:27 +10:00
Jean-Yves Avenard
abc4fb6966 Bug 1207119: [mp3] Properly read channels count. r=esawin
The channel count is stored on bit 6 & 7 of byte at offset 3.
2015-09-27 15:19:27 +10:00
Wes Kocher
40f2f82907 Merge m-c to inbound, a=merge 2015-09-25 18:02:38 -07:00
Carsten "Tomcat" Book
4952084732 Backed out 3 changesets (bug 1155923) for causing test failures in promises-call.html
Backed out changeset 321a932e01a7 (bug 1155923)
Backed out changeset 6ac38acd6ab2 (bug 1155923)
Backed out changeset 2981db92416a (bug 1155923)
2015-09-28 14:02:41 +02:00
Nicholas Nethercote
d0c4a9db1b Bug 1208300 (part 4) - Remove gfxRGBA and some related things. r=jwatt.
Hooray!

--HG--
extra : rebase_source : d691b55eef5a8655aa98b81b5398452a5ebe860d
2015-09-24 19:24:16 -07:00
Jean-Yves Avenard
7ae057dc90 Bug 1207946: [MSE] P3. Reset cached demuxing index when new data overwrite the end. r=gerald
This will force an iterative search upon the next demux request.
2015-09-29 12:31:33 +10:00
Jean-Yves Avenard
488a0d19d9 Bug 1207946: [MSE] P2. Fix seek when target isn't found exactly in a buffered range. r=gerald 2015-09-29 12:31:32 +10:00
Jean-Yves Avenard
9cd4267bfc Bug 1207946: [MSE] P1. Ensure we stop on the closest keyframe when seeking. r=gerald
Should the first frame in the trackbuffer have a time superior to the seek target, mNextSampleTime would be incorrectly set to 0.
2015-09-29 12:31:32 +10:00
Jean-Yves Avenard
9396c59cd0 Bug 1089586: Abort pending seeks. r=jwwang
We only perform the last seek requested instead.
2015-09-29 11:37:15 +10:00
Jean-Yves Avenard
9323ac2f6a Bug 1208799: [webm] Use first track found. r=kinetik 2015-09-29 11:37:14 +10:00
Chris Pearce
d565fd2492 Bug 1208289 - Log outstanding frames in GMP DrainComplete() and detect dropped ResetComplete. r=jwwang
* * *
Bug 1208289 - Yet another bustage fix. r=bustage
2015-09-29 13:06:14 +13:00
Chris Pearce
e85e9eca24 Bug 1208289 - Add SimpleTimer to make setting timeouts in C++ easy. r=jwwang 2015-09-29 13:06:11 +13:00
Randell Jesup
0436e895eb Bug 1178091: tests for large DataChannel transfers and onbufferedamountlow event r=drno 2015-09-28 19:02:58 -04:00
Eugen Sawin
949294537b Bug 1190379 - Disable surface copying on emulators. r=snorp 2015-09-29 00:56:51 +02:00
Eugen Sawin
847a4ccf96 Bug 1190379 - Use AndroidDecoderModule for VP8/9. r=jya 2015-09-29 00:56:51 +02:00
Hayden Huang
997857d190 Bug 1175447 - mono audio support. r=padenot, r=sotaro
This patch is to enable mono audio option for those who has full hearing loss in one ear.
With this feature, they can get the complete audio with using one ear.

--HG--
extra : transplant_source : %EC%27%97%1Ai%0D%E3%BC%D0%12%97-K%0Ek%BD%8A%C8%A9%85
2015-08-06 14:30:22 +08:00
Chris Pearce
dc7d7fd07d Bug 1207439 - Don't use GMPVideoDecoderTrialCreator for Primetime. r=edwin 2015-09-25 14:19:46 +12:00
Sotaro Ikeda
34a6dca7cc Bug 1205351 - Replace nsBaseHashtable::Enumerate() calls in dom/media/ with iterators r=cpearce 2015-09-24 18:48:25 -07:00
Nicholas Nethercote
842dd1cf5a Bug 1207741 - Remove gfxIntSize. r=nical.
gfxIntSize is just a typedef of gfx::IntSize, so this is very mechanical. The
only tricky part is deciding for each occurrence whether to replace it with
IntSize, gfx::IntSize or mozilla::gfx::IntSize; in all cases I went with the
shortest one that worked given the existing "using namespace" declarations.

--HG--
extra : rebase_source : 67fd15f87222b16defa70ef795c6d77dfacf1c36
2015-09-23 11:49:05 -07:00
Jeff Gilbert
187dfafc29 Bug 1191042 - Use CreateOffscreen for WebGL instead of CreateHeadless. - r=jrmuizel 2015-09-24 12:21:05 -07: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
Paul Adenot
cb424cc5a1 Bug 1200579 - Stop copying AudioParam timelines. r=karlt
--HG--
extra : rebase_source : 3acc85754acb096843c45d5ad12e8e3f7954ecdc
2015-09-25 15:57:55 +02:00
Andreas Pehrson
227494cba0 Bug 1103188 - Always check tracks on getUserMedia(). r=jib
--HG--
extra : commitid : FxucwRqUZUo
2015-09-25 23:23:31 +08:00
Andreas Pehrson
35220b1c7c Bug 1103188 - MediaStream::AddTrack/RemoveTrack tests. r=jib,roc
--HG--
extra : commitid : FxucwRqUZUo
2015-09-25 23:23:31 +08:00
Andreas Pehrson
9d10fc1441 Bug 1103188 - Break out MediaTrackListListener to an interface. r=roc
Other modules than MediaTrackLists may want to receive updates on a
DOMMediaStream's track set. This moves the MediaTrackListListener out of
the MediaTrackList class into DOMMediaStream as a general interface.

The logic for adding MediaTracks to the MediaTrackList when
MediaStreamTracks are added or removed from a DOMMediaStream is moved to
HTMLMediaElement as this fits the model better - HTMLMediaElement is the
owner of the MediaTrackLists.

--HG--
extra : commitid : FxucwRqUZUo
2015-09-25 23:23:31 +08: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
cc2405535d Bug 1103188 - MediaStream::AddTrack/RemoveTrack implementation. r=roc
--HG--
extra : commitid : FxucwRqUZUo
2015-09-25 23:23:30 +08:00
Andreas Pehrson
e4aa371fe5 Bug 1103188 - MediaStream WebIDL update with addTrack/removeTrack. r=smaug,jib
--HG--
extra : commitid : FxucwRqUZUo
2015-09-25 23:23:30 +08:00
Andreas Pehrson
dd7c08d0b3 Bug 1170958 - Destroy track-locked MediaInputPorts when the track ends. r=roc
This is needed to make tests pass until we have bug 1208316 implemented.

--HG--
extra : commitid : Kvj9RrN9MgP
2015-09-25 23:23:18 +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
f02743d4ff Bug 1170958 - Add DOMMediaStream::OwnedStreamListener. r=roc
A DOMMediaStream's owned stream is piped from the input stream which is
under the control of the DOMMediaStream's owner/producer (like
captureStream or gUM). When producers like these create new tracks after
the stream has already been created (the initial set should be available
to JS synchronously), it is nice if the DOMMediaStream picks them up
automatically and create the corresponding MediaStreamTracks.

The OwnedStreamListener added here does just that; creates an owned
MediaStreamTrack when a track appeared in the stream that didn't already
have a MediaStreamTrack.

It also moves the logic for ended tracks from the PlaybackStreamListener
to the OwnedStreamListener as we previously would see a track end in the
playbak stream after removeTrack() and that would be interpreted as the
track ending at the source.

--HG--
extra : commitid : Kvj9RrN9MgP
2015-09-25 23:23:18 +08:00
Andreas Pehrson
3c0c283fea Bug 1170958 - Improve logging of MediaStreams and playback. r=roc
--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
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
Chris Pearce
e9dd5ecb69 Bug 1208349 - Ensure we query PDM whether it supports MP4 before assuming it supports MP4. r=jya 2015-09-25 23:17:50 +12:00
Gian-Carlo Pascutto
f9d40d7b02 Bug 1205164 - Fix ShmemPool detection of failed allocations. r=jesup 2015-09-25 12:30:46 +02:00
Gian-Carlo Pascutto
d1550b7cc5 Bug 1205164 - Make sure ShmemPool high water mark is logged in all allocators. r=jesup 2015-09-25 12:30:46 +02:00
Carsten "Tomcat" Book
1c9015e1a5 Backed out 1 changesets (bug 1208349) for m2 and w2/3 test failures
Backed out changeset 188a6e9a86a0 (bug 1208349)
2015-09-25 11:54:49 +02:00
Chris Pearce
af04bc849a Bug 1208349 - Ensure we query PDM whether it supports MP4 before assuming it supports MP4. r=jya 2015-09-25 18:38:22 +12:00
Andreas Pehrson
143e9256c4 Bug 1192170 - Remove media capture indicator when all tracks have ended. r=jib
--HG--
extra : commitid : 7nO1zyYTfLV
extra : rebase_source : 4761874ce4d5bb2d5675d3fa8e235cb491348919
2015-09-25 13:55:29 +08:00
Gerald Squelart
9c5368f80d Bug 1200326 - p5 - Moved fallible code from MP4TrackDemuxer constructor to caller - r=jya
In MP4TrackDemuxer constructor, getting the track info and indices could potentially fail, triggering crashing assertions.
The fallible work is now done before calling the constructor, and if it fails a nullptr is returned, which is correctly handled in MediaFormatReader.
Also reordered some MP4TrackDemuxer members for more natural construction.
2015-09-23 00:47:00 +02:00
Martin Thomson
9c3bef623e Bug 1155923 - Removing moz prefix from RTC interfaces. r=jesup r=smaug
--HG--
extra : transplant_source : 1%F0%A8%03%D3%B9OAJW%06v%21%F1WX%03im%22
2015-09-24 16:31:47 -07:00
Randell Jesup
b7ab4c0916 Bug 953265: make getUserMedia fake audio tones configurable in frequency via pref r=jib 2015-09-24 09:23:37 -04:00
Randell Jesup
93f63e0a1a Bug 953265: Update webrtc/getUserMedia default audio capture rate to 32KHz r=padenot 2015-09-24 09:23:37 -04:00
Carsten "Tomcat" Book
4fe48de950 Backed out 1 changesets (bug 1207915) for windows m3 test failures
Backed out changeset 84fd96dc7ddc (bug 1207915)
2015-09-24 11:44:25 +02:00
Nigel Babu
c0f6363af9 Backed out changeset 49847eb6c1ce (bug 1180940) for Mulet Gij(4) bustage on CLOSED TREE 2015-09-24 12:37:52 +05:30
Nigel Babu
99377b8efb Backed out changeset dcbabf6ce153 (bug 1188643) for linux crashtest bustage 2015-09-24 12:31:20 +05:30
JW Wang
41104e7fe4 Bug 1207915 - Apply the fix of bug 1052206 to DecodedStream. r=roc. 2015-09-24 14:29:01 +08:00
Jean-Yves Avenard
2fc3af55bd Bug 1159343: Interrupt seek early when possible. r=jwwang 2015-09-24 16:46:14 +10:00
Jean-Yves Avenard
2b4485947b Bug 1207478: P4: Make it impossible for the MDSM frame calculation to overflow. r=jwwang
This should make P3 unnecessary as far as the MDSM is concerned.
2015-09-24 16:42:53 +10:00
Jean-Yves Avenard
653783f212 Bug 1207478: P3. Reduce chance of overflow. r=jwwang 2015-09-24 16:42:52 +10:00
JW Wang
bd37364bb2 Bug 1188643. Buffer more audio in audio capture mode to avoid glitches. r=cpearce. 2015-09-24 14:20:38 +08:00
sajitk
33f44061ca Bug 1180940 - Changed return type of AudioDestinationNode::CreateAudioChannelAgent method to return errors, if any methods that it calls fail. Added code to handle the return value in AudioContext::Init(), and its callers. r=baku 2015-09-22 18:16:00 +02:00
Randell Jesup
6027a43516 Bug 1207416: Add Telemetry for time spent in different Load states in WebRTC r=gcp 2015-09-23 14:10:28 -04:00
Karl Tomlinson
cbf602ece7 bug 1207003 only create track for external AudioNodeStreams r=padenot
IsFinishedOnGraphThread() was unnecessary due to the !mFinished test.

--HG--
extra : rebase_source : 6dd493c1b87e0f2f16b897f537990f1ac7abba31
2015-09-18 17:07:40 +12:00
Karl Tomlinson
7fe490cca6 bug 1207003 add GraphTime parameter to ProcessBlock() and remove GetCurrentPosition() r=padenot
This is immediately useful for making the track unnecessary, but will also be
required when switching to the destination node stream for tracking time (bug
1205558) because using GetCurrentPosition() on the destination node stream
would give different results depending on the stream processing order (when
called during processing of streams not strictly upstream from the destination
node).

--HG--
extra : rebase_source : 7a3432b2e6a20fa3f42be05776c178dfda64d166
2015-09-18 17:05:25 +12:00
Karl Tomlinson
aa9fd09fa4 bug 1207003 remove unused aStream parameter r=padenot
--HG--
extra : rebase_source : b3c453cc2c13ca1a22bdc5946a8aa1c07639cbaa
2015-09-18 14:58:26 +12:00
Karl Tomlinson
5dc1c2c5d6 bug 1207003 fetch stream position once instead of three times r=padenot
--HG--
extra : rebase_source : b76cf41cf5eedae7f1b131703e14303e4f642560
2015-09-18 14:27:03 +12:00