Commit Graph

393 Commits

Author SHA1 Message Date
Andrew McCreight
0f605627fd Bug 1523013 - Clear SamplesWaitingForKey::mProxy in Shutdown(). r=cpearce
There's a strong cycle of references between SamplesWaitingForKey and
CDMProxy that does not get cleared unless keys actually come in. This
causes a leak. One way to avoid that leak is to clear the proxy
reference when the things holding the SamplesWaitingForKey is shut
down.

Differential Revision: https://phabricator.services.mozilla.com/D17960

--HG--
extra : moz-landing-system : lando
2019-01-30 22:56:21 +00:00
Ehsan Akhgari
e5e885ae31 Bug 1521000 - Part 2: Adjust our clang-format rules to include spaces after the hash for nested preprocessor directives r=sylvestre
# ignore-this-changeset

--HG--
extra : amend_source : 7221c8d15a765df71171099468e7c7faa648f37c
extra : histedit_source : a0cce6015636202bff09e35a13f72e03257a7695
2019-01-18 10:16:18 +01:00
Bryce Van Dyk
fa9d86fda5 Bug 1487416 - Replace mValid and mMode with mCryptoScheme for track and sample crypto structs. r=jya
Explicitly store the crypto scheme being used on our crypto structs to let us
differentiate between cenc and cbcs data. In doing so remove mMode and replace
mValid with IsEncrypted() for the following reasons:
- Different modes within the existing schemes are not currently utilized by the
  spec: the scheme implies mode. Having a mode and a scheme could lead to confusion
  between the two. We can return mMode if ever needed by the spec --
  possibly if the isProtected flag which we were tracking with mMode, is
  ever changed to be more than a bool in the spec.
- mValid was typically used to check if these structs contained valid crypto
  data or not. With only one scheme this was often shorthand for 'IsEncrypted',
  but with multiple schemes what is considered valid data for one may not be for
  another. Do away with this and just explicitly have an 'IsEncrypted'.

Differential Revision: https://phabricator.services.mozilla.com/D15874

--HG--
extra : moz-landing-system : lando
2019-01-11 15:29:45 +00:00
Cosmin Sabou
15939f75f2 Backed out 6 changesets (bug 1487416) for causing Android build bustages on RemoteDataDecoder.cpp. CLOSED TREE
Backed out changeset 05bcc598e9fb (bug 1487416)
Backed out changeset b99936efbbc9 (bug 1487416)
Backed out changeset ee55b284223e (bug 1487416)
Backed out changeset d25449127f8f (bug 1487416)
Backed out changeset f7c201b7f9bc (bug 1487416)
Backed out changeset 233aedc8b42e (bug 1487416)
2019-01-10 23:37:20 +02:00
Bryce Van Dyk
1a3a965df3 Bug 1487416 - Replace mValid and mMode with mCryptoScheme for track and sample crypto structs. r=jya
Explicitly store the crypto scheme being used on our crypto structs to let us
differentiate between cenc and cbcs data. In doing so remove mMode and replace
mValid with IsEncrypted() for the following reasons:
- Different modes within the existing schemes are not currently utilized by the
  spec of implementation. Having a mode and a scheme could lead to confusion
  between the two. We can return mMode if ever needed by the spec.
- mValid was typically used to check if these structs contained valid crypto
  data or not. With only one scheme this was often shorthand for 'IsEncrypted',
  but with multiple schemes what is considered valid data for one may not be for
  another. Do away with this and just explicitly have an 'IsEncrypted'.

Differential Revision: https://phabricator.services.mozilla.com/D15874

--HG--
extra : moz-landing-system : lando
2019-01-10 18:37:48 +00:00
Jean-Yves Avenard
44594dd77a Bug 1510265 - P1. Enforce template-parameter classes restrictions in MozPromise. r=gerald
And some required fixes to make things compile.

Differential Revision: https://phabricator.services.mozilla.com/D13868

--HG--
extra : moz-landing-system : lando
2018-12-06 16:26:01 +00:00
Alex Chronopoulos
e1c6dec154 Bug 1509327 - Use timing and color information from decoded picture in dav1d wrapper. r=jya
Latest dav1d version supports to store the timing information in undecoded frame and restore it later from decoded picture. This can provide more accurate timing especially during drain. In additionto that, colorspace information is set according to the size of the image. Finally this patch addresses some style comments.

Differential Revision: https://phabricator.services.mozilla.com/D13428

--HG--
extra : moz-landing-system : lando
2018-12-01 22:03:29 +00:00
Andreea Pavel
8e973f56b2 Backed out 3 changesets (bug 1509327) for build bustages on a CLOSED TREE
Backed out changeset aeb00b8974a4 (bug 1509327)
Backed out changeset ea27440a2126 (bug 1509327)
Backed out changeset 9881fd46fde2 (bug 1509327)
2018-11-30 05:16:08 +02:00
Alex Chronopoulos
74a439c923 Bug 1509327 - Use timing and color information from decoded picture in dav1d wrapper. r=jya
Latest dav1d version supports to store the timing information in undecoded frame and restore it later from decoded picture. This can provide more accurate timing especially during drain. In additionto that, colorspace information is set according to the size of the image. Finally this patch addresses some style comments.

Differential Revision: https://phabricator.services.mozilla.com/D13428

--HG--
extra : moz-landing-system : lando
2018-11-29 19:08:03 +00:00
Alex Chronopoulos
5dab77d453 Bug 1493400 - Implement platform decoder for dav1d. r=jya
Differential Revision: https://phabricator.services.mozilla.com/D12164

--HG--
extra : moz-landing-system : lando
2018-11-27 14:18:58 +00:00
Sylvestre Ledru
804b8b8883 Bug 1204606 - Reformat of dom/media r=jya
# skip-blame

Differential Revision: https://phabricator.services.mozilla.com/D12251

--HG--
extra : moz-landing-system : lando
2018-11-19 13:25:37 +00:00
Jean-Yves Avenard
06a5c6246d Bug 1482059 - P1. Implement VP8/VP9 frame header parser. r=TD-Linux
And use it to determine if a frame is a keyframe, its size and display size.

Differential Revision: https://phabricator.services.mozilla.com/D11588

--HG--
extra : moz-landing-system : lando
2018-11-14 09:33:10 +00:00
Jean-Yves Avenard
6ba9a04554 Bug 1505910 - P2. Remove use of AsTaskQueue(). r=cpearce
Make IsCurrentThreadIn() const.

Depends on D11491

Differential Revision: https://phabricator.services.mozilla.com/D11492

--HG--
extra : moz-landing-system : lando
2018-11-12 01:09:03 +00:00
Jean-Yves Avenard
31ed9de297 Bug 1504643 - Enforce template-parameter classes restrictions in MozPromise. r=gerald
Make thorough use of move semantic for MozPromise using nsTArray

Differential Revision: https://phabricator.services.mozilla.com/D11346

--HG--
extra : moz-landing-system : lando
2018-11-09 15:45:31 +00:00
Dorel Luca
c34d2cd0fa Backed out changeset 157be32d85fe (bug 1504643) for conflicts while backing out bug 1471535 2018-11-09 12:13:54 +02:00
Jean-Yves Avenard
c30e8ca9f0 Bug 1504643 - Enforce template-parameter classes restrictions in MozPromise. r=gerald
Make thorough use of move semantic for MozPromise using nsTArray

Differential Revision: https://phabricator.services.mozilla.com/D11346

--HG--
extra : moz-landing-system : lando
2018-11-09 08:41:45 +00:00
Jean-Yves Avenard
ff9dbafc2c Bug 1504944 - Only re-order channels for opus mapping 1. r=padenot
For channel mapping 0 (which is always mono or sterero), the mapping is identical to the SMPTE one, so can copy the mapping as-is.

Differential Revision: https://phabricator.services.mozilla.com/D11000

--HG--
extra : moz-landing-system : lando
2018-11-06 18:11:41 +00:00
Jean-Yves Avenard
0fcc0bd516 Bug 1496529 - P10. Add to libvpx decoder low latency mode. r=bryce
Depends on D7909

Differential Revision: https://phabricator.services.mozilla.com/D7917

--HG--
extra : moz-landing-system : lando
2018-10-09 22:59:47 +00:00
Jean-Yves Avenard
38ff84370c Bug 1496529 - P6. Always run EMEDecryptor on the decoder's taskqueue. r=bryce
P2 changed the way the H264Converter would be calling the decoder. The assumption in the EMEDecryptor was pretty incorrect to start with.

Depends on D7865

Differential Revision: https://phabricator.services.mozilla.com/D7882

--HG--
extra : moz-landing-system : lando
2018-10-09 22:58:05 +00:00
Jean-Yves Avenard
c0ac48ee0c Bug 1322234 - P3. Add method to read a VP9 profile from a VP9 bitstream r=TD-Linux
Depends on D7616

Differential Revision: https://phabricator.services.mozilla.com/D7647

--HG--
extra : moz-landing-system : lando
2018-10-04 09:43:57 +00:00
Bryce Van Dyk
413ba3feef Bug 1487811 - P1: Update Widevine headers and C++ code to prepare for CDM interface 10 support. r=cpearce
Update content_decryption_module.h and other Widevine headers. This removes the
CDM8 interface and adds in the CDM10 and CDM11 interfaces. As such this patch
removes references to CDM8 from the code and adds some of the foundations for
supporting CDM10. Most of the CDM10 code will be implemented in another bug, but
there are a number of cases where it was straight forward to shuffle CDM8+9 code
-> CDM9+10, rather than deleting it and replacing it later.

Differential Revision: https://phabricator.services.mozilla.com/D5628

--HG--
extra : moz-landing-system : lando
2018-09-13 14:49:10 +00:00
Jean-Yves Avenard
ebe177f75e Bug 1489102 - P5. Ensure the Opus decoder never returns an empty sample. r=bryce
This leads to audio content having negative start time

Differential Revision: https://phabricator.services.mozilla.com/D5292

--HG--
extra : moz-landing-system : lando
2018-09-07 18:38:34 +00:00
Jean-Yves Avenard
d7eb320e7a Bug 1476975 - P3. Fix canPlayType/isTypeSupported for AV1 content. r=dminor
AV1 support is behind a pref, as such, the result of canPlayType should depends on the value of that pref.

Additionally to this change we remove AOMDecoder::IsSupportedCodec as it implied confusion on what a codec mimetype is. There are two type of codec mimetype: the one describing the container content ("av1") and the one describing the codec itself "video/av1")
AOMDecoder shouldn't know anything about containers (e.g. mp4 or webm)

--HG--
extra : rebase_source : 72ebe662f76fb6c9d8be1f753890601aac440061
2018-07-20 10:24:56 +02:00
Noemi Erli
76fe049448 Backed out 3 changesets (bug 1476975) for mochitest failures on test_can_play_type_webm.html
Backed out changeset 91585d095420 (bug 1476975)
Backed out changeset 798f4894ffd5 (bug 1476975)
Backed out changeset b5377ceef34f (bug 1476975)
2018-07-20 21:27:01 +03:00
Jean-Yves Avenard
4d4b32ccf8 Bug 1476975 - P3. Fix canPlayType/isTypeSupported for AV1 content. r=dminor
AV1 support is behind a pref, as such, the result of canPlayType should depends on the value of that pref.

Additionally to this change we remove AOMDecoder::IsSupportedCodec as it implied confusion on what a codec mimetype is. There are two type of codec mimetype: the one describing the container content ("av1") and the one describing the codec itself "video/av1")
AOMDecoder shouldn't know anything about containers (e.g. mp4 or webm)
2018-07-20 19:04:46 +02:00
Dan Minor
b83fc6c040 Bug 1445683 - Updates to AOMDecoder; r=jya
This reflects the API changes to the aom_codec_decode function and the removal
of I440. It also sets allow_lowbitdepth to give proper support for 8 bit video,
and removes the git version from the mime type.

MozReview-Commit-ID: GuTvnPkR1Er

--HG--
extra : rebase_source : 4540f74df335d59714a61d5f7e2ad7a54f8fa00d
2018-04-23 16:03:27 -04:00
Dan Minor
a2a0f53596 Bug 1445683 - Update aom to v1.0.0; r=jya
Update aom to rev d14c5bb4f336ef1842046089849dee4a301fbbf0.

MozReview-Commit-ID: YoPHbFHRq2

--HG--
rename : third_party/aom/build/cmake/aom_config.c.cmake => third_party/aom/build/cmake/aom_config.c.template
rename : third_party/aom/md5_utils.h => third_party/aom/common/md5_utils.h
rename : third_party/aom/warnings.h => third_party/aom/common/warnings.h
rename : third_party/aom/webmenc.h => third_party/aom/common/webmenc.h
rename : third_party/aom/y4minput.h => third_party/aom/common/y4minput.h
rename : third_party/aom/aomstats.h => third_party/aom/stats/aomstats.h
rename : third_party/aom/rate_hist.h => third_party/aom/stats/rate_hist.h
extra : rebase_source : 6e3d836d1d36879f862ed74227522e422f4fb5c1
2018-06-21 13:47:50 -04:00
Jean-Yves Avenard
1f1e9dbfe9 Bug 1409664 - P22. Create SPS/PPS extradata to better determine decoder capabilities. r=bryce
Summary:
The Apple VT decoder requires SPS+PPS at construction time. If not provided, in earlier macOS it used to give an error. In the current 10.13 it appears to work, however the decoder always report to be software only.

To properly determine the decoder capabilities, we construct a SPS NAL from the codec mimetype provided.

Details on the structure of the mimetype can be found in https://tools.ietf.org/html/rfc6381#section-3.3 and is a 1:1 match with the data found in the SPS.

Depends on D1718

Reviewers: bryce

Tags: #secure-revision

Bug #: 1409664

Differential Revision: https://phabricator.services.mozilla.com/D1719
2018-07-03 11:45:24 -07:00
Jean-Yves Avenard
cafd081573 Bug 1409664 - P20. Add BitWriter class. r=bryce
Summary:

Depends on D1633

Tags: #secure-revision

Bug #: 1409664

Differential Revision: https://phabricator.services.mozilla.com/D1678
2018-07-03 11:45:23 -07:00
Andi-Bogdan Postelnicu
60732a90a5 Bug 1453795 - DOM/Media - Initialize member fields in classes/ structures. r=jyavenard
--HG--
extra : rebase_source : 0c785260497fadf98cf3cff8b9fcae8ea699c2c1
2018-06-15 10:25:02 +03:00
Emilio Cobos Álvarez
fffb25b74f Bug 1465585: Switch from mozilla::Move to std::move. r=froydnj
This was done automatically replacing:

  s/mozilla::Move/std::move/
  s/ Move(/ std::move(/
  s/(Move(/(std::move(/

Removing the 'using mozilla::Move;' lines.

And then with a few manual fixups, see the bug for the split series..

MozReview-Commit-ID: Jxze3adipUh
2018-06-01 10:45:27 +02:00
Nicholas Nethercote
51f2b494ea Bug 1448222 - Remove MediaPrefs. r=jya
This patch converts all the prefs in MediaPrefs to the new StaticPrefs system.

Note that the "media.wmf.skip-blacklist" pref was present in both MediaPrefs
and gfxPrefs. The copy in MediaPrefs was never used; this explains why this
patch does not add an entry for it to StaticPrefList.h.

Note also that the patch removes themedia.rust.mp4parser pref, because it's
unused.

MozReview-Commit-ID: IfHP37NbIjY

--HG--
extra : rebase_source : df84ea813b7c366d7be663c696891325610149c8
2018-03-20 09:48:56 +11:00
Sebastian Hengst
0819f35e51 Backed out 4 changesets (bug 525063) on request from Andi. a=backout
Backed out changeset 516c4fb1e4b8 (bug 525063)
Backed out changeset 6ff8aaef2866 (bug 525063)
Backed out changeset bf13e4103150 (bug 525063)
Backed out changeset d7d2f08e051c (bug 525063)
2018-04-13 16:01:28 +03:00
Gurzau Raul
7334578c1a Merge mozilla-central to autoland. a=merge CLOSED TREE 2018-04-13 02:14:09 +03:00
Nathan Froyd
a31fa9e19c Bug 1453437 - return UniquePtr from MediaRawData::CreateWriter; r=gerald
Returning UniquePtr is nicer than returning raw pointers, and has the
nice side effect of forcing us to clean up the uses of nsAutoPtr that
were hanging about.
2018-04-12 15:28:21 -04:00
Tristan Bourvon
a3a77c0312 Bug 525063 - Initialize uninitialized class attributes in m-c. r=ehsan 2018-04-10 21:11:02 +02:00
Jean-Yves Avenard
f5cce074ab Bug 1451681 - Handle case where crypto plain size definition didn't exist. r=cpearce
Also ensure that the MP4 demuxer can't create such sample.

MozReview-Commit-ID: JANgHNiiz2H

--HG--
extra : rebase_source : d6a68579e76f1eda651e38bec5a9ed17c9de3fa4
2018-04-09 11:39:13 +02:00
Alex Chronopoulos
16d2b965f6 Bug 1451781 - Check if output device is mono and remove stereo check in order to disable opus channel inversion. r=jya
MozReview-Commit-ID: 3x27rBs5Ika

--HG--
extra : rebase_source : 0b7232a0705edceda8793444c140aa947cc99d51
2018-04-09 13:07:58 +03:00
Nils Ohlmeier [:drno]
c9b218795e Bug 1451926: add a user pref for AV1 codec. r=cpearce
MozReview-Commit-ID: 9R6Ac4O81Ji

--HG--
extra : rebase_source : bd2f46b5596c0ebafc4f60bb8bf1812a8bf776f5
2018-04-05 20:35:57 -07:00
Alex Chronopoulos
851a3ee589 Bug 1431810 - Disable Opus phase inversion on stereo to mono downmix. r=rillian
MozReview-Commit-ID: 5eaSPQzUu9o

--HG--
extra : rebase_source : 126d9faa2824d29fc73cf040b033ca585dfdbcee
2018-03-15 18:28:14 +02:00
Bryce Van Dyk
5e0fc84a7a Bug 1447821 - Add logging to ADTSSampleConverter ctor. r=jya
Add logging to aid in debugging of our EME ADTS conversion path.

MozReview-Commit-ID: A7Wv8n31V8V

--HG--
extra : rebase_source : 13f20179aa29180047a37a127029d0e28a1c4f80
2018-03-26 14:29:31 -04:00
Bryce Van Dyk
dd07217b57 Bug 1447821 - Update EMEDecoderModule to handle profile values < 1. r=jya
Update EMEDecoderModule to use 2 as profile number when the given profile is
less than 1 or greater than 4. The CDM doesn't appear to care what values are
given, but 2 was chosen as a safe fallback per discussion on the bug. This
addresses the use case where 0 values are stored in mProfile due to the use of
extended profiles (which are then stored in the mExtendedProfile field).

MozReview-Commit-ID: 5XgabNDsgdf

--HG--
extra : rebase_source : dd66a872aaac2acf4af55f06d3c24f53debe4e63
2018-03-23 14:54:41 -04:00
Gurzau Raul
1368521911 Backed out 3 changesets (bug 1431810) for failing test_bug1431810_opus_downmix_to_mono.html on Windows
Backed out changeset a01c1941a829 (bug 1431810)
Backed out changeset 43eb1c01c67f (bug 1431810)
Backed out changeset 3fe9d85d684a (bug 1431810)
2018-03-26 12:09:42 +03:00
Alex Chronopoulos
85119eac26 Bug 1431810 - Disable Opus phase inversion on stereo to mono downmix. r=rillian
MozReview-Commit-ID: 5eaSPQzUu9o

--HG--
extra : rebase_source : 126d9faa2824d29fc73cf040b033ca585dfdbcee
2018-03-15 18:28:14 +02:00
Jean-Yves Avenard
6edfbc05e3 Bug 1444479 - P6. Make Opus and Vorbis decoder deal with more channels than 8. r=padenot
Under 8 channels, the audio will be reordered so it can be playable on any platforms.
Over 8 channels, the channels will be as output by the decoder. Playing of such stream will be platform dependent as neither Opus nor Vorbis define a channel layout with more than 8 channels.

With WebAudio however, the result will be platform independent (as long as you don't attempt to play it)

MozReview-Commit-ID: 93ATiKm9y20
2018-03-24 10:58:01 +01:00
Jean-Yves Avenard
eae919be64 Bug 1431221 - P10. Properly retrieve and set channel layout for opus and vorbis. r=cpearce
MozReview-Commit-ID: A4jEQzHRKDT
2018-03-24 10:57:55 +01:00
Jean-Yves Avenard
e9e8bc2708 Bug 1431221 - P4. Use similar channel decriptions as Windows WAVE and FFmpeg. r=padenot
This makes it for future easier conversion for the FFmpeg and Windows WMF decoder, so that we can use their channel map directly.

Also introduce a difference between 2F2 and QUAD, cubeb supports will be added in a future change.

MozReview-Commit-ID: L5NkjeuGslI
2018-03-24 10:57:54 +01:00
Chris Pearce
b37bd17a56 Bug 1433344 - Convert encrypted AAC to ADTS before decryption. r=jya
MozReview-Commit-ID: IGmBfJtYsCi

--HG--
extra : rebase_source : d066644e848f8fb379607d0168960132881d7df8
2018-01-30 14:39:09 +13:00
Cosmin Sabou
b35f58da34 Backed out changeset 1fea6030657b (bug 1433344) for mda failures on EMEDecoderModule.cpp on a CLOSED TREE 2018-02-01 03:05:53 +02:00
Chris Pearce
328670db16 Bug 1433344 - Convert encrypted AAC to ADTS before decryption. r=jya
MozReview-Commit-ID: IGmBfJtYsCi

--HG--
extra : rebase_source : a0752ed6c85faf4333ae84a3e5b20695b5bf26a6
2018-01-30 14:39:09 +13:00