Commit Graph

7969 Commits

Author SHA1 Message Date
Jean-Yves Avenard
57a4871bb2 Bug 1299072: P13. Use MediaResult with TrackBuffersManager internal promises. r=gerald
MozReview-Commit-ID: AjeEAGGsetQ

--HG--
extra : rebase_source : c8b3ec6247314e53cb2c5bef1db6bb5f84d0a371
2016-09-12 15:17:16 +10: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
Jean-Yves Avenard
162fa5f03b Bug 1299072: P11. Use MediaResult with AppendBuffer promises. r=gerald
Will allow to pass detailed failure causes in a followup patch.

MozReview-Commit-ID: 5yGjzZNcYWg

--HG--
extra : rebase_source : fdd76c98900320352ee3c349de1c40df29122ca9
2016-09-12 08:54:10 +10:00
Jean-Yves Avenard
6a25692b20 Bug 1299072: P10. Pass decoding error details to media element's error attribute. r=jwwang
MozReview-Commit-ID: 49DurV9WI5S

--HG--
extra : rebase_source : 469e6ed4e222fb6d6ac34843c3c3346a044c6023
2016-09-11 00:56:09 +10:00
Jean-Yves Avenard
00e8a7dabc Bug 1299072: P9. Pass decoding error details to MediaDecoder. r=jwwang
MozReview-Commit-ID: uXWHhTozon

--HG--
extra : rebase_source : 7736b9d969dc680b08bffbc7610271d5cc0272be
2016-09-11 00:51:13 +10:00
Jean-Yves Avenard
f9b88ac91f Bug 1299072: P8. Pass decoding error details through SeekTask. r=jwwang
MozReview-Commit-ID: bfsL6rBUfm

--HG--
extra : rebase_source : 3756e87e3b418983d86c0f04117ca176c7353df1
2016-09-11 00:45:34 +10:00
Jean-Yves Avenard
a3d152a719 Bug 1299072: P7. Use MediaResult with MetadataPromise. r=jwwang
MozReview-Commit-ID: KrRr8wDuPNT

--HG--
extra : rebase_source : 3df3763890a55c898ca3f00dd914e3c78fe714b1
2016-09-10 19:56:50 +10:00
Jean-Yves Avenard
c590867926 Bug 1299072: P6. Pass decoding error details to MDSM and relatives. r=jwwang
MozReview-Commit-ID: 4ow2nF6Syz

--HG--
extra : rebase_source : d8cc561f42ca774b3a2865042392fb4a6aea82fa
2016-09-10 16:48:53 +10:00
Jean-Yves Avenard
3108deb75c Bug 1299072: P5. Don't rely on specific error to assess recoverability. r=jwwang
MozReview-Commit-ID: KSmW2TEBO9y

--HG--
extra : rebase_source : d85ea0f63ce2ce20b50b5c1f2a9e06c612e3e909
2016-09-10 10:49:54 +10:00
Jean-Yves Avenard
f4efa8be06 Bug 1299072: P4. Return extended failure details to reader. r=gerald
We provide even further details for the GMP decoder. Other decoders to follow.

MozReview-Commit-ID: 7NxJPec8xWv

--HG--
extra : rebase_source : f44120983070e5c107ecd5cafc762da90aab44bf
2016-09-10 09:56:53 +10:00
Jean-Yves Avenard
ccf43e591a Bug 1299072: P3. Add MediaResult object. r=gerald
MozReview-Commit-ID: CNedjeEi6PE

--HG--
extra : rebase_source : 809450efef0f5e32cb80540881b1454545fe83b2
2016-09-10 01:23:31 +10:00
Byron Campen [:bwc]
6b8b80240c Bug 1298586: Wait for an additional frame. r=drno
MozReview-Commit-ID: JWY1nRICIBh

--HG--
extra : rebase_source : dd5b9363855b1af5db4128e53bfb4afaa86c27ce
2016-09-08 16:19:05 -05:00
JW Wang
09fb09e249 Bug 1302001. Move some code to WaitForCDMState. r=kaku
MozReview-Commit-ID: RAvuVs7Ykq

--HG--
extra : rebase_source : e363f0abdc82cb560bc8f8a9460544195d46de53
2016-09-06 15:01:30 +08:00
Paul Bignier
5cc1482f1d Bug 1301639 - Fix a unit issue in ADTSDemuxer. r=jya
* Simplified and factored computation by using FramesToTimeUnit()
 * CID 1368390
2016-09-09 14:38:04 +02:00
Phil Ringnalda
3748f182f6 Merge m-i to m-c, a=merge 2016-09-10 00:14:21 -07:00
Paul Adenot
ee6b91ee10 Bug 1301518 - Support mapping family 255 when playing an Opus file, for use with the Web Audio API. r=jya
MozReview-Commit-ID: AaTCp16m6ks
2016-09-09 17:10:09 +02:00
Carsten "Tomcat" Book
0f2c669a48 merge mozilla-inbound to mozilla-central a=merge 2016-09-09 12:02:43 +02:00
Chris Pearce
e99ce4a9c7 Bug 1294003 - Ensure we destroy DXVA2Manager on main thread if DXVA init fails. r=mattwoodrow
If initializing DXVA fails, we end up destroying the DXVA2Manager on the
decode task queue. The DXVA2Manager asserts that it's destroyed on the
main thread, so we should dispatch a task to destroy it on the appropriate
thread instead of destorying it on the wrong one.


MozReview-Commit-ID: 2pbeMOm74et

--HG--
extra : rebase_source : c4a6871877747d4e04494c638d83b225decaf249
2016-09-09 16:12:50 +12:00
Gerald Squelart
b94f8cfb3e Bug 1301561 - Change media.decoder.heuristic.dormant.timeout to 10000 (ms) - r=jwwang
MozReview-Commit-ID: BibXsBpjIQe

--HG--
extra : rebase_source : 7e2afca18bf8e988455d2fb3eb71866f140808e5
2016-09-09 11:00:21 +10:00
Matt Woodrow
99bf9b18df Bug 1301294 - Remove unnecessary nsresult return value from MediaDataDecoder interface. r=jya 2016-09-09 15:50:37 +12:00
Jean-Yves Avenard
dc791c944e Bug 1280023: [MSE] P2. Drop audio size threshold to 10MB. r=gerald
Following bug 1301307, exception is properly thrown when buffer is full, giving the opportunity to the JS player to adjust accordingly. Confirmed to work with YouTube with an audio threshold of only 1MB.

MozReview-Commit-ID: 77K8UPhb9zj

--HG--
extra : rebase_source : 64b75f7f563ba9d6fc0c6feeaf7c945894fd6a06
2016-09-08 21:16:14 +10:00
Jean-Yves Avenard
96b8e1d552 Bug 1280023: [MSE] P1. Never evict data in the media segment currently being played. r=gerald
MozReview-Commit-ID: 3yCHYzdavWA

--HG--
extra : rebase_source : 96d4197501d0e629130524f415e7c39b0ca82072
2016-09-08 21:00:46 +10:00
Jean-Yves Avenard
be3f2c08c0 Bug 1301307: [MSE] Throw error when sourcebuffer is full and no data could be evicted. r=gerald
MozReview-Commit-ID: GWil57B0QBc

--HG--
extra : rebase_source : b1ba6f150546f2f9fe4c0b6780bce7c97c0a95bc
2016-09-08 19:58:32 +10:00
Jean-Yves Avenard
747d2faea4 Bug 1294154: Handle case where WMF is unable to determine time and duration. r=mattwoodrow
The WMF decoder doesn't handle well the case where a single frame was given to decode.
When draining, the output is a correctly decoded frame but with a time of 0 and a duration set at 1/30th.
This is a workaround

MozReview-Commit-ID: JbjgNmPXKIM

--HG--
extra : rebase_source : f25a1fd503678383265ec5053b41f3116ff52da0
2016-09-02 20:49:17 +10:00
ctai
1d7c721cfc Bug 1300871 - Rollback to use original duration in video case. r=jesup
MozReview-Commit-ID: 2gK8vvBKtkC

--HG--
extra : rebase_source : 1e1d2f01a1f39685365a7df061eba53c094eb10d
2016-09-08 13:46:48 +08:00
Alfredo.Yang
2488fefb27 Bug 1240412 - add VP9-in-MP4 support to Rust demuxer. r=rillian
MozReview-Commit-ID: 1Yq8OOV3kvM

--HG--
extra : rebase_source : d6ee4404eafef8a476767ebfd17a195f81dcf275
2016-08-29 14:37:22 +08:00
JW Wang
6790f26412 Bug 1300956. Part 10 - Remove null-checks for mStateObj. r=kaku
MozReview-Commit-ID: 6SRx1QqRXC8

--HG--
extra : rebase_source : 1e5d8feebfc501d93fcdd0e76634447fe18158b0
2016-09-06 11:42:28 +08:00
JW Wang
21c12cb17d Bug 1300956. Part 9 - Implement ShutdownState. r=kaku
MozReview-Commit-ID: LnbQeCPYy9f

--HG--
extra : rebase_source : 80d88873f7b48d5ee77505e1f99a533edd2c13df
2016-09-06 11:37:46 +08:00
JW Wang
eff197ce51 Bug 1300956. Part 8 - Implement CompletedState. r=kaku
MozReview-Commit-ID: KsgjLPShe2N

--HG--
extra : rebase_source : cf5c32278a2cdc1e1c2907d3a1125508db53044c
2016-09-06 11:34:09 +08:00
JW Wang
15cc25b0ee Bug 1300956. Part 7 - Implement BufferingState. r=kaku
MozReview-Commit-ID: 5FvguP4y43Z

--HG--
extra : rebase_source : 320d0147da58a221a3c7fd6b6fc9cedb8283da14
2016-09-06 11:30:30 +08:00
JW Wang
0b098a699d Bug 1300956. Part 6 - Implement SeekingState. r=kaku
MozReview-Commit-ID: IrEOmTXlzuR

--HG--
extra : rebase_source : af7d4a0ee829c8b76c060f0d4cde2b190b564978
2016-09-06 11:20:12 +08:00
JW Wang
5705f9d46d Bug 1300956. Part 5 - Implement DecodingState. r=kaku
MozReview-Commit-ID: Kx5oRrT8DD0

--HG--
extra : rebase_source : f46ba695bd8683d1d374e538ff48f7f2caa1aff3
2016-09-06 11:14:09 +08:00
JW Wang
8548369f55 Bug 1300956. Part 4 - Implement DecodingFirstFrameState. r=kaku
MozReview-Commit-ID: DXMv6pGbo7N

--HG--
extra : rebase_source : 5696a7ea5af64c25ca552cf800653970c072f2f0
2016-09-06 11:10:52 +08:00
JW Wang
357d7775e0 Bug 1300956. Part 3 - Implement DormantState. r=kaku
MozReview-Commit-ID: 85IjZCdFjyJ

--HG--
extra : rebase_source : 1fc7b7052189add88d80eb038ca66e74a48a56f0
2016-09-06 11:07:55 +08:00
JW Wang
9597cd20f4 Bug 1300956. Part 2 - Implement WaitForCDMState. r=kaku
MozReview-Commit-ID: 7jzwgWxqYKL

--HG--
extra : rebase_source : 22a5e9f5f25e64ec7a84725e2913eda2c795a2f2
2016-09-06 11:05:03 +08:00
JW Wang
733e1bae5a Bug 1300956. Part 1 - Add declarations of the state objects of MDSM. Also implement DecodeMetadataState. r=kaku
MozReview-Commit-ID: BRyi409rmn5

--HG--
extra : rebase_source : 369b2654a77c76aa5654680f8cce763e67205fc2
2016-09-06 11:01:57 +08:00
JW Wang
2487c1c0d0 Bug 1300497. Part 6 - remove the call to |SetState(DECODER_STATE_SHUTDOWN)| from DecodeError(). r=kaku
So we have only one place to transition to the SHUTDOWN state which is Shutdown().

MozReview-Commit-ID: 6MNISCea94Q

--HG--
extra : rebase_source : 3e5a2084a158fc9569b3b7d3b95033d7fe4233b2
2016-09-06 15:33:20 +08:00
JW Wang
cd7ef56af7 Bug 1300497. Part 5 - run MDSM cycles immediately in the callback of mDelayedScheduler. r=kaku
There is no point in scheduling an addition cycle to do that.
Also remove the annoying debugging message which is not helpful.

MozReview-Commit-ID: BMjeTNg6HCY

--HG--
extra : rebase_source : df1be5984072fd64070bd5da98e7e27a46c59756
extra : source : 93c2408e698b0e597b6ab8cb47255c53cf65e67d
2016-09-05 17:51:54 +08:00
JW Wang
bac7dcf291 Bug 1300497. Part 4 - remove the call to ScheduleStateMachine() before |SetState(DECODER_STATE_SHUTDOWN)| and cancel mDelayedScheduler in Shutdown(). r=kaku
We don't want to run MDSM cycles anymore once shutdown begins.

MozReview-Commit-ID: 7Py20oqWNBG

--HG--
extra : rebase_source : 42793b4463593cf4efa7eae6d59c79dc528a82b2
2016-09-06 10:26:45 +08:00
JW Wang
597125576a Bug 1300497. Part 3 - move some code from FinishShutdown() to Shutdown(). r=kaku
We don't want to receive notifications from MediaEventSource or WatchManager once shutdown begins.

MozReview-Commit-ID: LiKUjOGuxyX

--HG--
extra : rebase_source : 05af4df691f174e8c4c6082bafc14c04534ce8fa
2016-09-06 10:23:02 +08:00
JW Wang
9a14792ce2 Bug 1300497. Part 2 - constify and fix the comment of IsShutdown(). r=kaku
MozReview-Commit-ID: AsZwNPAlq0d

--HG--
extra : rebase_source : 5c3b501b8f8c1ada93504f4d379bf8f581f42913
2016-09-05 16:50:06 +08:00
JW Wang
f99b17804a Bug 1300497. Part 1 - assert we never escape the SHUTDOWN state. r=kaku
MozReview-Commit-ID: JDWdFAGZijm

--HG--
extra : rebase_source : 625a0e6f73b39e414a8582d4329a48b2664535c8
2016-09-05 16:38:09 +08:00
Jean-Yves Avenard
ecc1d76946 Bug 1301068: Ensure InputExhausted is called if H264Converter drops a frame. r=gerald
MozReview-Commit-ID: LyZlzU4D58o

--HG--
extra : rebase_source : 8819e290ab46c32052cf1fc800ba49683f7db2b5
2016-09-08 00:22:06 +10:00
Jean-Yves Avenard
9b0354c08b Bug 1300296: P3. Ensure that a new or flushed decoder first h264 frame is always a keyframe. r=gerald
MozReview-Commit-ID: s0NEB8hesj

--HG--
extra : rebase_source : f1ac8aaf58861025cd2bf54d90a14b71d6504b31
2016-09-06 11:47:20 +10:00
Jean-Yves Avenard
75e90695b5 Bug 1300296: P2. Don't rely on MP4 container to properly report if a frame is a keyframe. r=kentuckyfriedtakahe
There are too many cases where the MP4 is improperly muxed and frames are incorrectly reported as keyframe.
Instead we now look inside the H264 stream and check for IDR frames.

We also ensure that the first frame returned after a seek is always a true keyframe.

For plain MP4, seeking in those broken files will lead to broken A/V sync. The only way to fix this would be to check for the frame type when reading the samples table. However, this would require to read the entire stream which isn't viable.

MozReview-Commit-ID: Cpv5y7HVD0N

--HG--
extra : rebase_source : 2f92032fe39ed6ad6c2b82438f405040b5e7d30c
2016-09-04 21:33:23 +10:00
Wes Kocher
ac33516b3c Merge m-c to autoland, a=merge 2016-09-07 18:07:50 -07:00
Wes Kocher
5cbc382303 Merge inbound to m-c a=merge 2016-09-07 17:54:24 -07:00
Carsten "Tomcat" Book
7c6c7db247 Merge mozilla-central to autoland 2016-09-07 17:26:11 +02:00
Carsten "Tomcat" Book
1c61ba654e merge mozilla-inbound to mozilla-central a=merge 2016-09-07 17:20:12 +02:00
Andreas Pehrson
5c882b1fe8 Bug 1300529 - Remove default arguments from AudioNodeStream::Create. r=padenot
MozReview-Commit-ID: KG8PtBbJrc2

--HG--
extra : rebase_source : 4be41a0dff23a62dfa43699a1e0ebd8c429b41b7
2016-09-05 17:25:41 +02:00