Commit Graph

114 Commits

Author SHA1 Message Date
JW Wang
fcf9e2e7ae Bug 1212260 - MediaFormatReader::SetCDMProxy should call |OwnerThread()->Dispatch|. r=cpearce. 2015-10-08 14:05:06 +08: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
5d54dafcb3 Bug 1206977: P8. Have PDMFactory directly manage the EMEDecoderModule. r=cpearce 2015-10-08 00:34:45 +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
a02b64b149 Bug 1212164: Prevent use of demuxer before initialization completes. r=cpearce 2015-10-08 00:34:40 +11: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
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
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
2da2bd26f9 Bug 1206977: P8. Have PDMFactory directly manage the EMEDecoderModule. r=cpearce 2015-10-07 16:40:27 +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
877ef122ef Bug 1209850: Only attempt to initialize decoders as they are required. r=alfredo 2015-10-01 23:05:16 +10:00
Carsten "Tomcat" Book
3a44702ffb Backed out 1 changesets (bug 1209850) for causing m2 test failures
Backed out changeset 9c01e0e3da74 (bug 1209850)
2015-10-01 14:05:49 +02:00
Jean-Yves Avenard
3785990cb1 Bug 1209850: Only attempt to initialize decoders as they are required. r=alfredo 2015-10-01 19:07:39 +10:00
JW Wang
7651430ef0 Bug 1208922. Part 6 - IsWaitingOnCDMResource() is not used by MDSM anymore. Remove it from MediaDecoderReader and make it private in MediaFormatReader. r=cpearce. 2015-09-27 18:59:52 +08:00
JW Wang
6b35bad359 Bug 1208922. Part 5 - MDSM can now query capabilities from CDMProxy without reader setting them in MediaInfo. r=cpearce. 2015-09-27 18:59:50 +08:00
JW Wang
b502b0fe56 Bug 1208922. Part 2 - add MediaDecoderReader::SetCDMProxy so it won't need to ask MediaDecoder for a CDMProxy. r=cpearce. 2015-09-27 18:40:03 +08:00
Jean-Yves Avenard
9396c59cd0 Bug 1089586: Abort pending seeks. r=jwwang
We only perform the last seek requested instead.
2015-09-29 11:37:15 +10:00
Jean-Yves Avenard
e5aadf98af Bug 1205911: P2. Ensure demuxer is reset before performing a seek. r=edwin
Should there be any demuxing request pending resolution, it would have caused our internal seek to ultimately fail.
2015-09-18 16:03:58 +10:00
Jean-Yves Avenard
c15474a997 Bug 1205911: P1. Cancel pending demux request when searching for next keyframe. r=edwin 2015-09-18 16:03:58 +10:00
Jean-Yves Avenard
023ff53978 Bug 1204757: P1. Update MediaDataDemuxer::Init() behavior. r=cpearce
A MediaDataDemuxer is now not to resolve the init promise until it has all the metadata.
Except MediaSource, all demuxers would be doing blocking read to scan for the metadata, and having partial metadata would be an error.
For MediaSource, we pass the NotifyDataArrived message which will cause the MediaSourceDemuxer to re-attempt to search for the metadata.

When used within MediaSource's TrackBuffersManager, a demuxer will never be created until we have received a complete init segment (this task is performed by the various ContainerParsers)
2015-09-16 18:14:17 +10:00
Jean-Yves Avenard
9e0e052d65 Bug 1193670: P1. Remove use of SharedDecoderManager. r=cpearce 2015-09-16 18:14:15 +10:00
Jean-Yves Avenard
1de1d09411 Bug 1204407: P1. Remove no longer used mainthread object. r=cpearce 2015-09-16 18:14:14 +10:00
Jean-Yves Avenard
82279827e6 Bug 1204419: P3. Remove now unused MediaDecoderReader functions. r=cpearce 2015-09-16 18:14:12 +10:00
Jean-Yves Avenard
fa4c46c19b Bug 1199904: Only start decoding ahead after explicitly requesting data. r=gerald
Decode ahead will be stopped when seeking or when switching resolution.
2015-08-30 20:48:09 +10:00
Jean-Yves Avenard
192f716dfb Bug 1197075: P4. Reject skip promise on cancellation or shutdown. r=edwin
Also remove redundant code.
2015-08-26 15:36:54 +10:00
Jean-Yves Avenard
c27fc37432 Bug 1197075: P3. Decode frames ahead of MDSM requesting them. r=edwin
This makes the media.*-decode-ahead pref performs more according to its name.
We decode audio and video in advance so a MediaDataPromise can be resolved almost instantly.
Default is 2.
2015-08-26 15:36:54 +10:00
Jean-Yves Avenard
3bca678d28 Bug 1197075: P2. Revert "Bug 1171257 - Add force decode ahead to MediaFormatReader r=jya,bholley". r=edwin 2015-08-26 15:36:53 +10:00
Jean-Yves Avenard
e08e634d4f Bug 1196696: Always check that track demuxer was successfully created. r=jwwang 2015-08-26 12:50:06 +10:00
Jean-Yves Avenard
60b4f11a68 Bug 1197664: Report the total number of decoded frames. CLOSED TREE r=kentuckyfriedtakahe 2015-08-24 23:46:35 +10:00
Matt Woodrow
ec61d0727e Bug 1196417 - Make video software fallback only affect the current video instead of the entire browser. r=cpearce 2015-08-20 11:43:36 -04:00
Benjamin Chen
0af807cd51 Bug 1192733: fix the MediaFormatReader can not back from dormant state. r=jya
--HG--
extra : rebase_source : 185e32c16727be0a5138b936e56c72b20fa03f19
2015-08-14 12:02:15 +08:00
Jean-Yves Avenard
3f43144aaf Bug 1195071: Check for MediaDataDecoder::Input error. r=cpearce 2015-08-17 10:28:43 +10:00
Matt Woodrow
169ab22517 Bug 1178098 - Report why DXVA initialization failed to about:support. r=cpearce
--HG--
extra : rebase_source : 976baee04db89d0808b8fc494108e01aa163d402
2015-07-13 16:12:23 -04:00
Jean-Yves Avenard
c6fcd44f2d Bug 1188871: P1. Don't drain decoders when an error is encountered. r=cpearce
This is a partial revert of bug 1173657 (commit 80f9da7f0806). Not all decoders will properly handle draining when they have encountered an error and will never call DrainComplete().
The Gonk and Android decoder do not. So we just get around this.
2015-08-14 10:20:31 +10:00
Jean-Yves Avenard
ce57a50527 Bug 1180935: P3. Fixed MediaFormatReader::Update logging. r=gerald 2015-08-12 21:46:06 +10:00
Jean-Yves Avenard
398014c093 Bug 1180935: P1. Do not drain decoders when waiting for data. r=cpearce
We made the design decision that it was preferable to decode as much of what we had, even if that meant we couldn't decode some frames upon resume.
This can cause significant apparent stalls with some YouTube videos where keyframes are up to 4.2s appart (128 frames).
2015-08-12 21:46:05 +10:00
Birunthan Mohanathas
2b4a52cf2e Bug 1185763 - Part 3: Rename nsTArray::MoveElementsFrom to AppendElements. r=froydnj 2015-08-11 08:29:46 -07:00
Birunthan Mohanathas
edbcd5e014 Bug 1185763 - Part 1: Always use mozilla::Move with nsTArray::MoveElementsFrom. r=froydnj 2015-08-11 08:29:46 -07:00
Jean-Yves Avenard
10659dafdb Bug 1188313: P1. Attempt to seek audio near video. r=cpearce
Do not only rely on the MediaDecoderState machine to keep A/V sync after a seek as should we seeked in fast mode ; it wouldn't
2015-08-11 14:18:49 +10:00
Alfredo Yang
8c59fda383 Bug 1146086: use promise to Init() in PlatformDecoderModule. r=jya,r=cpearce 2015-08-11 14:09:12 +10:00
Kilik Kuo
ad5c5e6495 Bug 1188812 - Obtain CDM can render capability and store into MediaInfo r=cpearce. 2015-08-06 14:24:00 +08:00
Jean-Yves Avenard
616e6d2dd6 Bug 1188131: Don't rely on MediaResource type to detect media format. r=cpearce
This information is often wrong and non-existent with MSE. Let the PDM decides later based on the metadata.
This prevent hardware acceleration to be turned on leading to extremely high CPU usage on high definition videos.
2015-08-07 12:19:49 +10:00
Bobby Holley
c4645a718b Bug 1190496 - Namespace the SharedThreadPool.h include. r=cpearce 2015-08-04 14:00:25 -07:00
Alfredo Yang
1885ed42a2 Bug 1189173 - Drop frames aggressively during internal seek. r=jya
--HG--
extra : rebase_source : 2db2cf4908c764df2273a0c6f2fb572a6310b0e8
2015-07-30 00:53:00 +02:00
Jean-Yves Avenard
024aff6746 Bug 1189138: P2. Add useful debugging information to logs. r=cpearce 2015-07-30 15:20:19 +10:00
Jean-Yves Avenard
b29bbb6f28 Bug 1188233: Ensure drainComplete flag is set upon failure to create decoder. r=cpearce 2015-07-28 23:28:24 +10:00
Jean-Yves Avenard
c203925f63 Revert "Bug 1188233: Ensure drainComplete flag is set upon failure to create decoder. r=cpearce"
This reverts commit 9c48bac3e0d3
2015-07-28 16:37:53 +10:00
Jean-Yves Avenard
c7b835ce08 Bug 1188233: Ensure drainComplete flag is set upon failure to create decoder. r=cpearce 2015-07-28 14:23:29 +10:00
Jean-Yves Avenard
bec365db4b Bug 1188220: Allow disabling HW acceleration even when SharedDecoderManager isn't used. r=cpearce
The SharedDecoderManager is being obsoleted.
2015-07-28 14:11:06 +10:00