Commit Graph

250 Commits

Author SHA1 Message Date
Jean-Yves Avenard
cd2aae8295 Bug 1132825: Don't evict partial segments. r=cajbir
Evicting a partial segment can leave the entire sourcebuffer in unplayable
state.
2015-02-17 16:24:19 +13:00
Jean-Yves Avenard
31151f0376 Bug 1131487: Part3. Fix stall when switching decoders. r=mattwoodrow 2015-02-17 16:22:51 +13:00
Karl Tomlinson
e60c5ee086 bug 1132328 make ReleaseDecoderTask conversion constructor explicit r=fix 2015-02-16 18:20:56 +13:00
Karl Tomlinson
1d41559e74 bug 1095251 clear mDecoder on reader during Shutdown() r=cpearce
--HG--
extra : rebase_source : 7bd0c13ca1aa821998f6ec46ba578c6ed8a0d8f9
2015-02-10 15:50:02 +13:00
Karl Tomlinson
3ecf1f0bcf bug 1132328 remove mCurrentDecoder handling from RemoveDecoder() r=jya
--HG--
extra : rebase_source : 606b250875900916431115791d3bd0ad723fe4f0
2015-02-12 15:57:40 +13:00
Jean-Yves Avenard
b1c9833790 Bug 1130839: mochitest ensuring element seeks to end of media when truncated. r=cajbir
Test that truncating the media when changing mediasource.duration attribute
immediately adjusts the buffered range and cause seek to the end of the new
media duration (adjusting currentTime).
2015-02-12 18:53:53 +11:00
Jean-Yves Avenard
fb8fc9e241 Bug 1131433: Show codec/container type in MSE logs. r=cajbir
Also rationalize MSE debugging logs, so they all follow the same format.
2015-02-12 18:52:13 +11:00
Jean-Yves Avenard
e12bdb0e21 Bug 1130948: Part2. Ensure we don't overflow when setting duration. r=cajbir 2015-02-12 18:52:12 +11:00
Jean-Yves Avenard
164b744ccd Bug 1130948: Part1. Use mediasource duration to determine media element duration. r=cajbir 2015-02-12 18:52:12 +11:00
Jean-Yves Avenard
5ceb7474c4 Bug 1130826: Run range removal algorithm when setting mediasource duration. r=cajbir 2015-02-12 18:52:12 +11:00
Karl Tomlinson
f4c26f919f bug 1092915 document that mCurrentDecoder is modified on main thread only r=mattwoodrow
--HG--
extra : rebase_source : 5b69453209f5fcb181c9586783435836031213ba
2015-02-11 11:30:39 +13:00
Matt Woodrow
c5084c566b bug 1092915 modify mCurrentDecoder on main thread after RemoveDecoder r=karlt
--HG--
extra : rebase_source : e183dd309ad391119967804a2e388b4a1e91df79
2015-02-11 11:12:39 +13:00
Jean-Yves Avenard
90b61d5576 Bug 1130913: Only create a new decoder if we have a new media segment. r=mattwoodrow 2015-02-11 17:40:10 +11:00
Jean-Yves Avenard
967797cbd8 Bug 1131487: Adjust negative start time near 0 to 0. r=mattwoodrow 2015-02-11 17:40:06 +11:00
Jean-Yves Avenard
0942fe7950 Bug 1131487: Fix time calculations when segment doesn't start at 0. r=mattwoodrow 2015-02-11 17:40:03 +11:00
Bobby Holley
8919ee56bb Bug 1120030 - Test for timestampOffset. r=jya 2015-02-09 17:29:13 -08:00
Jean-Yves Avenard
0a376c1d06 Bug 1125469: Part3. Make sure we stop dropping frames from previous operation after seeking. r=mattwoodrow 2015-02-09 23:29:01 +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
72355abc0d Bug 1129732: Part4. Use sourcebufferdecoder's end time. r=mattwoodrow 2015-02-09 23:29:00 +11:00
Jean-Yves Avenard
5f935a5b97 Bug 1129732: Part3. Assume buffered range starting close enough to 0 to be 0. r=mattwoodrow 2015-02-09 23:29:00 +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
b472f52bed Bug 1126052 - Reenable test_SeekTwice.mp4. r=RyanVM 2015-02-05 14:29:32 -08:00
Bobby Holley
41a5994f7f Bug 1128811 - Reject data wait promises when we seek. r=cpearce 2015-02-04 17:33:40 -08:00
Bobby Holley
8f668dcd13 Bug 1129247 - Use MOZ_DIAGNOSTIC_ASSERT instead of MOZ_RELEASE_ASSERT in media code. r=mattwoodrow 2015-02-04 13:13:59 -08:00
Jean-Yves Avenard
48957f6bed Bug 1125776: Part11. Fix potential crash. r=mattwoodrow.
Under some circumstances, it was possible for shutdown to have completed
right before the initialization task got to run. Resulting in a null
dereference.
2015-02-04 20:20:16 +11:00
Jean-Yves Avenard
5d1d3d69ba Bug 1125776: Part10. Handle concurrent aborts. r=mattwoodrow
Under some circumstances, it was possible for a cancelled queued task to run
and the following one would have been cancelled.
Also add more robust handling in cancelling the trackbuffer initialization
task.
2015-02-04 20:20:16 +11:00
Jean-Yves Avenard
ddfc051736 Bug 1125776: Part9. Always attempt to create a new decoder if we don't have one. r=mattwoodrow
YouTube continues to call appendBuffer even when the previous call failed.
So we attempt to re-create a decoder where we can should it be a temporary
failure.
2015-02-04 20:20:16 +11:00
Jean-Yves Avenard
a28eaa9992 Bug 1125776: Part8. We don't always need an init segment to be ready. r=mattwoodrow
If abort was called on the source buffer, the parser would have been reset.
The content in the Track Buffer is still valid for playback.
2015-02-04 20:20:16 +11:00
Jean-Yves Avenard
e2f51fe35f Bug 1125776: Part7. Only notify reader we have data, when we actually do. r=mattwoodrow 2015-02-04 20:20:16 +11:00
Jean-Yves Avenard
bf8e4f0b72 Bug 1122358: Implement partial reset parser. r=cajbir
Only handles resetting parser and incomplete init segments at this stage.
2015-02-04 20:20:16 +11:00
Jean-Yves Avenard
a3bb11c20d Bug 1128115: MediaSource.removeSourceBuffer should call SourceBuffer.abort. r=cajbir 2015-02-04 20:20:15 +11:00
Jean-Yves Avenard
723701aeca Bug 1125776: Part4. Add support for partial WebM init segment. r=kinetik 2015-02-04 20:20:15 +11:00
Jean-Yves Avenard
80c7f80672 Bug 1125776: Part3. Add support for partial init segment. r=cajbir
Now that we rely on appendBuffer to scan the init segment, it has become
imperative to handle partial segments as it could otherwise lead to
appendBuffer never firing update/updateend
2015-02-02 11:41:43 +11:00
Jean-Yves Avenard
a7911540c6 Bug 1125776: Part2. appendBuffer scanning the data before firing updateend. r=mattwoodrow 2015-02-04 20:20:15 +11:00
Jean-Yves Avenard
80732517a0 Bug 1125776: Part1. Fix initialization of variables. r=cajbir
They could be used when non-initialized.
2015-02-04 20:20:14 +11:00
Chris Double
6af7f0e65b Bug 1128161 - Fix build error when logging is disabled - r=ajones 2015-02-03 18:19:47 +13:00
Matt Woodrow
11cfd64eba Bug 1128179 - Avoiding crash when appending data after decoder initialization failed. r=jya
--HG--
extra : rebase_source : 42d3c13c175cbe6a6e81bc56e3d61f596eae970f
2015-02-03 09:44:46 +13:00
Naoki Hirata
38de5e6e5f Bug 1128113 - Skip mSharedDecoderManager which is part of MozMP4. r=jya, a=bustage 2015-01-31 02:22:38 -08:00
Jet Villegas
ea3d579f8e Bug 1125621 - Remove https://* restriction from the YouTube MSE check. r=kinetik 2015-01-30 21:59:35 -08:00
Bobby Holley
dfc8573cd8 Bug 1127203 - Use the tolerance value in TrackBuffersContainTime so that seeking operates with tolerance too. r=mattwoodrow 2015-01-30 17:45:49 -08: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
a5507351d3 Bug 1126465 - Pass consistent arguments to RequestVideoData invocations on subdecoders. 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
Bobby Holley
f4717da70a Bug 1126465 - Don't leave stale value in mPendingSeek when there's no audio track. r=mattwoodrow 2015-01-29 22:11:11 -08:00