Commit Graph

76 Commits

Author SHA1 Message Date
Alastor Wu
f235c5746c Bug 1274919 - part2 : implement resume/suspend mechanism in MediaDecoder. r=jwwang
Create the new class "BackgroundVideoDecodingPermissionObserver" to handle the
suspended request sent from the front end side.

We would do registration on startup and deregistration on shutdown of MediaDecoder.

MozReview-Commit-ID: 1UwHA7YuVN3

--HG--
extra : rebase_source : a0bc22999fbf799cd25da8ec423d9f03acc9e8e2
2017-07-20 14:13:37 +08:00
Jean-Yves Avenard
ede50177a8 Bug 1355048: P1. Have WebrtcMediaDataDecoder placeholder. r=jesup
The code currently does nothing.

MozReview-Commit-ID: 6C0sLKIoJEV

--HG--
extra : rebase_source : d297494cdb3589e45bcf28b3ee9d5fac9601b200
2017-04-10 20:40:31 +02:00
Gerald Squelart
dc59f14eff Bug 1378518 - Better MediaCache GetMaxBlocks() computation - r=jwwang
Retrieve pref from MediaPrefs, which is more efficient than
Preferences::GetInt().

Also refactored computations to avoid unnecessary type conversions.

MozReview-Commit-ID: Ii27lthRRNI

--HG--
extra : rebase_source : d1ea46060cd2c35b7fd07a191184c0318187c080
2017-07-06 16:12:58 +12:00
Alfredo Yang
f2e77f3bb0 Bug 1370175 - enable rust mp4 parser on other platforms and fallback to stagefright if rust parser fails. r=kinetik
MozReview-Commit-ID: 6ykgAOagR7a

--HG--
extra : rebase_source : 24b67a9aa1e0c8e5a28e65ee23470738aebd946f
2017-06-14 11:29:10 +08:00
Kaku Kuo
f3ae45c841 Bug 1371188 P4 - add media.decoder.skip-to-next-key-frame.enabled pref; r=jya
MozReview-Commit-ID: HUQX1IeWkEE

--HG--
extra : rebase_source : c2c5a5c0fc1e815273ceb552951978bc0f6f91fd
extra : source : 53e44c5538a6318588d6973ca833067e8df06042
2017-06-12 16:36:42 +08:00
Gerald Squelart
ac5fcad310 Bug 1371882 - Avoid MemoryBlockCache when combined sizes > 'media.memory_caches_combined_limit_...' - r=cpearce
Don't go over the lowest of 'media.memory_caches_combined_limit_kb'
(kilobytes) or 'media.memory_caches_combined_limit_pc_sysmem' (percents of
system memory).

Added more logging around creation/destruction of MediaCaches.

MozReview-Commit-ID: Cdz4ycyn1RR

--HG--
extra : rebase_source : 63168234f186c3ef9c0289a189a647d67d8526a4
2017-06-12 15:42:26 +12:00
Gerald Squelart
527c7d3dee Bug 1371882 - If content length <= 'media.memory_cache_max_size', use a discrete memory-backed MediaCache - r=cpearce
MozReview-Commit-ID: HH1R6LjKkxb

--HG--
extra : rebase_source : 2ce35a504c6709624bc7d161003b8331f6f25d1e
2017-06-09 23:15:04 +12:00
James Cheng
202943a892 Bug 1350246 - [Part4] Add a feature preference for HLS, default on for Fennec. r=jya
MozReview-Commit-ID: AlfMLzGmU5K

--HG--
extra : rebase_source : 95c37887fcf2a53a1c1fa85aa83ec7804d78e89b
2017-05-05 15:57:22 +08:00
Gerald Squelart
1bb5358dcf Bug 1368837 - media.cache.resource-index controls the MediaResourceIndex cache size - r=cpearce
8KB by default, otherwise using the next power of two from the given
media.cache.resource-index (but staying within 32B-128KB).
'0' means we don't want to use caching.

MozReview-Commit-ID: 8LmS15Ft2MA

--HG--
extra : rebase_source : 992f377a07b7ab173a64fcfbfe45df1da87df31e
2017-05-30 21:43:28 +12:00
Alfredo Yang
e6b2ddf4c2 Bug 1364872 - take zero tolerance of decoding error in debug and playback test. r=jya
MozReview-Commit-ID: 9DYBfyIvGvk

--HG--
extra : rebase_source : 81c85e2f271110fe85f94fb687a60820fc37f0fa
2017-05-24 15:25:09 +08:00
James Willcox
4649c2acf0 Bug 1322650 - Don't use AndroidBridge to get API version in media stack r=jolin
AndroidBridge is not available in child processes.

MozReview-Commit-ID: KlBs8F1Bu1O
2017-05-15 09:37:57 -05:00
Chris Pearce
8be5473cac 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

--HG--
extra : rebase_source : 1b77046ebb7bb2d4ff1ba53afce904d3de45c335
2017-05-10 11:31:16 +12:00
Sebastian Hengst
0f3dde8a14 Backed out changeset 5f263d6fb16d (bug 1362212) for build bustage on Linux - fails testing/xpcshell/selftest.py | XPCShellTestsTests.testAddTaskStackTrace. r=backout 2017-05-07 23:12:35 +02:00
Chris Pearce
aa3f97c3ef Bug 1362212 - Move canPlayType telemetry to an idle service observer off main thread. r=gerald
Currently we call HTMLMediaElement.canPlayType() in a JS function called
shortly after startup in order to collect telemetry as to how many of our users
don't have functioning decoders.

Unfortunately, HTMLMediaElement.canPlayType() checks whether we can play a
codec by instantiating a decoder, and this requires us to load the system
decoding libraries from disk. This requires disk I/O, which can cause jank. We
have some BHR reports showing that canPlayType can hang for > 8 seconds to back
this up.

So move the collection of this telemetry to an idle service observer, so that
we only collect this when the user is idle, and do it on a non-main thread so
it is less likely to cause jank.


MozReview-Commit-ID: HJQawmRxz

--HG--
extra : rebase_source : f5a8596fd9de770abd20e1a3e8ac0bcbb5b48599
2017-05-05 13:55:14 +12:00
Jan Beich
38210c8500 Bug 1357988 - Don't use IPC macros for media pref defaults. r=alfredo
MozReview-Commit-ID: 5b7YBewT52a

--HG--
extra : rebase_source : 5e7750ca38a8ca971655b347c3ac1c3a02a3df0b
2017-04-20 03:10:36 +00:00
Gerald Squelart
c93b449e6b Bug 1341483 - MP4Metadata::GetNumberTracks() now also returns a success/error code - r=kinetik
In addition to the returned MediaResult, a special number-of-tracks value
(not just 0) indicates an unrecoverable error.

For Rust-vs-Stagefright comparison purposes, an error is considered the same
as 0 (because Stagefright never returns errors, but Rust may, so complaining
about that would be too noisy, and useless to us.)

MozReview-Commit-ID: IwadWSOIWr4

--HG--
extra : rebase_source : 29f53ee6a02a0431adb0b615a122a4e7b480108c
2017-02-27 13:36:59 +11:00
Gerald Squelart
4101482ad6 Bug 1343437 - 'media.playback.warnings-as-errors' pref - r=jya
If 'media.playback.warnings-as-errors' is true, demuxing and decoding warnings
(i.e., non-fatal errors) will be treated as errors, causing playback to fail.

Currently set to false by default.

This could be later changed to catch and diagnose more issues.

MozReview-Commit-ID: BTaZ6TbIbNG

--HG--
extra : rebase_source : bacc24a46f588dd344e6d46178ae2d2c58882fcb
2017-03-03 16:10:48 +11:00
Alfredo.Yang
6771c4ebbd Bug 1354963 - enable rust mp4 parser on linux release. r=kinetik
MozReview-Commit-ID: D0CzBQYL8mz

--HG--
extra : rebase_source : 6c24f85a2cb5075fba8426dafd323d217a674cb9
2017-04-10 09:23:21 +08:00
Chris Pearce
967567edb5 Bug 1351953 - Pre-allocate shmems for the CDM process to use for storing decrypted and audio samples. r=gerald
Makes transfer of samples between the content and CDM processes use shmems.

The Chromium CDM API requires us to implement a synchronous interface to supply
buffers to the CDM for it to write decrypted samples into. We want our buffers
to be backed by shmems, in order to reduce the overhead of transferring decoded
frames. However due to sandboxing restrictions, the CDM process cannot allocate
shmems itself.  We don't want to be doing synchronous IPC to request shmems
from the content process, nor do we want to have to do intr IPC or make async
IPC conform to the sync allocation interface. So instead we have the content
process pre-allocate a set of shmems and give them to the CDM process in
advance of them being needed.

When the CDM needs to allocate a buffer for storing a decrypted sample, the CDM
host gives it one of these shmems' buffers. When this is sent back to the
content process, we copy the result out (uploading to a GPU surface for video
frames), and send the shmem back to the CDM process so it can reuse it.

We predict the size of buffer the CDM will allocate, and prepopulate the CDM's
list of shmems with shmems of at least that size, plus a bit of padding for
safety. We pad frames out to be the next multiple of 16, as we've seen some
decoders do that.

Normally the CDM won't allocate more than one buffer at once, but we've seen
cases where it allocates two buffers, returns one and holds onto the other. So
the minimum number of shmems we give to the CDM must be at least two, and the
default is three for safety.


MozReview-Commit-ID: 5FaWAst3aeh

--HG--
extra : rebase_source : a0cb126e72bfb2905bcdf02e864dc654e8340410
2017-03-28 18:59:11 +13:00
Munro Mengjue Chiang
5907cfe44d Bug 1265755 - Implement remote vp8 encoder and enable/disable them with pref; r=jolin
MozReview-Commit-ID: JZ1eUZNLAKq

--HG--
extra : rebase_source : 3d0da18ab91239db56d5425889d638b184e02b82
2017-03-30 09:00:13 +08:00
Alfredo.Yang
0e5b3d1e8c Bug 1341221 - enable rust mp4 parser on linux debug build. r=kinetik
MozReview-Commit-ID: DSkDsDpz0uO

--HG--
extra : rebase_source : c602d06def9a0647503c78c3a2e72310d053ebce
2017-03-26 23:19:49 +08:00
Alfredo.Yang
fb9844d916 Bug 1330243 - add preference to enable rust mp4 parser. r=kinetik
MozReview-Commit-ID: LINNEMiXYx4

--HG--
extra : rebase_source : 747b9854b0d5d1f0419c59c5966414872e8ea158
2017-03-14 15:42:09 +08:00
Chris Pearce
1170a36613 Bug 1315850 - Add pref to toggle on new CDM decoder backend. r=gerald
MozReview-Commit-ID: HegDqYBJCse

--HG--
extra : rebase_source : 3df4dd5bb8a89e75478b059a030193daaead1ed5
2017-02-22 14:40:30 +13:00
Alfredo.Yang
69731f92d5 Bug 1341967 - remove MOZ_RUST_MP4PARSE. r=kinetik
MozReview-Commit-ID: SgTlIo8wEi

--HG--
extra : rebase_source : 263a6cfcf50ee3582f3dc1bfc43d4fa0dcc00800
2017-03-01 14:44:42 +08:00
Jean-Yves Avenard
afb15861d6 Bug 1342645: Rename low latency preference. r=gerald
Make it available if either FFmpeg or FFVPX is configured

MozReview-Commit-ID: 7VTWQ7km4tV

--HG--
extra : rebase_source : 453db0336f47f6dcd657c33345d3894aaa54f882
2017-02-25 23:53:53 +01:00
Wes Kocher
b7294d3167 Merge inbound to central, a=merge
MozReview-Commit-ID: 2R3yE5OIznC
2017-02-22 15:01:04 -08:00
Jean-Yves Avenard
a65131a76f Bug 1322739: P3. Add low-latency option to FFmpeg. r=gerald
ContentPrefs.cpp line ending was incorrectly set to CRLF.

MozReview-Commit-ID: LIcZNnNzFd8
2017-02-22 13:02:59 +01:00
Jan Beich
6c749c1bbd Bug 1341108 - Work around libcubeb backends without multi-channel support. r=jya
MozReview-Commit-ID: H5ROBTMVkkE

--HG--
extra : rebase_source : 70869fd590575f98f515c4b7deb90180399e8588
2017-02-20 20:00:50 +00:00
Jean-Yves Avenard
b1c337cb35 Bug 1340096: Remove MediaCodecDataDecoder. r=bwu,jolin
We prefer the RemoteDataDecoder instead.

MozReview-Commit-ID: SK0D3hycRh

--HG--
extra : rebase_source : 97899154bf5fcbcd2feb44ac82879a79eabb44f7
2017-02-16 12:26:53 +01:00
Chun-Min Chang
604e6157c3 Bug 1338012 - Enable multiple channels for audio on non-Android platforms; r=jya
MozReview-Commit-ID: Jgi5XOceom3

--HG--
extra : rebase_source : 020c76f3511f32a6389acd3cd84d90cc4fd9c9d0
2017-02-12 15:24:59 +08:00
Chun-Min Chang
37b2c71e24 Bug 1323659 - Enable audio multi-channels on Linux; r=jya
MozReview-Commit-ID: 4nRHiH1JcbE

--HG--
extra : rebase_source : 8276abfc24b4d7436b737b121442da3bd1bc95d1
2017-02-08 12:56:20 +08:00
Chun-Min Chang
561671475d Bug 1321502 - part 1: Enable multi-channel support in Gecko on Windows; r=jya
MozReview-Commit-ID: KURUk3EffOu

--HG--
extra : rebase_source : a0ce3fb8691f45a33995a3ce1ba895c254a35c8c
2017-01-26 17:35:31 +08:00
Chris Pearce
21ef31a22a Bug 1335295 - [EME] Add pref to override EME decrypt/decode with blank decoder. r=jya
This means we can isolate whether a playback failure is in
the audio or video stream.

MozReview-Commit-ID: G4broHPaAkX

--HG--
extra : rebase_source : a3648a305734cda1b2205fda96009099203a0310
2017-01-31 15:42:45 +13:00
Chris Pearce
abf5ab3771 Bug 1331829 - Remove async shutdown GMP API. r=gerald
Now that we're not supporting Adobe EME anymore, we don't need to
provide a mechanism for GMPs to block browser shutdown.

MozReview-Commit-ID: KUC94IBQiod

--HG--
extra : rebase_source : ed521f28e272de11b2d0c4546b98baf6bd7c6e72
2017-01-18 15:01:56 +13:00
Gerald Squelart
6f289c28b5 Bug 1329824 - media.wmf.allow-unsupported-resolutions - r=jya
MozReview-Commit-ID: 64CC6inOluH

--HG--
extra : rebase_source : ecf82c1c6194430a42b8c093e167a472926c96d6
2017-01-16 09:26:54 +11:00
James Cheng
4724a58460 Bug 1299105 - Part 2: Make Part 1 works behind a pref. r=jya
MozReview-Commit-ID: AcEFAGP8kuR

--HG--
extra : rebase_source : e537acd0311a9f2a0746a5b8306292cdc04d05ac
2016-11-29 15:03:14 +08:00
Jean-Yves Avenard
d3a0f99985 Bug 1313632: P1. Remove unused OggReader. r=kaku
Also remove related preference.

MozReview-Commit-ID: D5pkyPXAoG9

--HG--
extra : rebase_source : 845d14a7059ae54d939300bb0f7f51664da05ff4
2016-11-09 11:54:41 +11:00
Gerald Squelart
6f36d2e8a8 Bug 1313343 - media.wmf.skip-blacklist controls D3D blaclists - r=cpearce
If pref "media.wmf.skip-blacklist" is true, disable D3D blacklisting based on
"media.wmf.disable-d3d9-for-dlls" and "media.wmf.disable-d3d11-for-dlls".

MozReview-Commit-ID: IothZlUnK7h

--HG--
extra : rebase_source : 1731b39808526fce70d84342a016bd25b6cd8571
2016-11-07 18:12:51 +11:00
JW Wang
2d31845215 Bug 1311872. Part 3 - enter dormant when being paused for a while. r=cpearce,jya
MozReview-Commit-ID: HJjhFebQ8WI

--HG--
extra : rebase_source : 4d1c68c2ce2d4b156d962c61d24b8fe1d4cbae0e
extra : intermediate-source : f45501530b47ad269f471e58d711d34267478cfa
extra : source : 3cd38509ca63b789bfc6325222e7ef80133958ec
2016-10-20 14:45:05 +08:00
Matt Woodrow
552d016944 Bug 1300678 - Use gfxPrefs for media vars that get accessed from the GPU process. r=jya 2016-11-03 09:57:18 +13:00
Ryan VanderMeulen
a41f7d1058 Merge autoland to m-c. a=merge 2016-10-29 09:12:45 -04:00
Chris Pearce
b691c3f403 Bug 1310879 - Remove EME persistent-license sessions. r=gerald
This removes the ability for ClearKey to instantiate persistent-license
sessions using the EME APIs.

MozReview-Commit-ID: FXj5YORxpas

--HG--
extra : source : b69b2435f1059a5c7b1dd26947ea500b381ec7f0
2016-10-18 15:42:02 +13:00
Jean-Yves Avenard
788c9353cc Bug 1292374: P3. Enable VP9 hardware acceleration on windows. r=gerald
MozReview-Commit-ID: BETY7nFDu5o

--HG--
extra : rebase_source : 2264dee30253c98885e761054799ae893cb927c3
2016-10-28 17:03:56 +11:00
Jean-Yves Avenard
fea3627b11 Bug 1292374: P2. Change preference name as it's no longer restricted to intel. r=gerald
MozReview-Commit-ID: EKZjkj9SFDw

--HG--
extra : rebase_source : e022610307232edc17b746f01879b2cddc16b6ef
2016-10-28 17:03:25 +11:00
Gerald Squelart
e076c9edaa Bug 1263665 - media.libavcodec.allow-obsolete=true bypasses blocking - r=jya
If "media.libavcodec.allow-obsolete" is set to true, the checks for older
libavcodec library versions are ignored.

MozReview-Commit-ID: HBhHfFomsrr

--HG--
extra : rebase_source : 6bfe06bd4354fcda90d7d33bedcbd176663cab31
2016-10-05 15:04:04 -07:00
Sebastian Hengst
cdcc9e20da Bug 1304829 - rename RELEASE_BUILD to RELEASE_OR_BETA: main part. r=ted,Mossop
MozReview-Commit-ID: 1lCt0xTMV5O
2016-10-08 11:14:49 +02:00
Carsten "Tomcat" Book
f907696c77 Backed out changeset 5db740625292 (bug 1263665)
--HG--
extra : rebase_source : c288221771dfe66ac860504e7c8fa5e51abc6775
2016-10-05 16:05:06 +02:00
Gerald Squelart
0599e78abf Bug 1263665 - media.libavcodec.allow-obsolete=true bypasses blocking - r=jya
If "media.libavcodec.allow-obsolete" is set to true, the checks for older
libavcodec library versions are ignored.

MozReview-Commit-ID: HBhHfFomsrr

--HG--
extra : rebase_source : 2f42348018b19d20be64001df737b342e1813274
2016-10-04 23:52:45 -07:00
Matt Woodrow
d4df25998c Bug 1288618 - Part 11: Add a pref to enable GPU process video decoding. r=cpearce 2016-09-21 21:24:44 +12:00
Carsten "Tomcat" Book
f918af64da Backed out 16 changesets (bug 1288618) for bustage on a CLOSED TREE
Backed out changeset 06187d250f7a (bug 1288618)
Backed out changeset 2a47f8ea1d89 (bug 1288618)
Backed out changeset e179c8e8265d (bug 1288618)
Backed out changeset 25396a1af922 (bug 1288618)
Backed out changeset e98f835c6ee5 (bug 1288618)
Backed out changeset 24df0e89b273 (bug 1288618)
Backed out changeset f8bbdabdb6da (bug 1288618)
Backed out changeset 8b0adeab93df (bug 1288618)
Backed out changeset 95f23366de82 (bug 1288618)
Backed out changeset 63a9c689e1d5 (bug 1288618)
Backed out changeset 8f67443dccb8 (bug 1288618)
Backed out changeset 4e7fe69d5f45 (bug 1288618)
Backed out changeset 53b113acee42 (bug 1288618)
Backed out changeset 2583ae4e2e3b (bug 1288618)
Backed out changeset 75a61d0e71b7 (bug 1288618)
Backed out changeset da740b4fd484 (bug 1288618)
2016-09-21 08:44:11 +02:00