Commit Graph

119 Commits

Author SHA1 Message Date
Jean-Yves Avenard
04019bde46 Bug 1530322 - P3. Add temporary diagnostics. r=gerald
Differential Revision: https://phabricator.services.mozilla.com/D21173

--HG--
extra : moz-landing-system : lando
2019-02-26 09:10:04 +00:00
Narcis Beleuzu
06e372323d Backed out 3 changesets (bug 1530322) for bustages on Assertions.h . CLOSED TREE
Backed out changeset 65870fec6eea (bug 1530322)
Backed out changeset d5159dfc6d86 (bug 1530322)
Backed out changeset 68fd0947b767 (bug 1530322)
2019-02-26 09:39:14 +02:00
Jean-Yves Avenard
120c38f502 Bug 1530322 - P3. Add diagnostics. r=gerald
Depends on D21172

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

--HG--
extra : moz-landing-system : lando
2019-02-26 06:39:57 +00:00
Jean-Yves Avenard
68176b56c7 Bug 1524890 - P13. [MSE] Mark frames as truncated when needed. r=bryce
There's two cases to handle.
1- A Frame isn't entirely contained between appendWindowStart and appendWindowEnd
2- A new frame is appended which overlaps partially an existing frame.

To achieve this we tweak the start time and duration of the sample added (case 1), or the frame about to be partially covered (case 2). We then set a flag that will indicate to the decoder that the decompressed frame will have to be truncated.

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

--HG--
extra : moz-landing-system : lando
2019-02-22 09:21:05 +00:00
Jean-Yves Avenard
4377bd3b8b Bug 1524890 - P11. Remove duration from AudioData construction parameter. r=bryce
It can be determined from the size of the buffer and the number of audio frames. Additionally, it ensures that the duration of the frame is always exactly what the AudioData contains.

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

--HG--
extra : moz-landing-system : lando
2019-02-22 09:19:47 +00:00
Jean-Yves Avenard
ca21a59533 Bug 1524890 - P10. Add AudioData::SetTrimWindow. r=bryce
Don't re-create a new trimmed AudioData when we want to remove some content. This remove the need for some copies.

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

--HG--
extra : moz-landing-system : lando
2019-02-22 09:19:32 +00:00
Jean-Yves Avenard
7f3801ebd7 Bug 1524890 - P8. Rely on buffer length to calculate the number of frames. r=bryce
Differential Revision: https://phabricator.services.mozilla.com/D20166

--HG--
extra : moz-landing-system : lando
2019-02-22 09:19:00 +00:00
Jean-Yves Avenard
3cf8c6d0df Bug 1524890 - P7. No longer access AudioData::mFrames directly. r=bryce
This will allow to remove mFrames member and calculate from the size of the content, which will dynamically change depending on a cropping filter.

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

--HG--
extra : moz-landing-system : lando
2019-02-22 09:18:47 +00:00
Jean-Yves Avenard
dd3c534de5 Bug 1524890 - P6. Remove mFrames member from MediaData. r=bryce
The number of frames is only meaningful with audio as a VideoData always contain a single frame.
So we only have this member in AudioData, which will simplify the logic in a future commit where the number of frames present depends on the trimming filter applied.

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

--HG--
extra : moz-landing-system : lando
2019-02-22 09:18:33 +00:00
Jean-Yves Avenard
964cc95e13 Bug 1524890 - P5. Make MediaData::Type an enum class. r=bryce
Make its use more explicit and less likely to be incorrect.

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

--HG--
extra : moz-landing-system : lando
2019-02-22 09:18:18 +00:00
Jean-Yves Avenard
afe04d2952 Bug 1524890 - P3. Add AudioData::Data method that returns a Span. r=bryce
So that we never access the underlying buffer directly.

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

--HG--
extra : moz-landing-system : lando
2019-02-22 09:18:04 +00:00
Jean-Yves Avenard
d41a4fc09b Bug 1524890 - P1. Remove unused method. r=bryce
Differential Revision: https://phabricator.services.mozilla.com/D20159

--HG--
extra : moz-landing-system : lando
2019-02-22 09:18:03 +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
4ace4150ca Bug 1487416 - Index.cpp's SampleIterator populates cbcs data. r=jya
Rework our mp4 sample iterator to handle cbcs crypto data.

To support this we populate the following new data for samples:
- Crypto pattern information, this is split into a count of encrypted blocks
  and a count of clear blocks.
- A constant IV.

This information is available at a track level and a sample group level. The
sample group level supersedes track level information if both a present.

Prior to this patch, some crypto information was written to samples in
the SampleIterator in Index.cpp, and some in the MP4Demuxer (based on if the
SampleIterator had not populated the data). This patch moves all these
operations into the SampleIterator -- the idea being that the sample iterator
should be the component responsible for setting up sample meta data.

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

--HG--
extra : moz-landing-system : lando
2019-01-11 15:13:37 +00: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
150ebe3741 Bug 1487416 - Index.cpp's SampleIterator populates cbcs data. r=jya
Rework our mp4 sample iterator to handle cbcs crypto data.

To support this we populate the following new data for samples:
- Crypto pattern information, this is split into a count of encrypted blocks
  and a count of clear blocks.
- A constant IV.

This information is available at a track level and a sample group level. The
sample group level supersedes track level information if both a present.

Prior to this patch, some crypto information was written to samples in
the SampleIterator in Index.cpp, and some in the MP4Demuxer (based on if the
SampleIterator had not populated the data). This patch moves all these
operations into the SampleIterator -- the idea being that the sample iterator
should be the component responsible for setting up sample meta data.

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

--HG--
extra : moz-landing-system : lando
2019-01-10 18:39:02 +00: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
John Lin
80a3c5aa13 Bug 1425277 - p5: add Append() to MediaRawDataWriter. r=jya
Differential Revision: https://phabricator.services.mozilla.com/D7561

--HG--
extra : moz-landing-system : lando
2018-11-26 18:28:31 +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
b10364a15f Bug 1493198 - P2. Use enum for describing color depth. r=mattwoodrow
Depends on D6662

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

--HG--
extra : moz-landing-system : lando
2018-09-25 20:44:55 +00:00
Nathan Froyd
f4ed80c22c Bug 1469399 - remove virtual qualifiers from MediaRawData methods; r=jya
MediaRawData is never subclassed, so it's pointless to have these
methods be virtual.

--HG--
extra : rebase_source : ef55196831f5ff96e75b46f304541e1cb8fafada
extra : source : ccef9e2643a19668dc06426aa0e55ed5d61ae535
2018-07-23 11:19:59 -04:00
Cosmin Sabou
aa6a55f066 Backed out changeset ccef9e2643a1 (bug 1469399) for geckoview failures on multiple files. CLOSED TREE 2018-07-23 19:46:01 +03:00
Nathan Froyd
4772318978 Bug 1469399 - remove virtual qualifiers from MediaRawData methods; r=jya
MediaRawData is never subclassed, so it's pointless to have these
methods be virtual.
2018-07-23 11:19:59 -04: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
Nathan Froyd
bf9542b8b8 Bug 1453672 - Make MediaRawDataWriter's allocation methods MOZ_MUST_USE. r=gerald
The documentation says that the boolean return values from these methods
must be checked.  We might as well make the compiler check these things
for us.
2018-04-12 07:29:00 -04: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
Jean-Yves Avenard
ce853cc7ef Bug 1431221 - P6. Add channel map information to AudioInfo. r=padenot
MozReview-Commit-ID: 2zOvciLFtAr
2018-03-24 10:57:54 +01:00
Jean-Yves Avenard
48cf8d7243 Bug 1431221 - P5. Split AudioConfig.{h,cpp} from MediaInfo. r=padenot
MozReview-Commit-ID: EzaC19HS2B8
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
Chris Pearce
f800da4db3 Bug 1430673 - Remove CDMProxy::GetSessionIdsForKeyId(). r=JamesCheng
MozReview-Commit-ID: EMT8BaHE2Pf

--HG--
extra : rebase_source : 292412397b5a3617857daf199e324f3560a58f14
2018-01-16 11:38:27 +13:00
James Cheng
72518fc606 Bug 1421168 - Remove deadcode VideoData::CreateAndCopyIntoTextureClient. r=gerald
There is only declaration but no definition.
Also, there is no caller. Remove it.

MozReview-Commit-ID: Dq1yIgqVVES

--HG--
extra : rebase_source : 5775e39f3bc964c0aa7bf9be7822f17eb3c630a3
2017-11-28 15:18:43 +08:00
Jean-Yves Avenard
72e08420b1 Bug 1215089 - P3: Add mBitDepth member to YCbCr data structure. r=kamidphish,mattwoodrow
MozReview-Commit-ID: BNLawJOfj3w

--HG--
extra : rebase_source : f538373e317e3e1e5452c0a0d6e00e810148ea87
2017-06-29 23:09:20 +02:00
Sebastian Hengst
46807fbb50 Backed out changeset 3fc22c028eab (bug 1215089) 2017-10-04 16:26:09 +02:00
Jean-Yves Avenard
89b1091f27 Bug 1215089 - P2: Add mDepth member to YCbCr data structure. r=kamidphish
MozReview-Commit-ID: BNLawJOfj3w

--HG--
extra : rebase_source : 6cd0336506a8feda874f6bd6525da73a745d5100
2017-06-29 23:09:20 +02:00
Chris Pearce
c511200e11 Bug 1392508 - Don't include nsRect.h, nsSize.h and nsIMemoryReporter.h in MediaData.h as they're unused. r=gerald
Including these also causes us to include a bunch of headers about points,
margins, and nsISupports/XPCOM/js, which we don't need.

MozReview-Commit-ID: 167YidMaeUQ

--HG--
extra : rebase_source : ab9ab45699451bb3fef613f401ae0e3853487ef5
2017-08-22 03:44:32 +12:00
Kaku Kuo
4175fed6b6 Bug 1378691 P3 - return next key frame time back to MDSM; r=jwwang
MozReview-Commit-ID: LVhJ0DpM24c

--HG--
extra : rebase_source : 4aefd89a2cc2243538c248977bfff79731fc2946
2017-07-11 10:15:33 +08:00
Chris Pearce
2d16a23835 Bug 1351124 - Detect MP4 PSSH boxes in MOOF boxes and dispatch those in 'encrypted' events to content. r=jya
We detect when a PSSH is contained in a MOOF and stash them in the
mp4_demmuxer::Moof object.  When the mp4_demuxer::SampleIterator returns a
sample, we check whether it's the first sample from its MOOF, and if so, we
attach any PSSH boxes from that MOOF to the sample.  The TrackBuffersManager
checks samples upon demux, to see whether they have any EME init data attached,
and if so dispatches thoses to the HTMLMediaElement in 'encrypted' events.


MozReview-Commit-ID: F8GobKOr96F

--HG--
extra : rebase_source : 5366f1008979605aa8fc80216cd1d9cc2eefd346
2017-07-12 22:07:15 +12:00
Jean-Yves Avenard
de2ba98442 Bug 1223270: P3. Remove extra copy of YUV buffer on Windows. r=mattwoodrow,nical
MozReview-Commit-ID: JgbAwtLNr9e

--HG--
extra : rebase_source : 72bc0cd32d95fc6eadc0604c00b9f53227135557
2017-05-03 23:25:54 +02:00
Jean-Yves Avenard
10d2da1b08 Bug 1374596: P7. Fix includes as per coding style. r=padenot
MozReview-Commit-ID: 5WfOWcOoxg0

--HG--
extra : rebase_source : 988c09623e83a0d9188d9ff5d705314e2c43e756
2017-06-20 17:56:55 +02:00
Carsten "Tomcat" Book
57edf8693b Backed out changeset c79b6d337d04 (bug 1223270) 2017-06-20 09:41:39 +02:00
Jean-Yves Avenard
683d6562da Bug 1223270: P3. Remove extra copy of YUV buffer on Windows. r=mattwoodrow,nical
MozReview-Commit-ID: JgbAwtLNr9e

--HG--
extra : rebase_source : c7e813a29bd4d0f46c73b5579fec4bc77081cee1
2017-05-03 23:25:54 +02:00
Ralph Giles
e7a03fe937 Bug 1358662 - Add Span support to MediaRawData. r=jya
MozReview-Commit-ID: A3bHPlk0MQi

--HG--
extra : rebase_source : 4d6bafa6e744d1dce2884a6fa25dd907739e66db
2017-04-21 16:12:55 -07:00
JW Wang
80c9f230f3 Bug 1359715 - let functions in MediaData.h take TimeUnit instead of int64_t. r=kaku
We want to replace the use of int64_t for microseconds by TimeUnit
whenever possible since int64_t is ambiguous which could be microseconds
or milliseconds.

MozReview-Commit-ID: LRz9d4yKBYJ

--HG--
extra : rebase_source : 1f73f1f338142b3183491d04726821a881ccabbe
extra : intermediate-source : 88e167b7b06303d10d92cd5317502f405d1c553e
extra : source : 98deb30ec93d395f9951f5fc488170ae35e29675
2017-04-24 17:33:05 +08:00
Sebastian Hengst
7b18dee274 Backed out changeset a3284ad8a14c (bug 1358662) 2017-04-25 22:36:21 +02:00
Ralph Giles
ebeeb5aa45 Bug 1358662 - Add Span support to MediaRawData. r=jya
MozReview-Commit-ID: A3bHPlk0MQi

--HG--
extra : rebase_source : 7d6de44693c3de089800ecfd4ab6c00570311d30
2017-04-21 16:12:55 -07:00
JW Wang
302d82c85a Bug 1356530 - Change the type of MediaData::mTime to TimeUnit since int64_t is ambiguous. r=kaku
MozReview-Commit-ID: 4bVeqIuWO2O

--HG--
extra : rebase_source : d504ac15a6dc59ad42f3ab80faf23f629d74315f
extra : intermediate-source : 6e52995b6c8146451d98dffc62f6907755dc856e
extra : source : 82d2649cdafb5a6389f6858c23578811933580c9
2017-04-14 17:13:36 +08:00
JW Wang
235f1f55ed Bug 1356506 - change the type of MediaData::mTimecode to TimeUnit since int64_t is ambiguous. r=gerald
MozReview-Commit-ID: 7dO5OOUuORz

--HG--
extra : rebase_source : 1c1c020700d9180ef9f85d7e2e679f498ab71fce
extra : intermediate-source : d173c820bef7a113e28e9732c42e8c1af36160ab
extra : source : 04c08a780526ca3a5ac4d1a6f9b7ae30d9957e92
2017-04-14 14:52:14 +08:00