Commit Graph

269 Commits

Author SHA1 Message Date
Kartikaya Gupta
ba4b3b9101 Bug 1384233 - Remove SizePrintfMacros.h. r=froydnj
We have a minimum requirement of VS 2015 for Windows builds, which supports
the z length modifier for format specifiers. So we don't need SizePrintfMacros.h
any more, and can just use %zu and friends directly everywhere.

MozReview-Commit-ID: 6s78RvPFMzv

--HG--
extra : rebase_source : 009ea39eb4dac1c927aa03e4f97d8ab673de8a0e
2017-07-26 16:03:57 -04:00
JW Wang
30093548fb Bug 1378295. P6 - remove AbstractMediaDecoder and fix includes. r=jya
MozReview-Commit-ID: xN1Ywo9VDY

--HG--
extra : rebase_source : 9aee1697b5299e43eb35450a20015c08a11bdea6
extra : intermediate-source : 3095884f04356d0d2c3c34843098a0a8b23211b8
extra : source : ef0f7e5300060b7888b961596a32a8fbf483ebd2
2017-07-13 17:39:42 +08:00
JW Wang
35f6829a03 Bug 1378295. P1 - remove unused MFR::mDecoder. r=jya
MozReview-Commit-ID: BuvxlYs0LqD

--HG--
extra : rebase_source : 8595e8c5e08e9cd6575b3e3bf37e59e25c79045c
extra : intermediate-source : 589082a3f0571cea45e6942a1e6b82adda7efdcb
extra : source : 47cdc0a2b7acec44d102b165e1867b4f689e488c
2017-07-13 15:13:12 +08:00
JW Wang
0ad4cd546b Bug 1380568. P1 - store FrameStatistics in MFR. r=jya
So we can remove the use of AbstractMediaDecoder::NotifyDecodedFrames().

MozReview-Commit-ID: Ch7Saha6zdi

--HG--
extra : rebase_source : 8562faa56d1f31797643ed0f7ae550765d8c86d7
extra : intermediate-source : 05b50517cc40f2adf06facfccea628488dd319da
extra : source : d5af89f5a09e03c8fbb0d6111f88e3221f3a1d57
2017-07-07 11:05:03 +08:00
JW Wang
ef025c6fcf Bug 1316211. P15 - remove MDR from the base class of MFR. r=gerald
MozReview-Commit-ID: Jf5pCxkhexg

--HG--
extra : rebase_source : 3ec9423d4d0f3b60ee9e5f6f19af18188530e1d9
extra : source : 4fbc225bfc79abacaf47ffd4405ef2d6711dea32
2017-07-19 22:18:37 +08:00
JW Wang
5370eb3105 Bug 1316211. P13 - replace use of MediaDecoderReader with MediaFormatReader. r=gerald
We will remove MediaDecoderReader in the future.

MozReview-Commit-ID: BaCRXleKK5a

--HG--
extra : rebase_source : dc14a593d6291136f02b1deb910cd6dcd01c0355
extra : source : 8f71b7dae0a541562c7c3829b5a873e9f9fd2674
2017-07-19 17:01:32 +08:00
JW Wang
789cd1ebe8 Bug 1380532. P1 - pass GMPCrashHelper through MediaDecoderReaderInit to MFR. r=gerald
So we can reduce dependency on AbstractMediaDecoder.
See bug 1378295 comment 1 for the detail.

Note it is not ideal to repeat |init.mCrashHelper = ...| several times in
this patch. We will re-visit it to reduce code duplication after bug 1378295
is done.

MozReview-Commit-ID: AEC56ukqtYr

--HG--
extra : rebase_source : 07554566af74b65f391811e55847e58365ac81fe
extra : source : 7f613117f815369f65256408b221131683c0dd82
2017-07-13 10:19:36 +08:00
JW Wang
4ca981216d Bug 1380234. P1 - pass KnowsCompositor to MFR through MediaDecoderReaderInit. r=jya
MozReview-Commit-ID: 3krK3meG5jV

--HG--
extra : rebase_source : f0a628ab28a527fa7f79ec61672e988cf1def8e7
extra : source : c8c2a6f2506338a8208f3bcf56160c47e6a29000
2017-07-12 15:37:02 +08:00
JW Wang
aeaad5857f Bug 1378689 - add a structure to pack the data sent to the MediaDecoderReader constructor. r=jya
It would be handy we want to pass more data to the constructor.

MozReview-Commit-ID: 3AUUsTbv534

--HG--
extra : rebase_source : 8d230c85addf1ba296e6a0512f0d18ebd41c0d17
extra : source : e6568e9fa24f52c59baecaa16aa044b492f407fb
2017-07-06 16:59:22 +08:00
JW Wang
15da20ff70 Bug 1378316. P1 - store MediaDecoderReader in MediaDecoder. r=gerald
So we are able to dispatch NotifyDataArrived() to MediaDecoderReader in P2.

MozReview-Commit-ID: 3RM66uTvYSc

--HG--
extra : rebase_source : 40311cf27fefbd2046016fb246a3a4ccfce845a8
extra : source : 515d9b3b3cd4b0b30d2fd8196b48c55e14466263
2017-07-05 17:21:17 +08:00
JW Wang
ab6f636e4a Bug 1378304. P2 - replace GetResource() with mResource in MediaDecoder sub-classes. r=jya
MozReview-Commit-ID: GRIBp3y0Cb7

--HG--
extra : rebase_source : c80386b223d90e8a9a7fb285a09edc526227bde8
extra : source : b74c63131f6ed873726519eed1a308aaaf35a6a9
2017-07-05 14:52:42 +08:00
Nicholas Nethercote
58786e1ea7 Bug 1375392 - Tweak the PROFILER_LABEL* macros. r=mstange.
This patch makes the following changes to the macros.

- Removes PROFILER_LABEL_FUNC. It's only suitable for use in functions outside
  classes, due to PROFILER_FUNCTION_NAME not getting class names, and it was
  mostly misused.

- Removes PROFILER_FUNCTION_NAME. It's no longer used, and __func__ is
  universally available now anyway.

- Combines the first two string literal arguments of PROFILER_LABEL and
  PROFILER_LABEL_DYNAMIC into a single argument. There was no good reason for
  them to be separate, and it forced a '::' in the label, which isn't always
  appropriate. Also, the meaning of the "name_space" argument was interpreted
  in an interesting variety of ways.

- Adds an "AUTO_" prefix to PROFILER_LABEL and PROFILER_LABEL_DYNAMIC, to make
  it clearer they construct RAII objects rather than just being function calls.
  (I myself have screwed up the scoping because of this in the past.)

- Fills in the 'js::ProfileEntry::Category::' qualifier within the macro, so
  the caller doesn't need to. This makes a *lot* more of the uses fit onto a
  single line.

The patch also makes the following changes to the macro uses (beyond those
required by the changes described above).

- Fixes a bunch of labels that had gotten out of sync with the name of the
  class and/or function that encloses them.

- Removes a useless PROFILER_LABEL use within a trivial scope in
  EventStateManager::DispatchMouseOrPointerEvent(). It clearly wasn't serving
  any useful purpose. It also serves as extra evidence that the AUTO_ prefix is
  a good idea.

- Tweaks DecodePool::SyncRunIf{Preferred,Possible} so that the labelling is
  done within them, instead of at their callsites, because that's a more
  standard way of doing things.

--HG--
extra : rebase_source : 318d1bc6fc1425a94aacbf489dd46e4f83211de4
2017-06-22 17:08:53 +10:00
JW Wang
61f7ca2479 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

--HG--
extra : rebase_source : 3a2e70ca4bf56e1c73b7faff8e183211787a96bf
extra : source : 682cb949adae4683ae1cbbfbb4c457b83cb1fddc
2017-06-20 18:10:27 +08:00
JW Wang
5c00111ef1 Bug 1374930. P1 - add ChannelMediaDecoder to be the base class which uses channel-based MediaResource. r=cpearce
MozReview-Commit-ID: 6L4me2BQkgi

--HG--
extra : rebase_source : d78de302d0551b9754569885d79ed3aba6571f61
extra : intermediate-source : d32948c3c5110b663d4ac61a1f483c8f8db00707
extra : source : cfd7941b933671dcb83c1131463b39f58fec627d
2017-06-19 15:50:09 +08:00
JW Wang
4031d18757 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

--HG--
extra : rebase_source : 6d167265e478ce39881ceada1303e9ca18189bbf
extra : source : 0c26f909568f673591ad6720458dfc912c01daad
2017-06-07 12:14:11 +08:00
Ralph Giles
d282fd8a60 Bug 1368839 - Add av1 to MediaSource.isTypeSupported. r=gerald
When av1 video playback is enabled, declare it as supported
in the webm container in MediaSource.IsTypeSupported.

Also support special mime types of the form

  video/webm; codecs=vp9.experimental.<git-commit-id>

so test sites can verify playback support of particular encodings
while the av1 bitstream is under development.

MozReview-Commit-ID: GS4n7cPxfQ7

--HG--
extra : rebase_source : a595942242304ccf97a341474b6e2e1e869e7a77
2017-05-30 16:37:20 -07:00
Jean-Yves Avenard
7ac281a2f6 Bug 1368856: initialize variable. r=rillian
There's no way to verify locally the while loop will execute and set the return value, so we get an uninitialized variable warning.

Initialize it at declaration time to failure, relying on the later code to override with success.

Actually, it doesn't matter what we initialize it to, since the while loop will never terminal if GetNextPacket somehow returns success without pushing a new packet onto the sample array. But this silences the warning.

MozReview-Commit-ID: 20rh1OGpR1E

--HG--
extra : rebase_source : 599a6d1bf0d38077bddfcec975e514eb8e5ee67e
2017-05-31 09:53:03 +02:00
Ralph Giles
e12f75bc3f Bug 1314147 - Recognize AV1 in WebMDemuxer. r=jya
Call AOMDecoder to handle AV1 video tracks from the WebM container.
The new decoder is very similar to VPXDecoder so we can use parallel
calls. This codec is still build-time conditional.

MozReview-Commit-ID: 5cexCZiNBqo

--HG--
extra : rebase_source : 992687c0d589bef75b6b77a1cc4137d61267472c
2017-04-19 14:41:37 -07:00
JW Wang
240b996f12 Bug 1361964 - WebMBufferedState::UpdateIndex() should read from cache. r=jya
We don't want to trigger download when calculating buffer ranges since download
changes buffer ranges.

MozReview-Commit-ID: Be8qFUQ5PpR

--HG--
extra : rebase_source : 4fd77e031577332d9d112faef869cd935275b1af
2017-05-04 21:32:13 +08:00
Ralph Giles
d785a282a3 Bug 1362107 - Add missing includes to WebMDemuxer. r=jya
This was working because of our unified build, but having
the correct definitions for all types used by the header
helps editor navigation tools.

MozReview-Commit-ID: LuWEeTIikla

--HG--
extra : rebase_source : 0046ec17ac45270adc771bd0cf77c8381f99737b
2017-05-04 09:53:34 -07:00
Ralph Giles
1e2cce29f2 Bug 1358662 - Call VPXDecoder libvpx wrappers for WebM. r=jya
Use the new helper functions instead of calling libvpx directly.
This simplifies adding other codecs in the future.

MozReview-Commit-ID: 8VX0d5S50EE

--HG--
extra : rebase_source : 34be2118bc5d1bfcb6237d7fbe67d8fbc5ef1508
2017-04-24 15:08:50 -07:00
Ralph Giles
9032567bba Bug 1358662 - Store LastSeenFrame dimensions as an nsIntSize. r=jya
This simplifies the comparison and update logic.

MozReview-Commit-ID: A6YII8tlEUn

--HG--
extra : rebase_source : e225b34f91e12591d5872121e024ef29c63a11e0
2017-04-21 18:05:46 -07:00
Sebastian Hengst
7349ffcf3d Backed out changeset 555b0322f776 (bug 1358662) for failing mda, crashtests and reftests. r=backout
Android 4.3: mda: test_EndedEvent.html, test_FrameSelection.html
OS X 10.10 debug: mda: test_BufferingWait.html

Linux x64 asan&pgo:
crashtest: video-replay-after-audio-end.html
reftest: bug686957.html
2017-04-25 22:36:21 +02:00
Sebastian Hengst
303542221f Backed out changeset 377615a0cf70 (bug 1358662) 2017-04-25 22:36:20 +02:00
Ralph Giles
9960954550 Bug 1358662 - Call VPXDecoder libvpx wrappers for WebM. r=jya
Use the new helper functions instead of calling libvpx directly.
This simplifies adding other codecs in the future.

MozReview-Commit-ID: 8VX0d5S50EE

--HG--
extra : rebase_source : c870b32bac6b924188dd722c052fb88156ad96c8
2017-04-24 15:08:50 -07:00
Ralph Giles
afff134a91 Bug 1358662 - Store LastSeenFrame dimensions as an nsIntSize. r=jya
This simplifies the comparison and update logic.

MozReview-Commit-ID: A6YII8tlEUn

--HG--
extra : rebase_source : ddf4304298209e515eb44962e8bc9ccd38c9956f
2017-04-21 18:05:46 -07:00
JW Wang
f2ea37e57b Bug 1357986 - Use helper functions of TimeUnit to make code more readable. r=kaku
1. using media::TimeUnit to save some typing.
2. replace TimeUnit() with TimeUnit::Zero().
3. replace TimeUnit::FromXXX(0) with TimeUnit::Zero().
4. replace TimeUnit::FromMicroseconds(std::numeric_limits<int64_t>::max()) with TimeUnit::FromInfinity().
5. replace some uses of int64_t with TimeUnit.
6. replace t > TimeUnit() with t.IsPositive().

MozReview-Commit-ID: 6hC94PXx86i

--HG--
extra : rebase_source : 1ea3b409e6ec12915f3e1a00359d6ff4152c8917
extra : intermediate-source : e31a12ad0e7a4840119036f261ed17eaaff85734
extra : source : ae07ee48000c4a52da0e4fd502b4d690ec51ce1f
2017-04-17 16:35:04 +08: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
JW Wang
464497b945 Bug 1355756. P1 - change the type of MediaData::mDuration to TimeUnit. r=gerald
MozReview-Commit-ID: 3d4bUYtSuMI

--HG--
extra : rebase_source : 94c821b6d381421035e6a12cbe038436055c5822
extra : intermediate-source : 9a06beffc736486f47b9cf05e7f482e726d53068
extra : source : fdbdcd5c1474f04dc1dbde66fcf3a9ecec953053
2017-04-12 17:27:34 +08:00
JW Wang
f45fa7374e Bug 1355740 - Change the type of TrackInfo::mDuration to TimeUnit. r=jya
MozReview-Commit-ID: P7aqw4d5Vk

--HG--
extra : rebase_source : f22743fec9c8b70cbb092e3b26e252e7a4cb0b31
extra : source : 2413cd58f073b734a2cb85cec3658942bfd46e08
2017-04-12 16:41:36 +08:00
Jean-Yves Avenard
f59129b497 Bug 1347538: Don't reject seeks with EOS. r=kinetik
The MediaDecoderStateMachine treat seek's EOS as fatal errors, so instead we always resolve the seek promise, and let the next GetSample return EOS.

MozReview-Commit-ID: 6MGaJ3C8xrH

--HG--
extra : rebase_source : 50c111fb38f50e8a0c823aeef21e9635a88c0afc
2017-03-24 18:36:50 +01:00
Jean-Yves Avenard
10e0910cef Bug 1334508: Treat demuxing errors differently than EOS. r=kinetik
MozReview-Commit-ID: JZTjo8jxfCr

--HG--
extra : rebase_source : abbb3fd9f7733bf4d20f91942eab108462712257
2017-02-19 23:46:16 +01:00
Tom Tromey
5f8f360823 Bug 1060419 - make log_print use Printf.h, r=froydnj
MozReview-Commit-ID: BIZ1GQEZ1vs

--HG--
extra : rebase_source : 2f1f0aa12493c44f352d9a7e8683e7bb72d2d75b
2016-12-15 20:16:31 -07:00
Jean-Yves Avenard
52e09e4b68 Bug 1340129: P1. Allow empty raw frames. r=gerald
MozReview-Commit-ID: AU0QrahHtYe

--HG--
extra : rebase_source : 34604298e01db1b7b481fc55c25cb5f23e806fa2
2017-02-16 23:41:44 +01:00
Jean-Yves Avenard
36471a6bc1 Bug 1336431: P4. Rename SharedTrackInfo. r=gerald
into TrackInfoSharedPtr to better indicate what this class is about.
Adding cast operator to allow transparent conversion from TrackInfoSharedPtr to const TrackInfo*

MozReview-Commit-ID: 6RwXl5CG0fG

--HG--
extra : rebase_source : b5a7a0f06793c609e2eab60aacc4f76d96d6ec32
2017-02-13 19:18:05 +01:00
Jay Harris
4105b89c62 Bug 1306477 - Adds support for subsample encrypted WebMs r=cpearce
MozReview-Commit-ID: HzQKShlmcON

--HG--
extra : rebase_source : 7dc1b27f62b116bd9c0a3b182dde9e25736e591f
2017-02-07 13:30:08 +13:00
Jean-Yves Avenard
16bf821b42 Bug 1325707: P3. Fix coding style. r=gerald
Fixed coding style of files encountered in P1 and P2.

MozReview-Commit-ID: LApVu9K2oto

--HG--
extra : rebase_source : e3bb296baaec9df2011ff312fec2eda19dd125e6
2017-02-07 09:15:59 +01:00
Jean-Yves Avenard
ec59353902 Bug 1325707: P2. Handle OOM conditions when creating MediaRawData object. r=gerald
MozReview-Commit-ID: HtkhrT36Kf4

--HG--
extra : rebase_source : febe0c4114d8d888b152db3f7b5331c0fb32f442
2017-02-07 09:03:36 +01:00
JW Wang
992114f5fd Bug 1332160 - use nsCString internally whenever possible. r=gerald
MozReview-Commit-ID: 1DUaJWfbL88

--HG--
extra : rebase_source : f4a02736b0385e4be6258a185822f7855d0b0189
extra : intermediate-source : 1faaf4254a2e1ce2c096a8650b66d07c84c7fdbe
extra : source : c23fc2cea382627af8ff20ae3edea926eaa6d51a
2017-01-18 16:51:31 +08:00
Gerald Squelart
5745998021 Bug 1331770 - Rename 'MediaContentType' to 'MediaContainerType' - r=jya
MozReview-Commit-ID: F0BWai8vPyo

--HG--
rename : dom/media/MediaContentType.cpp => dom/media/MediaContainerType.cpp
rename : dom/media/MediaContentType.h => dom/media/MediaContainerType.h
extra : rebase_source : 640ada96750b4496055087e80ae3f600c9df31c9
2017-01-18 11:59:03 +11:00
Gerald Squelart
843031e2a5 Bug 1330284 - Use MediaContentType in WebMDecoder - r=jya
MozReview-Commit-ID: 5tcc9of73WR

--HG--
extra : rebase_source : 38ef74afdf27fec45f84f33f539717b3595358f2
2017-01-01 12:16:38 +11:00
Andreas Pehrson
b1d79c9b17 Bug 1231848 - Do not write framerate metadata to webm container in MediaRecorder. r=bechen,jesup,rillian
MozReview-Commit-ID: 2lehFGZTPxh

--HG--
extra : rebase_source : e9d416f33ff3b2c909417080654b0dbc9f7b39f9
2017-01-13 09:00:55 +01:00
Jean-Yves Avenard
e73c9ba70f Bug 1320705: P6. Fix codec mimetypes. r=gerald
MozReview-Commit-ID: FozWtbvDNnA

--HG--
extra : rebase_source : b256424224a10af4957fe4b8ed73347e3608f198
2016-12-02 12:23:23 +11:00
Jean-Yves Avenard
8639a53028 Bug 1320705: P4. Pass discard padding information from webm container. r=kinetik
MozReview-Commit-ID: G2OnV1iZohn

--HG--
extra : rebase_source : 02782a9fa3102890ec2dc910ef755bc0e719fb5e
2016-11-30 20:40:59 +11:00
karo
464c7bb954 Bug 1320829 - updated WebM demuxer to surface alpha information. r=jya
MozReview-Commit-ID: 1jBmc5KUEme

--HG--
extra : rebase_source : 65101540a1bba6041642b89151b545bb7971c3fa
2016-11-23 11:52:16 +13:00
Gerald Squelart
038cba7f2e Bug 1313497 - Pass TimeUnit by const& in MediaDataDemuxer - r=jya
Thanks to the previous patch, MediaDataDemuxer::Seek and
SkipToNextRandomAccessPoint (and all overrides in derived demuxers) can now
take their TimeUnit parameter by const&.

MozReview-Commit-ID: 6CqfjAXZ7Yk

--HG--
extra : rebase_source : c3453e4432d9e0281cf5eba55217b0c1d6312f5b
2016-11-13 15:13:51 +11:00
Jean-Yves Avenard
272037b262 Bug 1314533: P5. Abort when webm parser encounter an error. r=kinetik
MozReview-Commit-ID: 6XHthan8LLp

--HG--
extra : rebase_source : 1615507f27dcdee57d371d60d4ac58dd757c4adc
2016-11-04 23:01:49 +11:00
Jean-Yves Avenard
20dc9102e8 Bug 1299072: P12. Use MediaResult for MediaDataDemuxer promises. r=gerald
MozReview-Commit-ID: JeQrmoHbb8m

--HG--
extra : rebase_source : 1f4581e5789f18b358a6f5bb5f8595cc7a75110b
2016-09-12 12:22:20 +10:00
Carsten "Tomcat" Book
bf5be9e9d9 Backed out changeset 87880c0f7336 (bug 1300703) on request from jya 2016-09-07 14:14:31 +02:00