Commit Graph

4727 Commits

Author SHA1 Message Date
Dan Glastonbury
84e1a37ffe Bug 1193614 - Schedule State Machine when VideoQueue() is low. r=cpearce
If UpdateRenderedVideoFrames() can't find a frame in VideoQueue() that
is `in the future`, ie. has a time stamp that is greater than clock
time, the thread is scheduled in 40ms.

The logic in UpdateRenderedVideoFrames() always leaves the current frame
sent to the compositor at the head of the queue. It's time stamp is
always less than clock time.

Because there's always one, old frame in the queue, the logic in
OnVideoDecoded() needs to reschedule the state machine when queue size
is two, after adding the new frame.
2015-10-15 07:29:03 +10:00
Chris Pearce
041372e702 Bug 1209385 - Reenable EME mochitests on Win Debug. r=me. 2015-10-15 09:48:05 +13:00
John Lin
7e1e7cf2f4 Bug 1210232 - Let MP4Decoder handle 3GPP files on B2G. r=cpearce 2015-10-11 22:14:00 +02:00
Baptiste Emmanuel
e080509fbe Bug 1069825 - Check if we compare two automation curves occuring at the same time during overlap checking. r=padenot 2015-06-01 20:01:48 +02:00
Baptiste Emmanuel
440512963b Bug 1110344 - Replace float by double in AudioTimelineEvent ctor to prevent a rounding issue. r=padenot
--HG--
extra : rebase_source : 5814a4bc4eec9cb0b80d3de49c09b9bb060aa01f
2015-06-03 11:58:30 +02:00
JW Wang
9268cc5ba6 Bug 1213726 - Remove AbstractMediaDecoder::HasInitializationData(). r=kinetik. 2015-10-12 12:08:46 +08:00
JW Wang
701c985137 Bug 1212701. Part 2 - remove MediaDecoderStateMachine::OnDecodeTaskQueue() which is unused. r=jya. 2015-10-12 12:05:52 +08:00
JW Wang
a072559a2a Bug 1212701. Part 1 - remove AbstractMediaDecoder::OnDecodeTaskQueue(). r=jya. 2015-10-12 12:05:49 +08:00
Jean-Yves Avenard
0269af726a Bug 1212795: P3. Make AppleDecoderModule detects if the required modules are loaded. r=jwwang 2015-10-12 14:47:50 +11:00
Jean-Yves Avenard
b104670364 Bug 1212795: P2. Ensure all frameworks required for video decoding on mac are loaded. r=jwwang
We used to rely on the compositor to have been started, which is a dangerous assumption..
2015-10-12 14:47:49 +11:00
Jean-Yves Avenard
7af6ac5cb1 Bug 1212795: P1. Ensure the check if HW acceleration is allowed is performed on the main thread. r=jwwang
The downside is that a restart is now required if the user change the preference to force HW decoding ; however this is the same behaviour as on Windows.
2015-10-12 14:47:49 +11:00
JW Wang
c3329b728e Bug 1212220 - cache pref values so they are safe to access off the main thread. r=roc. 2015-10-11 20:11:04 +08:00
Jean-Yves Avenard
866344b549 Bug 1206845: Prevent overflows in MediaCache. r=roc 2015-10-12 10:01:26 +11:00
Jean-Yves Avenard
7d704a120e Bug 1213173: Always use FFmpeg regardless of version. r=kentuckyfriedtakahe
We don't need to prevent using FFmpegDecoderModule on older version anymore
2015-10-12 10:00:04 +11:00
Karl Tomlinson
2c37fa9568 bug 1210267 remove custom AudioParam::Release and disconnect in destructor r=baku
AudioParam has no derived type (and DisconnectFromGraphAndDestroyStream calls
no virtual functions) so no need for special release.

--HG--
extra : rebase_source : 1192d8e02d9545a310f175378468c856ef8f5f99
2015-10-02 14:24:51 +13:00
Karl Tomlinson
fcc5b0442a bug 1210267 use DOMEventTargetHelper::LastRelease instead of custom Release r=baku
AudioNode already has NS_IMPL_CYCLE_COLLECTING_RELEASE_WITH_LAST_RELEASE,
which performs mRefCnt.incr/decr for LastRelease(), so the kungFuDeathGrip
virtual AddRef/Release in DisconnectFromGraph() is additional noise when
debugging/tracing ownership.

Unlink() already assumes that the caller holds a reference (and it does).

--HG--
extra : rebase_source : 2ecfb16a89524588979365cfe3078df91724dad3
2015-10-01 00:14:26 +13:00
JW Wang
146f761ff8 Bug 1212246. Part 2 - remove mTaskQueueIsBorrowed and unnecessary checks for mTaskQueue is never null. r=jya. 2015-10-09 09:25:43 +08:00
JW Wang
32c513290f Bug 1212246. Part 1 - remove the aBorrowedTaskQueue parameter from the MediaDecoderReader constructor. r=jya. 2015-10-09 09:25:23 +08:00
Andrew McCreight
ae5fe6a2ad Bug 1210591, part 1 - Use nsVariantCC in various places. r=smaug
Most of these will end up in DataTransfer:mItems, so this is needed
for it to do anything useful.
2015-10-09 10:24:23 -07:00
Jean-Yves Avenard
50da6b541f Bug 1213131: [vpx] Configure libvpx decoder to use multi-threads decoding. r=kentuckyfriedtakahe 2015-10-09 15:46:38 +11:00
Wes Kocher
45375c9d90 Merge m-c to inbound, a=merge 2015-10-08 14:35:43 -07:00
Wes Kocher
599117d547 Merge b2ginbound to central, a=merge 2015-10-08 14:34:24 -07:00
Wes Kocher
23e71e7990 Merge inbound to central, a=merge 2015-10-08 14:29:04 -07:00
Carsten "Tomcat" Book
6e07fc601b Merge m-c to fx-team 2015-10-08 16:11:56 +02:00
Jean-Yves Avenard
628247fc4e Bug 1212176: Remove arguments passed to MediaDataDemuxer::NotifyDataArrived API. r=cpearce
Be more explicit on what it does and how it should be used.
2015-10-08 20:47:21 +11:00
Chris Pearce
4350c14ce1 Bug 1212670 - Implement GMPDecoderModule::SupportsMimeType() and EMEDecoderModule::SupportsMimeType(). r=jwwang 2015-10-08 20:40:54 +13:00
Chris Pearce
9475cc85a4 Bug 1211812 - Mochitest for unencrypted gmp decoding. r=jwwang 2015-10-08 20:40:46 +13:00
Chris Pearce
70498d2115 Bug 1211812 - Add pref to select GMP to use for unencrypted decoding. r=jwwang 2015-10-08 20:40:09 +13:00
Chris Pearce
315fca7c60 Bug 1211812 - Use MozPromise to init mozilla::GMPVideoDecoder. r=jwwang 2015-10-08 20:38:59 +13:00
Carsten "Tomcat" Book
676e56277f merge mozilla-central to b2g-inbound 2015-10-08 16:18:26 +02:00
Jonathan Hao
65a21cb8f6 Bug 1205209 - Check whether mStreamSource is null in MediaOmxReader. r=bechen
--HG--
extra : rebase_source : f9e2f083ef78d8faa48b5cb3c0ed8f383a4c8301
2015-10-08 16:31:08 +08:00
JW Wang
a890d8c667 Bug 1146482 - remove MediaDecoder::mReentrantMonitor which is not used anymore. r=jya. 2015-10-07 14:53:22 +08:00
JW Wang
fcf9e2e7ae Bug 1212260 - MediaFormatReader::SetCDMProxy should call |OwnerThread()->Dispatch|. r=cpearce. 2015-10-08 14:05:06 +08:00
Eric Rahm
a67da92ff4 Bug 1212681 - Enable MSE mochitests on e10s. r=jya 2015-10-08 13:38:02 -07:00
Paul Adenot
6c0eec35f6 Bug 1203616 - Test that waveshaper nodes don't corrupt their input buffer. r=karlt
--HG--
extra : rebase_source : a137eb3deef4fadfa686ff083712c1a614ec6fd8
2015-10-08 11:16:31 +02:00
Paul Adenot
e1154a6a56 Bug 1203616 - Properly scale the input buffer of a WaveShaperNode before processing it with the curve. r=karlt
--HG--
extra : rebase_source : b2505272bf0b177dfb0c6215d0e232a591b6650a
2015-10-08 11:16:31 +02:00
Kilik Kuo
67185f564b Bug 1211364 - Check frame validity earlier when decoded frames arrive in MDSM. r=jwwang
Rebase to currnet truck

--HG--
extra : transplant_source : %EEOW%D8%0D%9B%C8%F5%90%DB0%0E%BFXgX%98%F4%14%A2
2015-10-07 14:52:05 +08:00
hsteinbr
13076b561a Bug 1211658 - GUM constraints for screen sharing don't affect framerate. r=jib
--HG--
extra : amend_source : 65a2228c2b6dd90c4d59d3d9246af7bc1558f41a
2015-10-05 17:05:00 +02:00
Tim Taubert
cd6157491d Bug 1001691 - Make GenerateAsymmetricKeyTask::mKeyPair a UniquePtr so that we can explicitly release it on the main thread r=mt 2015-09-21 14:52:40 +02:00
JW Wang
68837e7538 Bug 1211793 - Remove unnecessary creation of "MediaDecoder" log module. r=gerald. 2015-10-07 14:27:26 +08:00
JW Wang
e7aabfcb3a Bug 1211787 - Improve the accuracy of MediaDecoderStateMachine::GetDecodedAudioDuration(). r=roc. 2015-10-07 12:09:34 +08:00
Nigel Babu
1a01355c4f Backed out 16 changesets (bug 1206977, bug 1211652, bug 1211335) for linux bc7 bustage ON A CLOSED TREE
Backed out changeset 51b1b076a386 (bug 1206977)
Backed out changeset dec7c35469d1 (bug 1206977)
Backed out changeset bf9ddc78b394 (bug 1206977)
Backed out changeset 08f5cff5aa12 (bug 1206977)
Backed out changeset e4e91de99867 (bug 1206977)
Backed out changeset 696ecf2e2947 (bug 1206977)
Backed out changeset ab2d524a9b35 (bug 1206977)
Backed out changeset d66be0e4547f (bug 1206977)
Backed out changeset 64c58afbd6c1 (bug 1206977)
Backed out changeset eb10d09015e1 (bug 1206977)
Backed out changeset 042959216393 (bug 1206977)
Backed out changeset 7e0de7f62202 (bug 1206977)
Backed out changeset 3d095569f6ba (bug 1206977)
Backed out changeset 041418a07ae5 (bug 1206977)
Backed out changeset 654970da23e4 (bug 1211335)
Backed out changeset 8ba8e24a84d3 (bug 1211652)
2015-10-07 13:43:39 +05:30
Nigel Babu
41bc4391c9 Backed out changeset 67b7e1825a7f (bug 1212164) for depending on bug 1206977 2015-10-07 13:43:10 +05:30
Nigel Babu
7e537c9909 Backed out changeset abaadd5361ad (bug 1198664) for B2G build bustage ON A CLOSED TREE 2015-10-07 12:33:08 +05:30
Nigel Babu
8a586a51d4 Backed out changeset 3a4fb0ededfd (bug 1198664) for B2G build bustage ON A CLOSED TREE 2015-10-07 12:32:01 +05:30
Gerald Squelart
5b977ec21d Bug 1211337 - Added crash report annotations tracking sync shutdown process. r=cpearce 2015-10-05 04:14:00 +02:00
Jan-Ivar Bruaroey
61cd22ad23 Bug 1210852 - do SelectSettings of device capabilities on media thread. r=jesup
--HG--
extra : transplant_source : %8E%BB%7B%90MSt%0F%40s%8A%0C/%16y%15Ne%2A%1E
2015-10-03 20:42:26 -04:00
John Lin
993994a080 Bug 1198664 - Part 2 - Use looper to process decoder tasks. r=bwu 2015-10-06 02:20:00 +02:00
John Lin
3e0637f43f Bug 1198664 - Part 1 - Refactor: move common behaviors to base class. r=bwu,jya 2015-10-06 02:18:00 +02:00
sajitk
eb1836bb1e Bug 1180940 - Changed return type of AudioDestinationNode::CreateAudioChannelAgent method to return errors, if any methods that it calls fail. Added code to handle the return value in AudioContext::Init(), and its callers. r=baku 2015-10-05 04:35:00 +02:00
Jean-Yves Avenard
339a21eccf Bug 1212164: Prevent use of demuxer before it is ready. r=cpearce 2015-10-07 16:54:43 +11:00
Jean-Yves Avenard
c3e24823e8 Bug 1206977: P14. Remove obsolete / redundant code. r=cpearce 2015-10-07 16:40:31 +11:00
Jean-Yves Avenard
ac5814731c Bug 1206977: P13. Assert that data fed to EMEDecoderModule is encrypted. r=cpearce
The PDMFactory ensures that the EMEDecoderModule is only used for encrypted data, we can simplify EMEDecoderModule and make strong assumptions
2015-10-07 16:40:30 +11:00
Jean-Yves Avenard
6f051abaa4 Bug 1206977: P12. Properly shutdown all created test decoders. r=cpearce 2015-10-07 16:40:30 +11:00
Jean-Yves Avenard
b4365d5d77 Bug 1206977: P11. Don't rely on SupportsMimeType to determine if a track can be played. r=cpearce
The PDMFactory will run more accurate checks based on the TrackInfo object and will fail to create a decoder if the type is unsupported. So use that instead
2015-10-07 16:40:29 +11:00
Jean-Yves Avenard
87d89f828c Bug 1206977: P10. Remove redundant code. r=cpearce
The same checks are performed in the PDMFactory::SupportsMimeType
2015-10-07 16:40:29 +11:00
Jean-Yves Avenard
27b77f96da Bug 1206977: P9. Ensure PDMs are only ever created through the PDMFactory. r=cpearce 2015-10-07 16:40:28 +11:00
Jean-Yves Avenard
2da2bd26f9 Bug 1206977: P8. Have PDMFactory directly manage the EMEDecoderModule. r=cpearce 2015-10-07 16:40:27 +11:00
Jean-Yves Avenard
6c9f5d0954 Bug 1206977: [webm] P7. Remove IntelWebMVideoDecoder. r=kinetik
That code path is no longer used and handled directly in the MediaFormatReader.

Also, partially revert commit ac6d0b0befb2 as it broke WebMReader.
2015-10-07 16:40:27 +11:00
Jean-Yves Avenard
7ad7357100 Bug 1206977: P6. Make PlatformDecoderModule::SupportsMimeType pure virtual. r=cpearce 2015-10-07 16:40:26 +11:00
Jean-Yves Avenard
046f9f13a9 Bug 1206977: P5. Update PlatformDecoderModule documentation. r=cpearce
Mostly removes no longer relevant doc.
2015-10-07 16:40:25 +11:00
Jean-Yves Avenard
55d1cb62fc Bug 1206977: P4. Add AgnosticDecoderModule object. r=cpearce
This removes the need for PDMFactory to know anything about decoders.
2015-10-07 16:40:25 +11:00
Jean-Yves Avenard
78fc388e1e Bug 1206977: P3. Allow PDM fallback. r=cpearce
We now search in all the PDM present the one that can handle the media.
2015-10-07 16:40:24 +11:00
Jean-Yves Avenard
0256993164 Bug 1206977: P2. Wrap PDM creation in a new PDMFactory class. r=cpearce
There is no change of behaviour from the original PlatformDecoderModule.
2015-10-07 16:40:24 +11:00
Jean-Yves Avenard
9586070ed3 Bug 1206977: P1. Remove unused PDM function members. r=cpearce 2015-10-07 16:40:23 +11:00
Jean-Yves Avenard
89639edfde Bug 1211335: Have FFMpegDecoderModule properly return if a codec is supported. r=cpearce 2015-10-07 16:40:22 +11:00
Jean-Yves Avenard
3a86e96468 Bug 1211652: Add sourcebuffer.mode = sequence mochitest. r=gerald 2015-10-07 16:40:22 +11:00
John Lin
ec509c177b Bug 1198664 - Use looper to process decoder tasks. r=bwu
--HG--
extra : rebase_source : dc2b04fb2ca4bb5298783993fdcb50854086e228
2015-10-07 00:32:00 +02:00
John Lin
1d3c7f5365 Bug 1198664 - Refactor: move common behaviors to base class. r=bwu,jya
--HG--
extra : rebase_source : 638f1e27980212e7b47e091bbc2450f6b99aa6c5
2015-10-06 02:18:00 +02:00
Andrea Marchesini
c53e405b13 Bug 1211511 - AudioChannelAgent::NotifyStartedPlaying and NotifyStoppedPlaying should use the same level of playback notification, r=roc 2015-10-07 20:06:47 +01:00
Wes Kocher
1d2db38d82 Backed out changeset fe1ed0ded678 (bug 1211974) for robocop orange 2015-10-07 11:45:59 -07:00
Eitan Isaacson
bcfd470971 Bug 1211974 - Implement nsIObserver in SpeechDispatcherService. r=smaug 2015-10-07 09:57:37 -07:00
Andrew McCreight
0ff7248107 Bug 1210517 - Create nsVariant directly rather than via do_CreateInstance(). r=froydnj
The goal here is to leave creation stuff mostly for JS, so we can
convert it entirely over to a non-threadsafe cycle-collected version
without breaking any existing C++ users.

I didn't do this for a remaining use in nsGlobalWindow.h to avoid
including nsVariant.h all over the place.
2015-10-07 08:17:42 -07:00
Jean-Yves Avenard
9a7c13fa78 Bug 1206977: P15. Fix FFmpeg shutdown crash should decoder not be initialised. r=me 2015-10-08 00:34:49 +11:00
Jean-Yves Avenard
c5052e863a Bug 1206977: P14. Remove obsolete / redundant code. r=cpearce 2015-10-08 00:34:48 +11:00
Jean-Yves Avenard
e32d97b854 Bug 1206977: P13. Assert that data fed to EMEDecoderModule is encrypted. r=cpearce
The PDMFactory ensures that the EMEDecoderModule is only used for encrypted data, we can simplify EMEDecoderModule and make strong assumptions
2015-10-08 00:34:48 +11:00
Jean-Yves Avenard
e4ea0dae9d Bug 1206977: P12. Properly shutdown all created test decoders. r=cpearce 2015-10-08 00:34:47 +11:00
Jean-Yves Avenard
d9cf3168c4 Bug 1206977: P11. Don't rely on SupportsMimeType to determine if a track can be played. r=cpearce
The PDMFactory will run more accurate checks based on the TrackInfo object and will fail to create a decoder if the type is unsupported. So use that instead
2015-10-08 00:34:47 +11:00
Jean-Yves Avenard
bfea6860dd Bug 1206977: P10. Remove redundant code. r=cpearce
The same checks are performed in the PDMFactory::SupportsMimeType
2015-10-08 00:34:46 +11:00
Jean-Yves Avenard
620a0262c9 Bug 1206977: P9. Ensure PDMs are only ever created through the PDMFactory. r=cpearce 2015-10-08 00:34:46 +11:00
Jean-Yves Avenard
5d54dafcb3 Bug 1206977: P8. Have PDMFactory directly manage the EMEDecoderModule. r=cpearce 2015-10-08 00:34:45 +11:00
Jean-Yves Avenard
61bf9de8cf Bug 1206977: [webm] P7. Remove IntelWebMVideoDecoder. r=kinetik
That code path is no longer used and handled directly in the MediaFormatReader.

Also, partially revert commit ac6d0b0befb2 as it broke WebMReader.
2015-10-08 00:34:45 +11:00
Jean-Yves Avenard
c463ef6fd5 Bug 1206977: P6. Make PlatformDecoderModule::SupportsMimeType pure virtual. r=cpearce 2015-10-08 00:34:44 +11:00
Jean-Yves Avenard
ff58eec402 Bug 1206977: P5. Update PlatformDecoderModule documentation. r=cpearce
Mostly removes no longer relevant doc.
2015-10-08 00:34:44 +11:00
Jean-Yves Avenard
9e830ea930 Bug 1206977: P4. Add AgnosticDecoderModule object. r=cpearce
This removes the need for PDMFactory to know anything about decoders.
2015-10-08 00:34:43 +11:00
Jean-Yves Avenard
35090bba3a Bug 1206977: P3. Allow PDM fallback. r=cpearce
We now search in all the PDM present the one that can handle the media.
2015-10-08 00:34:42 +11:00
Jean-Yves Avenard
dd5e99c694 Bug 1206977: P2. Wrap PDM creation in a new PDMFactory class. r=cpearce
There is no change of behaviour from the original PlatformDecoderModule.
2015-10-08 00:34:42 +11:00
Jean-Yves Avenard
cc74e2d1a4 Bug 1206977: P1. Remove unused PDM function members. r=cpearce 2015-10-08 00:34:41 +11:00
Jean-Yves Avenard
9861c50a98 Bug 1211335: Have FFMpegDecoderModule properly return if a codec is supported. r=cpearce 2015-10-08 00:34:41 +11:00
Jean-Yves Avenard
a02b64b149 Bug 1212164: Prevent use of demuxer before initialization completes. r=cpearce 2015-10-08 00:34:40 +11:00
Jean-Yves Avenard
d36aaa89f4 Bug 1211652: Add sourcebuffer.mode = sequence mochitest. r=gerald 2015-10-08 00:34:40 +11:00
Jan Henning
1e4aec48b4 Bug 1202286 - Part 2 - Switch VBR header parsing to use a ByteReader as well instead of directly accessing the buffer. r=esawin
This also contains two small fixes to the VBR header parsing logic itself:
- VBRI parsing was previously broken because the offset wasn't calculated correctly.
- Xing-style headers can use a VBR header ID of "Info" as well.

--HG--
extra : rebase_source : 320a5e7b50e16ab3382e7121dd3d41f5fc439b76
2015-10-04 18:51:40 +02:00
Jan Henning
39b1643cc7 Bug 1202286 - Part 1 - Switch the MPEG frame and ID3 header parsers to use a ByteReader instead of accessing the input buffer directly. r=esawin
--HG--
extra : rebase_source : 4d3c6e1d5f6655163bf59fcdc4238f3740e107d2
2015-10-03 20:36:46 +02:00
Jan Henning
7db0ee08cb Bug 1202286 - Part 0 - Add some explicit namespace references to keep the compiler and IntelliSense happy. r=esawin
DecoderTraits.cpp pulls in MP3Demuxer.h which in turn pulls in mp4_demuxer/ByteReader.h. In that context, for some reason the ByteReader can't find the definition for MediaByteBuffer unless it is prefixed with the proper namespace.

MP3Demuxer.cpp itself compiles fine, but for some reason in Visual Studio IntelliSense complains about TimeUnit and TimeIntervals being undefined unless the using statement uses the full namespace hierarchy.

Also fix a small typo.

--HG--
extra : rebase_source : fc46fc82bf06b61c9ac31c2f4331f84f8557c51e
2015-10-01 11:29:48 +02:00
JW Wang
aadc51ecc8 Bug 1211766 - Remove AbstractMediaDecoder::GetReentrantMonitor(). r=jya. 2015-09-30 07:04:49 +08:00
Chris Pearce
3aa7323650 Bug 1211339 Part 3 - Refuse to support video codecs inside audio mime types. r=jya 2015-10-06 16:53:03 +13:00
Chris Pearce
aaf1f72ba5 Bug 1211339 Part 2 - Make MP4Decoder::CanHandleMediaType() check all codecs are supported by a PDM before reporting support. r=jya 2015-10-06 16:52:58 +13:00
Chris Pearce
494f013e18 Bug 1211339 - Ensure WMFDecoderModule::SupportsMimeType checks it can create decoders. r=jya 2015-10-06 16:52:52 +13:00
JW Wang
39fbfc7425 Bug 1208934 - Remove usage of decoder monitor from MDSM. r=kinetik. 2015-10-06 10:26:33 +08:00
Andrew McCreight
5171450b27 Bug 1197893 - Check the number of arguments for ThrowTypeError() and ThrowRangeError() at compile time. r=peterv 2015-10-05 09:38:14 -07:00