Commit Graph

73 Commits

Author SHA1 Message Date
Ehsan Akhgari
883849ee32 Bug 1145631 - Part 1: Replace MOZ_OVERRIDE and MOZ_FINAL with override and final in the tree; r=froydnj
This patch was automatically generated using the following script:

function convert() {
echo "Converting $1 to $2..."
find . \
       ! -wholename "*/.git*" \
       ! -wholename "obj-ff-dbg*" \
         -type f \
      \( -iname "*.cpp" \
         -o -iname "*.h" \
         -o -iname "*.c" \
         -o -iname "*.cc" \
         -o -iname "*.idl" \
         -o -iname "*.ipdl" \
         -o -iname "*.ipdlh" \
         -o -iname "*.mm" \) | \
    xargs -n 1 sed -i -e "s/\b$1\b/$2/g"
}

convert MOZ_OVERRIDE override
convert MOZ_FINAL final
2015-03-21 12:28:04 -04:00
Matt Woodrow
10ced0676b Bug 1131638 - Disable hardware decoding if too many frames are invalid. r=cpearce 2015-03-12 22:14:51 +13:00
Jean-Yves Avenard
3a14d38778 Bug 1128380: Make AmpleVideoFrames calculation dynamic. r=cpearce 2015-03-09 14:17:30 +11:00
Bobby Holley
bf69dac697 Bug 1135170 - Streamline seek initiation logic and abolish manual seek cancels and retries. r=mattwoodrow
The model we're moving towards is one where the MDSM can just disconnect all of
its promises, send a ResetDecode down the pipe, and start doing something
unrelated.
2015-03-06 19:16:59 -08:00
Jean-Yves Avenard
04ed53a51a Bug 1128397: Work around EOS detection in MSE. r=mattwoodrow
This attempts to handle video and audio sourcebuffer not having exactly the
same duration, so the ended event is properly fired.
2015-03-02 10:47:54 +11:00
Jean-Yves Avenard
bea17edada Bug 1134064: Part1. Don't hold on reader when we stop needing it. r=mattwoodrow 2015-02-24 16:38:41 +11:00
Jean-Yves Avenard
819f901b7f Bug 1132796: Evict data we likely previously read. r=cajbir
Also attempt to evict future data, the furthest away from playback position.
2015-02-13 16:52:42 +11:00
Jean-Yves Avenard
d0fcfbe806 Bug 1125469: Part2. Ensure discontinuity flag is set after seeking. r=mattwoodrow
Under some circumstances, the discontinuity flag value would be lost, leading
the state machine to drop all frames being decoded.
2015-02-09 23:29:01 +11:00
Jean-Yves Avenard
173a0c1120 Bug 1125469: Part1. Don't attempt to seek on time found with fuzz search. r=mattwoodrow
Instead seek to the actual time available.
2015-02-06 23:51:46 +11:00
Jean-Yves Avenard
67411f1d5e Bug 1129732: Part1. Dynamically adjust calculations using timestampoffset. r=mattwoodrow
Timestamp Offset calculations are now done exclusively by the Media Source
components which allow to recalculate them on the fly. By abstracting those
offsets it remove the need for the sub-decoders to handle them (which allows
to add WebM support).
2015-02-09 23:28:59 +11:00
Bobby Holley
9acf6dac10 Bug 1127203 - Be more consistent about when and how we apply the fuzz factor. r=mattwoodrow 2015-01-30 17:45:49 -08:00
Bobby Holley
419b834c80 Bug 1127203 - Rename aError to aTolerance. r=mattwoodrow
aError is a really misleading name.
2015-01-30 17:45:49 -08:00
Bobby Holley
44f5d170a6 Bug 1126465 - Use a MediaPromiseConsumerHolders to track subdecoder seeks. r=mattwoodrow
This combines part 10 and part 10.5 in the bug.
2015-01-29 22:11:12 -08:00
Bobby Holley
f98dfa3c8f Bug 1126465 - Factor out the seeking phases into helper methods. r=mattwoodrow 2015-01-29 22:11:11 -08:00
Bobby Holley
ab4d30db7c Bug 1126465 - Factor out calls to Request{Audio,Video}Data into a helper method. r=mattwoodrow 2015-01-29 22:11:11 -08:00
Bobby Holley
c10c436f32 Bug 1126465 - Cancel sample requests when seeks start, disallow them while seeks are happening, and assert against seeks when samples arrive. r=mattwoodrow
The duplication of the IsSeeking() checks before all the Request{Audio,Video}Data
callsites is ugly. We'll fix this in the next patch by applying the same disconnect
treatment to the seek promise.
2015-01-29 22:11:11 -08:00
Bobby Holley
7c0de4212e Bug 1126465 - Introduce machinery to hold onto MediaPromise::Consumer references, and use it for MediaSourceReader subdecoders. r=mattwoodrow 2015-01-29 22:11:11 -08:00
Chris Double
023c0e49cd Bug 1112424 Part 2 - Implement MediaSource methods to return debug information for about:media - r=ajones
--HG--
extra : rebase_source : 192051cdea92aa39ecf2768a119f952761f25c68
2015-01-29 15:35:58 +13:00
Wes Kocher
510f7d8823 Backed out 10 changesets (bug 1126465) for b2g osx build bustage on a CLOSED TREE
Backed out changeset a0a572ab4614 (bug 1126465)
Backed out changeset c96bac2df9a4 (bug 1126465)
Backed out changeset ebe589cc0d92 (bug 1126465)
Backed out changeset 96e70a10440c (bug 1126465)
Backed out changeset 47301816c705 (bug 1126465)
Backed out changeset dd957ede2d36 (bug 1126465)
Backed out changeset d8045d89bfda (bug 1126465)
Backed out changeset 22aff1448376 (bug 1126465)
Backed out changeset 212c4e3377f8 (bug 1126465)
Backed out changeset 408b00141b82 (bug 1126465)
2015-01-28 19:54:34 -08:00
Bobby Holley
6359f5e202 Bug 1126465 - Use a MediaPromiseConsumerHolder to track subdecoder seeks. r=mattwoodrow 2015-01-28 18:54:11 -08:00
Bobby Holley
c6856d1350 Bug 1126465 - Factor out the seeking phases into helper methods. r=mattwoodrow 2015-01-28 18:54:11 -08:00
Bobby Holley
865202e207 Bug 1126465 - Factor out calls to Request{Audio,Video}Data into a helper method. r=mattwoodrow 2015-01-28 18:54:11 -08:00
Bobby Holley
0a4150138b Bug 1126465 - Cancel sample requests when seeks start, disallow them while seeks are happening, and assert against seeks when samples arrive. r=mattwoodrow
The duplication of the IsSeeking() checks before all the Request{Audio,Video}Data
callsites is ugly. We'll fix this in the next patch by applying the same disconnect
treatment to the seek promise.
2015-01-28 18:54:11 -08:00
Bobby Holley
a65345d2e7 Bug 1126465 - Introduce machinery to hold onto MediaPromise::Consumer references, and use it for MediaSourceReader subdecoders. r=mattwoodrow 2015-01-28 18:54:11 -08:00
Jean-Yves Avenard
11cb5dd66a Bug 1096089: Only return end of stream if we're near the known duration. r=mattwoodrow
YouTube will call endOfStream once the video has been entirely buffered.
When changing video quality, it will clear the entire source buffer,
following which it will append data once again which will reopen
the mediasource.
We don't want to consider a mediasource in ended state as not ever going to
receive more data in the future unless we're actually reached the end.
2015-01-24 21:46:21 +11:00
Jean-Yves Avenard
fc83b577e7 Bug 1096089: MSE: Partially implement Range Removal algorithm. r=mattwoodrow, r=cajbir
Data is only properly evicted when we remove the entire buffered range.
Otherwise, only the buffered times are updated.
2015-01-24 21:45:58 +11:00
Bobby Holley
986f783e03 Bug 1121692 - Make seeks cancelable. r=cpearce,r=mattwoodrow 2015-01-16 10:58:00 -08:00
Bobby Holley
6204ef933f Bug 1121692 - Clean up semantics around m{Audio,Video}IsSeeking. r=mattwoodrow
The comments indicate that they're supposed to be used for setting mDiscontinuity
on the samples, but that never actually happens (and appears to happen in
MP4Reader.cpp). Resetting them in Request{Audio,Video}Data doesn't make any sense
at all. So we repurpose them to track our seek stage.
2015-01-16 10:58:00 -08:00
Bobby Holley
fa7db3cb97 Bug 1121692 - Stop honoring aEndTime in MediaSourceReader::Seek. r=mattwoodrow
Tracking it is a pain, and it's only used by OggReader.
2015-01-16 10:58:00 -08:00
Bobby Holley
e814d359c3 Bug 1121692 - Remove unnecessary arguments to ::Seek. r=mattwoodrow,sr=cpearce 2015-01-16 10:57:59 -08:00
Chris Double
976cf3f159 Bug 1055904 - Improve MSE eviction calculation - r=jya
Fixes a bug in the SourceBufferResource eviction code where it was
using the mOffset of the resource as the min bound for what to evict.
This offset is almost always zero though due to ReadFromCache being
used which never updates the offset. This prevented eviction from
happening in most cases.

Moves the code to remove old decoders so that it does this during
the same loop as that which remove data from existing decoders.
This more aggressively prunes old decoders and is more likely to
keep data in the current playing decoder around for seeking, etc.

Prevent removing any decoder that the MediaSourceReader is
currently using for playback to prevent RemoveDecoder crashes.

Add a threshold to subtract from the current time when working out
the time bound to evict before to make it less likely to evict
current data that is needed for current playback.

Remove all data from evicted decoders in the initial iteration then
iterate after to remove empty decoders to put the RemoveDecoder
logic in one place.

Iterate decoders in order that they were added rather than sorted
by time so the logic that removes entire decoders can do it only
to those old decoders that existed before the existing one was
created.

Keeps track of the time that was evicted from the current decoder
and uses that as the time to EvictBefore for all decoders in the
track buffer when doing MediaSource::NotifyEvict.

--HG--
extra : rebase_source : f7b4fe263a8041b3882585caea389742b2a1a9b3
2015-01-16 16:14:56 +13:00
Alfredo Yang
2d6a431a87 Bug 1120298 - add dormant functions in MediaSourceReader for gonk. r=ajones 2015-01-14 01:27:00 +01:00
Chris Pearce
59325224ff Bug 1112445 - Ignore the audio stream when determining whether we should skip-t-o-next-keyframe for async readers. r=mattwoodrow 2015-01-13 22:31:03 +13:00
Anthony Jones
4f0a2ee888 Bug 1105066 - Seek after switching reader; r=mattwoodrow 2015-01-12 15:10:15 +13:00
Matt Woodrow
8cd51d9f13 Bug 1105066 - Chain seeks in MediaSourceReader so that we seek audio to the same time as video; r=kentuckyfriedtakahe 2015-01-12 11:05:08 +13:00
Matt Woodrow
972dde5588 Bug 1105066 - Make SeekPromise return the time we actually seeked to; r=kentuckyfriedtakahe 2015-01-12 10:57:14 +13:00
Matt Woodrow
fb0f72ffdb Bug 1118528 - Use fuzzy comparisons in MediaSourceReader::HaveData. r=cajbir 2015-01-12 09:47:56 +13:00
Ehsan Akhgari
31a966ecd6 Bug 1117261 - Mark virtual overridden functions as MOZ_OVERRIDE in DOM media code; r=rillian 2015-01-08 23:11:30 -05:00
Bobby Holley
c69456ab40 Bug 1064128 - Implement support for timestampOffset in segments mode. r=k17e,r=cajbir 2015-01-07 15:58:55 -08:00
Bobby Holley
49601684ad Bug 1109437 - Implement non-polling buffering. r=cpearce 2014-12-22 00:20:31 -08:00
Bobby Holley
05224076bc Bug 1109437 - Generalize GetBufferingWait to UseBufferingHeuristics. r=cpearce 2014-12-22 00:20:30 -08:00
Matt Woodrow
675718e2ea Bug 1112446 - Add logging for media queue lengths. r=ajones 2014-12-18 12:41:19 +13:00
Matt Woodrow
2c7e571767 Bug 1111413 - Part 1: Use MediaPromises for seeking. r=bholley 2014-12-16 22:52:57 +13:00
Bobby Holley
da72b3891c Bug 1109954 - Make resolve/reject values optional in callback signatures. r=cpearce 2014-12-12 14:22:23 -08:00
Bobby Holley
ed81da5593 Backed out changeset 89c9d42ef78e (bug 1109954) for colliding with bug 1108701 on a CLOSED TREE. 2014-12-10 22:56:09 -08:00
Bobby Holley
6ec9fa2dd8 Bug 1109954 - Make resolve/reject values optional in callback signatures. r=cpearce 2014-12-10 22:38:33 -08:00
Bobby Holley
60c0158fdd Bug 1108701 - Use MediaPromises for RequestAudioData and RequestVideoData. r=cpearce 2014-12-10 14:03:56 -08:00
Bobby Holley
312651fc98 Bug 1108707 - Make reader shutdown asynchronous. r=cpearce (relanding on a CLOSED TREE because it wasn't the source of the leaks) 2014-12-09 11:43:21 -08:00
Ryan VanderMeulen
073573c2a9 Backed out changeset 18c302f80bce (bug 1108707) for nsTArray_base leaks.
CLOSED TREE
2014-12-09 15:49:38 -05:00
Bobby Holley
fc5e0383a6 Bug 1108707 - Make reader shutdown asynchronous. r=cpearce 2014-12-09 11:43:21 -08:00