Commit Graph

945 Commits

Author SHA1 Message Date
Matthew Gregan
2a28c36ef9 Bug 1388236 - Remove B2G-only AudioChannel code from media playback. r=jwwang 2017-08-10 13:00:07 +12:00
Honza Bambas
2fb8e43c7d Bug 1377206 - Explicitly disable throttling of media HTTP responses, r=cpearce 2017-08-04 04:38:00 +02:00
JW Wang
5df0f2fb77 Bug 1383628. P5 - move CanClone() from MediaResource to BaseMediaResource. r=gerald
1. we move clone related methods to BaseMediaResource which is the only cloneable sub-class of MediaResource.
2. add CanClone() to ChannelMediaDecoder to reduce the dependency on MediaResource for HTMLMediaElement.
   MediaResource should be internal details to MediaDecoder.

MozReview-Commit-ID: Hl2nAiuyTO0
2017-08-04 15:29:55 +08:00
JW Wang
16a9ff0929 Bug 1383628. P2 - move the call to Load() into Clone(). r=gerald
MozReview-Commit-ID: 9k8BXLwAepI
2017-08-03 17:47:23 +08:00
Sebastian Hengst
a8245ca35f merge mozilla-inbound to mozilla-central. r=merge a=merge
MozReview-Commit-ID: JhesEg4Bxjy
2017-08-04 19:28:27 +02:00
Bill McCloskey
969eb187fa Bug 1364821 - Introduce AbstractThread::AutoEnter and remove main thread's AbstractThread::GetCurrent() (r=jwwang)
MozReview-Commit-ID: FSLVn7xe3sq
2017-08-03 14:19:02 -07:00
JW Wang
c3c7fb0a44 Bug 1384831. P5 - remove unused arguments from HLSDecoder::Load(). r=gerald
MozReview-Commit-ID: JsULuDcMiNa
2017-07-27 02:54:53 +08:00
JW Wang
0424576da8 Bug 1384831. P2 - rewrite HTMLMediaElement::InitializeDecoderForChannel() and move HLSDecoder creation code to it. r=gerald
Since we will remove ChannelMediaDecoder from HLSDecoder's base class, we can't
create HLSDecoder in InstantiateDecoder which returns a ChannelMediaDecoder.

MozReview-Commit-ID: 9wcrIVIOZFp
2017-07-26 15:49:03 +08:00
Paul Adenot
fe1e6433f6 Bug 1385305 - Change CanBeCaptured and friends so that they use explicit and self-explaining constants. r=jya
MozReview-Commit-ID: Hpuxlc8Ib5j
2017-07-28 17:53:12 +02:00
JW Wang
07f6b2ed41 Bug 1385699. P3 - remove MediaDecoder::SetInfinite() and related code. r=cpearce
Since inf can be encoded in MDSM::mDuration, we don't need an additional flag
in MediaDecoder to indicate 'infinite' anymore. Note duration change from infinite
to finite is handled by MDSM, so we can remove the explicit calls to SetInfinite(false).

MozReview-Commit-ID: EoxwZJzPAJl
2017-08-01 14:15:29 +08:00
Paul Adenot
e68762886b Bug 1384247 - Check if an HTMLMediaElement can be capture before doing it. r=dminor
MozReview-Commit-ID: EWpf2qA2Yce
2017-07-27 16:02:28 +02:00
Gerald Squelart
e4e286e64e Bug 1383984 - Enable debugging HTMLMediaElement APIs with 'tabs' permission - r=jya,smaug
While "debugger" is not available yet, we can enable these debugging APIs for
extensions that have the "tabs" privilege, which includes the Media Panel
Devtools extension, so we/webdev will get better media-playback information.

MozReview-Commit-ID: I0MAZH9g0HU
2017-07-25 15:53:01 +12:00
Jean-Yves Avenard
9b3aa49302 Bug 1382303 - P2. Do not activate autoplay early. r=jwwang
Per spec, autoplay should only gets triggered once readyState is equal to HAVE_ENOUGH_DATA

MozReview-Commit-ID: 6nW1U6G1qme
2017-07-20 19:11:44 +02:00
JW Wang
7ba3b7eab7 Bug 1380569. P3 - remove AbstractMediaDecoder::NotifyWaitingForKey() and its callers. r=gerald
MozReview-Commit-ID: 3fHDr0xw92P
2017-07-13 14:52:05 +08:00
JW Wang
6e89499aaf Bug 1380569. P1 - rename CannotDecryptWaitingForKey() to NotifyWaitingForKey() and add the function to MediaDecoderOwner. r=gerald
We will use MediaEventSource to plumb the event from MFR to the media element.

MozReview-Commit-ID: 4gaEx7vYybE
2017-07-13 14:41:09 +08:00
JW Wang
f7b934bab5 Bug 1376004. P1 - include http response code in the error.message field so the UI has more details to display a proper error message. r=cpearce
MozReview-Commit-ID: CHBXZZxfPc0
2017-07-14 15:17:32 +08:00
Bevis Tseng
0e843ba44f Bug 1341540 - Label runnables in dom/html/HTMLMediaElement.cpp. r=jwwang
MozReview-Commit-ID: 7i0MhGWoNPb
2017-07-07 10:36:13 +08:00
Olli Pettay
36c7177e03 Bug 1378196, Make IsEventAttributeName non-virtual in common case, r=ehsan 2017-07-04 23:54:30 +03:00
Paul Adenot
aadd3c3a24 Bug 1341555 - Consolidate use of the MSG's AbstractMainThread, and stop having AbstractMainThread on MediaStreams. r=pehrsons
MozReview-Commit-ID: 5hGDQcfpH6a
2017-06-29 11:30:57 -07:00
Paul Adenot
b501ebc61e Bug 1330360 - Create new MSGs for each nsPIDOMWindow. r=jesup
MozReview-Commit-ID: 5m1MGcLmT7J
2017-06-23 16:18:34 -07:00
Paul Adenot
0a1b1a9c7b Bug 1371719 - Don't create a MediaStreamGraph without doing anything with it. r=jesup
The MediaStreamGraph relies on having at least one message sent to its message
queue on creation, or it will just sit there and do nothing, and block shutdown
because its not running its rendering loop, so it's not progressing in the
MediaStreamGraph life cycle state machine.

This patch makes sure the `captureStream` will succeed before creating an MSG.

MozReview-Commit-ID: CN1arWydmxC
2017-06-28 15:19:39 -07:00
JW Wang
464e6d7a38 Bug 1376363. P1 - store container type in MediaDecoder. r=gerald
So we can remove MediaResource::GetContentType() in the future.

MozReview-Commit-ID: zWUNF2uGpf
2017-06-26 17:10:47 +08:00
Chris Pearce
ccdba556af Bug 1376509 - Bump supported playack rates to [1/16,16]. r=padenot
Chrome supports playback rates in the ranges of [1/16,16], so we may as well
support the same.

MozReview-Commit-ID: 7mMXQfPiv9d
2017-06-28 10:00:58 -07:00
Bill McCloskey
ce42826bdf Bug 1372405 - Provide names for all runnables in the tree (r=froydnj)
MozReview-Commit-ID: DKR6ROiHRS7
2017-06-26 14:19:58 -07:00
JW Wang
9b94d757aa Bug 1376227. P5 - merge CreateResource() and Load() for they are highly coupled. r=gerald
MozReview-Commit-ID: EH9NROdQfmd
2017-06-23 15:39:57 +08:00
JW Wang
0064b6f13e Bug 1376227. P4 - remove the unused parameter from FinishDecoderSetup(). r=gerald
MozReview-Commit-ID: 7Ux811oMq9y
2017-06-23 15:25:40 +08:00
JW Wang
e61275e384 Bug 1376227. P3 - move Load() down the class hierarchy. r=gerald
So we won't pass an unused |nsIStreamListener**| to MediaSourceDecoder::Load().

MozReview-Commit-ID: 2TCby8m8K5H
2017-06-23 14:12:41 +08:00
JW Wang
d6e01cebbe Bug 1376227. P2 - remove unused code following P1. r=gerald
MozReview-Commit-ID: JbwY1Owtk7H
2017-06-21 17:34:22 +08:00
JW Wang
f55b75dc89 Bug 1376227. P1 - let MediaDecoder sub-classes have the knowledge how to create a MediaResource. r=gerald
MozReview-Commit-ID: 2fHEkU46MUr
2017-06-21 17:30:56 +08:00
Mats Palmgren
ad8f480b5c Bug 1375075 - Remove a FlushPendingNotifications that we don't need anymore. r=cpearce
The code that needed it was removed in bug 1325053.

MozReview-Commit-ID: 8P60SOpqyPq
2017-06-23 02:03:09 +02:00
Mats Palmgren
a37c7c4e08 Bug 1374875 - Use simpler mutation observer than nsRange for media elements. r=cpearce
MozReview-Commit-ID: FVPdHC6tBXg
2017-06-23 02:03:08 +02:00
JW Wang
f17989ec1b Bug 1374930. P3 - move Clone() down to ChannelMediaDecoder for clone is possible only for those use channel-based resource. r=cpearce
MozReview-Commit-ID: Ci2kbts2pkQ
2017-06-20 18:10:27 +08:00
JW Wang
e1ce375b5d Bug 1374930. P2 - add an entry only after FinishDecoderSetup() succeeds. r=cpearce
MozReview-Commit-ID: 6MKRhVIZ4Z6
2017-06-20 15:27:45 +08:00
JW Wang
e11983b26f Bug 1371202. P1 - plumb the 'loop' attribute into MDSM. r=jya
MozReview-Commit-ID: DtsaXmtQw76
2017-06-08 12:03:10 +08:00
JW Wang
6f518a53ad Bug 1371200. P2 - add more fields to MediaDecoderInit. r=cpearce
Now we can init some members in the constructor and remove the setters
that are called only once.

MozReview-Commit-ID: 2hkrIA6pFlh
2017-06-07 14:10:26 +08:00
JW Wang
87f0f44500 Bug 1371200. P1 - add MediaDecoderInit and fix MediaDecoder constructor and its friends. r=cpearce
We will add more fields to MediaDecoderInit and be able to remove some setters.

MozReview-Commit-ID: BVx935IHQHf
2017-06-07 12:14:11 +08:00
Kirk Steuber
6684b17554 Bug 1365092 - Move side effects of SetAttr, UnsetAttr, and ParseAttribute functions to BeforeSetAttr and AfterSetAttr r=bz
This is necessary to facilitate the transition to cloning attributes instead of reparsing them.

MozReview-Commit-ID: Gyd1tD6ldly
2017-06-07 10:28:20 -07:00
Jean-Yves Avenard
20c79a5e0d Bug 1362165: P7. Only complete appendBuffer once readyState has changed. r=jwwang
MSE specs require that the readyState be modified during either the Initialization Segment Received or the Coded Frame Processing algorithms.

At this stage, we only handle the Initialization Segment part (readyState moving from HAVE_NOTHING to HAVE_METADATA)

MozReview-Commit-ID: KBnnWuHJ6Om
2017-05-09 12:23:11 +02:00
Alastor Wu
152e2f5930 Bug 1362793 - part1 : shouldn't shutdown decoder too early. r=jwwang
The spec says that we don't need to change the ready state when getting the error.
If the ready state is "HAVE_METADATA", it means we could get the video's duration
at that time.

However, if we shutdown decoder too early, we won't get the correct duration.

In addition, since we remove old decoder prior to create new one in the function
HTMLMediaElement::SetDecoder(), we can remove the decoder checking assertion
in HTMLMediaElement::InitializeDecoderForChannel().

MozReview-Commit-ID: CHRJHng8Xm0
2017-05-19 12:38:17 +08:00
Kirk Steuber
e2ea33731f Bug 1363481 - Add the old attribute value as a parameter to Element::AfterSetAttr r=bz
In order to facilitate the movement of code with side-effects called by Element::SetAttr to Element::BeforeSetAttr and Element::AfterSetAttr, Element::AfterSetAttr should have access to the old value of the attribute. This includes information about whether there was previously a value set or not.

Accomplishing this involved passing an additional argument through functions that find and change the old attribute value in order to ensure that we can differentiate between an empty old value and an absent old value (attribute was not set).

Note that while I tried to ensure that accurate values (and their absence) are reported to Element::AfterSetAttr, I largely ignored SVG. While the old value reported for SVG values should be however accurate the value already being reported to SetAttrAndNotify was, SVG elements do not currently report unset values properly because they will never pass a null pointer to SetAttrAndNotify.

MozReview-Commit-ID: K1mha8CNFZP
2017-05-18 14:09:01 -07:00
Tom Ritter
ec1d81f756 Bug 1365036 Lowercase Objbase.h so MinGW can find the file r=baku
MozReview-Commit-ID: JCgyym17EO7
2017-05-15 15:34:58 -05:00
Chun-Min Chang
6ddb34822a Bug 1331763 - part1: Support EME content for AudioContext::CreateMediaElementSource; r=cpearce
MozReview-Commit-ID: 1OMySAPCH4i
2017-05-15 13:21:28 +08:00
Chris Pearce
0ffdf7dd9f Bug 1362212 - Implement HTMLMediaElement.reportCanPlayTelemetry. r=gerald
Defer determining whether we have usable decoders to an off-main thread in
order to avoid janking the main thread.

MozReview-Commit-ID: Ape5zEBBMrz
2017-05-10 11:31:16 +12:00
Alastor Wu
d2b3782047 Bug 1351087 - part1 : don't register agent for audio without audio track. r=baku
Since we don't want to show media control for media without audio track (eg. GIFV),
it's no need to register audio agent for them.

MozReview-Commit-ID: 22YrMkpNrcP
2017-05-09 14:10:43 +08:00
Alastor Wu
341c403406 Bug 1357633 - part1 : request audio focus again when resume media from page. r=baku
Should also update audio playing changed after resumed from page.

MozReview-Commit-ID: 66vuJJFeWN3
2017-05-10 23:43:11 +08:00
Carsten "Tomcat" Book
c807d58426 merge mozilla-inbound to mozilla-central a=merge 2017-05-10 15:07:28 +02:00
Bill McCloskey
c402a046c2 Bug 1363560 - Name more runnables (r=mccr8)
MozReview-Commit-ID: 3hxZDA4JlTV
2017-05-09 21:53:25 -07:00
Tom Tung
5b84b76520 Bug 1348050 - Part 4: Mark channel as urgent-start for loading media. r=baku
The part is mainly to set urgent-start for loading media when it's initiated by
user interaction. For the HTMLMedia element, it has its algorithm to pre-load
the media and users will get feedback once they play the media. Thus, I only
set urgent-start when the media element has autoplay attribute since the sooner
enough resource is loaded the sooner the media will be played.

MozReview-Commit-ID: 7nu3PUt8iYo
2017-04-28 15:27:10 +08:00
Iris Hsiao
52ff06b763 Backed out changeset 763cc804a25d (bug 1361944) for causing crashtest perma failure on Android 2017-05-05 15:12:51 +08:00
JW Wang
d2cf59049a Bug 1361944. P2 - be sure to shut down the existing decoder before loading the next source child. r=cpearce
Otherwise we will fail the assertion (!mDecoder, "Shouldn't have a decoder")
in HTMLMediaElement::InitializeDecoderForChannel().

MozReview-Commit-ID: 1zShp0th3Uv
2017-05-04 13:28:17 +08:00