Commit Graph

1845 Commits

Author SHA1 Message Date
janekptacijarabaci 500bbf02e9 Make creation of an Error not capture a filename/lineno it shouldn't have access to; A potential crash 2018-07-25 07:15:18 +08:00
trav90 249e84db1a Fix build bustage 2018-07-25 07:15:15 +08:00
trav90 da2cc58bf9 Add a constructor to ByteReader 2018-07-25 07:15:14 +08:00
trav90 1afb8663fd Fix a constructor in ByteReader 2018-07-25 07:15:11 +08:00
trav90 734445d6c5 Add explicit namespace reference to ByteReader to keep compilers happy 2018-07-25 07:15:09 +08:00
trav90 ca61329e71 Fix logging in TrackBuffersManager 2018-07-25 07:15:07 +08:00
trav90 c3330e6c8a Ensure we don't attempt to process garbage data 2018-07-25 07:15:05 +08:00
trav90 26cd7523aa Properly search for the required MP4 Atoms rather than make assumptions 2018-07-25 07:15:03 +08:00
trav90 9bdd979cfc Do not evict data until a full init segment has been received
This prevented being able to read the init segment back from the MP4ContainerParser should init segment had been added in multiple blocks.
2018-07-25 07:15:01 +08:00
trav90 6b6dd4be6f Properly handle partial init and media header 2018-07-25 07:14:59 +08:00
trav90 f0e4337cb8 Do not modify internal data when calculating buffered ranges 2018-07-25 07:14:57 +08:00
trav90 02fa952d69 Error when finding invalid data 2018-07-25 07:14:55 +08:00
trav90 1096be0306 Add diagnostic to ensure no pending append is going 2018-07-25 07:14:53 +08:00
trav90 c836f6adf3 Use ProxyMediaCall and remove need for monitor 2018-07-25 07:14:51 +08:00
trav90 c25d1999b0 Better handle partial media segments 2018-07-25 07:14:49 +08:00
trav90 8f0d5996a2 Add ContainerParser::FirstCompleteMediaHeader() method 2018-07-25 07:14:47 +08:00
trav90 d03c8fa0e9 Relax frame discontinuity detection 2018-07-25 07:14:42 +08:00
trav90 cc4891fe01 Properly insert frames in DTS order 2018-07-25 07:14:39 +08:00
trav90 4708ca920e Add eviction support to TrackBuffersManager
We evict data in two steps. Up to playback time, or tail data.
2018-07-25 07:14:37 +08:00
trav90 cead5d3907 Add TrackBuffersManager object
This implements MSE's SourceBuffer (mostly) per spec with no memory or speed optimizations of any kind (this will be done in future patches).
2018-07-25 07:14:36 +08:00
trav90 23c5c4b2da Remove "Diamond Problem" with MediaDecoder inheritance
MediaDecoder inherited from nsIObserver which inherits from nsISupport while also inheriting from AbstractMediaDecoder which itself inherits from nsISupport. This causes a "diamond problem", and prevents using some utility classes like NS_ProxyRelease or nsMainThreadPtrHandle. MediaDecoder will assert if destructed on anything but the main thread.
2018-07-25 07:14:34 +08:00
trav90 3ad0c796f5 Check MoofParser index before demuxing 2018-07-25 07:14:32 +08:00
trav90 a7bbb6c8d2 Add ability to retrieve init range to ContainerParser
Currently, we always assume that the init segment starts at offset 0. But this doesn't have to always be true.
2018-07-25 07:14:30 +08:00
trav90 319f10d372 Make RangeRemoval use promises 2018-07-25 07:14:27 +08:00
trav90 11cc3e6cb8 Split AppendData task to be closer to spec 2018-07-25 07:14:25 +08:00
trav90 dd1669990b Add -=, - and * (with integer) operators to TimeUnit 2018-07-25 07:14:23 +08:00
trav90 c090489735 Add -= and - operator to IntervalSet
Remove an interval from an interval set.
2018-07-25 07:14:21 +08:00
trav90 e74e8f7b5a Add ContainerParser::MediaSegmentRange() method
And add abilities to MoofParser to indicate if a media segment is complete. In an MP4 file a media segment is made up of a moof atom followed by one (or more) mdat atoms.
2018-07-25 07:14:19 +08:00
trav90 f17a0d08f8 Re-land "Fix data race in AudioSink::mWritten" 2018-07-25 07:14:17 +08:00
Pale Moon 82ae8240c4 Update media query tests. 2018-07-25 07:14:15 +08:00
Pale Moon bd4b9b454d Remove unused atoms. 2018-07-25 07:14:13 +08:00
Pale Moon 0136f827ca Remove style rule processing for XP themes.
XP specific themes Luna Blue/Olive/Silver and Royale+Zune removed.
2018-07-25 07:14:11 +08:00
Pale Moon 5927002de5 Revert "Disable the use of display-lists for SVG hit-testing and painting."
This reverts commit 01f632951f482a6202fd04ce41bd18e7db33579c.
Not using display lists causes other issues, probably because alignment fixes for SVG were only applied to display list code and untested with them off.
We need a better solution in #1076
2018-07-25 07:14:09 +08:00
trav90 3cbf3e5e8a Fix indentation
No code changes. Followup to 2c9ac59.
2018-07-25 07:14:05 +08:00
trav90 6a8508f898 Remove Windows intrinsics from Atomic.h and allow Atomic to hold 64-bit types everywhere 2018-07-25 07:14:03 +08:00
Pale Moon f27e2a974c Disable the use of display-lists for SVG hit-testing and painting.
Obviously there are accuracy-issues with large scale factors here. Choosing to be more accurate instead of faster. On modern hardware the perf hit won't be noticed, anyway.
2018-07-25 07:13:54 +08:00
Pale Moon d91a67b5be Address review comments:
- add missing return
- convert alert() to a confirm() to offer quitting the application straight away.
2018-07-25 07:13:51 +08:00
Pale Moon 56b023c005 Implement browser startup autorecovery module. 2018-07-25 07:13:50 +08:00
Pale Moon 2a8a05c70b Remove LP recovery hack.
This is no longer needed by doing this on the actual LP side.
Supersedes #1063 #1068 and makes #713 obsolete.
2018-07-25 07:13:45 +08:00
janekptacijarabaci 638e00f455 [suggestion, minor fix] Plugins - A problem - CSS (Ask to Activate) 2018-07-25 07:13:42 +08:00
trav90 c7b3189b57 Use .forget() instead of Move() to convert from nsRefPtr<Derived> to nsRefPtr<Base> 2018-07-25 07:13:38 +08:00
trav90 4a88f0643d Implement MediaPromise::All 2018-07-25 07:13:36 +08:00
trav90 c0ceb27d9b Make MediaPromise more rvalue-friendly 2018-07-25 07:13:33 +08:00
trav90 1200215982 Stop copying ResolveOrRejectValues 2018-07-25 07:13:30 +08:00
trav90 668787be65 Add MediaPromise gtests 2018-07-25 07:13:26 +08:00
trav90 988ece1b09 Add some more comments for MediaPromise 2018-07-25 07:13:23 +08:00
trav90 96a8014257 Replace 'Consumer' with 'Request' in MediaPromise naming
Not usually a fan of Mozilla renaming, but doing this now will save me some headaches with new code later.
2018-07-25 07:13:20 +08:00
trav90 ea18ec04d8 Use a base class for refcounting MediaPromise::Consumer as well 2018-07-25 07:13:18 +08:00
trav90 c37d09799d Implement completion promises 2018-07-25 07:13:15 +08:00
trav90 c1cf51580f Do template mangling to allow promise callbacks to optionally return a promise, and surface that from InvokeCallbackMethod 2018-07-25 07:13:13 +08:00