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
Jean-Yves Avenard
0259a11e37
Bug 1185886: P2. Don't unnecessarily drain decoders when there's no frames pending. r=cpearce
2015-07-27 14:52:11 +10:00
Jean-Yves Avenard
d614b68bdf
Bug 1183888: Report empty buffered ranges unless we have a start time. r=bholley
2015-07-24 23:02:20 +10:00
Jean-Yves Avenard
f77f5f6283
Bug 1185431: Immediately resolve WaitingForDataPromise if we're not waiting for data. r=cpearce
2015-07-22 14:22:46 +10:00
Jean-Yves Avenard
5d0c759bca
Bug 1181204 - Prevent use of the decoder outside the reader's taskqueue. r=cpearce
...
This fix a potential race when the decoder could be shutting down on the reader's taskqueue while the MediaDecoderStateMachine thread attempts to read it.
--HG--
extra : amend_source : d8a7ac55539c22f69d965299010a20b34c8a4c58
extra : transplant_source : %F6%D2z%A2%40%D1%CE%8BX%FB%9E%CA%2B%ABa%7D%F9%7Fl%BF
2015-07-20 15:14:37 -04:00
Jan Gerber
7bed9a2be5
Bug 1148102: P7. Hookup WebMDemuxer. r=jya
2015-07-20 17:27:08 +10:00
Bobby Holley
997543e6ba
Bug 1184634
- Rename MediaTaskQueue to TaskQueue. r=gerald
2015-07-16 22:23:06 -07:00
Bobby Holley
78001ffc43
Bug 1184634
- Rename "TaskQueue()" accessor to "OwnerThread()". r=gerald
...
Otherwise this name will collide with the rename of MediaTaskQueue to TaskQueue.
It's also a better naming convention, because it generalizes to things that are
owned by an AbstractThread that is not a Task Queue.
We rename to Queue() in TestMozPromise, because that's more accurate.
2015-07-16 22:22:07 -07:00
Jean-Yves Avenard
2017f9a033
Bug 1183519: P2. Reject promise if decoder couldn't be created. r=me
...
Follow-up fix.
2015-07-16 16:05:27 +10:00
Jean-Yves Avenard
8c024dd743
Bug 1183653: MediaFormatReader: returns error if no tracks are usable. r=cpearce
2015-07-16 14:31:56 +10:00
Jean-Yves Avenard
15fbc88e95
Bug 1183482: Fix shutdown hang. r=cpearce
...
The MediaFormatReader destructor is only called once all media task queues have shutdown.
However, the main thread demuxer always owned a reference to trackbuffer task queue.
2015-07-16 14:31:55 +10:00
Jean-Yves Avenard
71f0c200c2
Bug 1183519: Wait until current drain completes before decoding new data. r=cpearce
2015-07-16 14:31:54 +10:00
Jean-Yves Avenard
d709da531a
Bug 1182985: Drain decoder when changing resolution. r=cpearce
2015-07-16 14:31:53 +10:00
Jean-Yves Avenard
8ca249040e
Bug 1173657: Drain decoder when discontinuity encountered. r=cpearce
...
A discontinuity can be when waiting for data, decoding error or reaching end of stream.
2015-07-16 14:31:53 +10:00
Jean-Yves Avenard
3b7482b6f2
Bug 1182967: Reject metadata promise on shutdown. r=bholley
2015-07-16 14:31:52 +10:00
Jean-Yves Avenard
9e0b01d33a
Bug 1181894: Always create a PlatformDecoderModule in CDMWrapper. r=cpearce
...
Not all tracks may be encrypted, as such we need a default PDM in order to decode non-encrypted data.
2015-07-09 16:18:05 +10:00
Jean-Yves Avenard
ea747682af
Bug 1180403: P2. Prevent crash when shutting down. r=cpearce
2015-07-09 11:06:07 +10:00
Sotaro Ikeda
05e6073126
Bug 1171257 - Add force decode ahead to MediaFormatReader r=jya,bholley
2015-07-05 09:39:30 -07:00
Bobby Holley
f15bd05ef7
Bug 1179110 - Use a Maybe<> to store start time, rather than using -1 as a sentinel. r=jya
...
This allows us to properly support videos with a negative start time, which
is happening here.
2015-07-02 12:05:17 -07:00
Jean-Yves Avenard
442d53fa88
Bug 1179569: Remove use of decoder's monitor in ResetDecode(). r=bholley
...
Doesn't appear to ever have been required.
2015-07-02 11:55:33 +10:00