Commit Graph

91 Commits

Author SHA1 Message Date
Jean-Yves Avenard
76d15eeeff Bug 1157075: Part2. Use MediaPromise to read TrackBuffer metadata. r=bholley,r=karlt 2015-05-01 15:37:31 +10:00
Bobby Holley
fa335dee6c Bug 1154782 - Align the failure handling of the TemporaryRef Dispatch overload with its companion. r=jww
Most of the callers ignore the return values. The MOZ_DIAGNOSTIC_ASSERTS will
tell us if any of these actually fail in practice.
2015-04-15 22:30:36 -07:00
Jean-Yves Avenard
d444fdc20b Bug 1153094: Rename LargeDataBuffer and DataBuffer object. r=cpearce
This causes conflicts with webRTC libraries that use those names already. The
linker appears to get it wrong and calls the destructor of the wrong class.
2015-04-15 15:27:38 +10:00
Bobby Holley
09f0153b4f Bug 1144519 - Rename MediaDecoder::OnDecodeThread to MediaDecoder::OnDecodeTaskQueue. r=jya 2015-03-27 11:50:21 -07:00
Bobby Holley
3d7cf9b65a Bug 1142336 - Create one unified thread pool for media code and run the MDSM task queues on it. r=mattwoodrow
This allows for parallel MDSM execution. \o/
2015-03-25 17:46:26 -07:00
Karl Tomlinson
c9a9125dc1 bug 1144341 RemoveDecoder() when initialization is aborted r=jya 2015-03-23 18:13:38 +13:00
Edwin Flores
b6f093015a Bug 1134434 - Fire loadedmetadata before encrypted event on encrypted MP4s - r=cpearce 2015-03-23 15:31:15 +13:00
Ehsan Akhgari
5cccea6f0f 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
Phil Ringnalda
81bae8226a Back out 59fd15407a79 (bug 1142336) for shutdown hangs
CLOSED TREE
2015-03-18 20:38:43 -07:00
Bobby Holley
54a90d1df5 Bug 1142336 - Create one unified thread pool for media code and run the MDSM task queues on it. r=mattwoodrow
This allows for parallel MDSM execution. \o/
2015-03-18 18:00:49 -07:00
Jean-Yves Avenard
c5564682a3 Bug 1138922: Fix build bustage. r=mattwoodrow 2015-03-04 18:53:15 +11:00
Matt Woodrow
c88a00a5d4 Bug 1138260 - Add typed Microseconds class and use it for the range removal algorithm. r=jya,kinetik 2015-03-03 17:38:45 +13:00
Karl Tomlinson
d470aca6b6 bug 1123492 ResetDecode() on subreaders before Seek() r=mattwoodrow 2015-02-28 19:46:22 +13:00
Matt Woodrow
8ea8864c3f Bug 1136984 - Followup to fix build. 2015-02-27 12:07:05 +13:00
Matt Woodrow
a440a4ab84 Bug 1136984 - Use correct units for comparing timestamps in TrackBuffer::RangeRemoval. r=jya 2015-02-27 11:47:46 +13:00
Karl Tomlinson
f447869d7f back out 6fc9b30bbdd9..232b818847e7 from bug 1123492 for crashes in DoVideoSeek() 2015-02-26 19:37:48 +13:00
Karl Tomlinson
e7a479b9aa bug 1123492 ResetDecode() on subreaders when switching to current or seeking r=mattwoodrow 2015-02-18 19:23:31 +13:00
Jean-Yves Avenard
b76671320c Bug 1136576: Properly align source buffer starts with current decoder. r=cajbir 2015-02-25 20:55:14 +11:00
Jean-Yves Avenard
4cc8ddead7 Bug 1096089: Part3. Add trimming support from beginning of source buffer. r=cajbir 2015-02-24 16:38:42 +11:00
Jean-Yves Avenard
c6138de589 Bug 1134064: Part5. Evict from TrackBuffer's current decoder. r=cajbir
Also evicts all data from inactive decoders once there's nothing left to play
in them.
2015-02-24 16:38:41 +11:00
Jean-Yves Avenard
32297172a5 Bug 1132342: Handle race should operation be aborted while reading metadata. r=karlt 2015-02-24 16:38:41 +11:00
Jean-Yves Avenard
685d065d81 Bug 1133625: Return an error when attempting to append too much data. r=cajbir
Implement part 6 of Prepare Append Algorithm:
http://w3c.github.io/media-source/#sourcebuffer-prepare-append
"If the buffer full flag equals true, then throw a QuotaExceededError exception and abort these step."
2015-02-20 14:19:13 +13:00
Jean-Yves Avenard
cc26a13e4e Bug 1132796: Revert incorrect change on A CLOSED TREE. r=me
Revision 355f5e2dee58 got overwritten in dad2b3245457
2015-02-17 22:07:48 +13:00
Jean-Yves Avenard
43f860dc7e 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
ab2d3c3522 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
Karl Tomlinson
e1817de7e7 bug 1132328 make ReleaseDecoderTask conversion constructor explicit r=fix 2015-02-16 18:20:56 +13:00
Karl Tomlinson
a93e73597b bug 1095251 clear mDecoder on reader during Shutdown() r=cpearce 2015-02-10 15:50:02 +13:00
Karl Tomlinson
20f940df5a bug 1132328 remove mCurrentDecoder handling from RemoveDecoder() r=jya 2015-02-12 15:57:40 +13:00
Jean-Yves Avenard
51ab550327 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
Karl Tomlinson
02b83abea2 bug 1092915 document that mCurrentDecoder is modified on main thread only r=mattwoodrow 2015-02-11 11:30:39 +13:00
Matt Woodrow
8b5adf9f15 bug 1092915 modify mCurrentDecoder on main thread after RemoveDecoder r=karlt 2015-02-11 11:12:39 +13:00
Jean-Yves Avenard
372665c876 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
e07694adb0 Bug 1131487: Adjust negative start time near 0 to 0. r=mattwoodrow 2015-02-11 17:40:06 +11:00
Jean-Yves Avenard
b7b65d5bb8 Bug 1131487: Fix time calculations when segment doesn't start at 0. r=mattwoodrow 2015-02-11 17:40:03 +11:00
Jean-Yves Avenard
25805626b7 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
fb71392d00 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
Jean-Yves Avenard
616049ba2a 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
00bc1aec0d 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
882199f026 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
301b46619a 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
fdf83c97db 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
04f33309e6 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
9a54b12b7a 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
5a8ea7fce0 Bug 1125776: Part2. appendBuffer scanning the data before firing updateend. r=mattwoodrow 2015-02-04 20:20:15 +11:00
Jean-Yves Avenard
9264bf02f5 Bug 1125776: Part1. Fix initialization of variables. r=cajbir
They could be used when non-initialized.
2015-02-04 20:20:14 +11:00
Matt Woodrow
93e9b6aa5f Bug 1128179 - Avoiding crash when appending data after decoder initialization failed. r=jya 2015-02-03 09:44:46 +13:00
Bobby Holley
b8cefec2b4 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
Jean-Yves Avenard
0917d55236 Backed out changeset 0e9b37fd47c6. Breaks w4 test on a CLOSED TREE r=me 2015-01-27 18:25:44 +11:00
Jean-Yves Avenard
884f338af9 Bug 1125581: Cache buffered TimeRanges and only recalculate as necessary. r=mattwoodrow
Also change the relationship between SourceBufferResource object and its callee.
Data is now required to be removed or added via the SourceBufferDecoder.
This fixes a potential race between the time we add data to the resource and
the time we retrieve the buffered time ranges.
2015-01-26 11:26:20 +11:00
Jean-Yves Avenard
4468d96bb0 Bug 1102642: Use ref counted compressed data within mediasource. r=mattwoodrow 2015-01-27 02:01:09 +11:00