Commit Graph

328 Commits

Author SHA1 Message Date
Matt Woodrow
5616e5d763 Bug 1102612 - Don't attempt to read data from a resource if we've evicted the start position. r=jya 2015-04-02 11:10:34 +13:00
Gerald Squelart
9c87262f4f Bug 1144409 - Encrypted event should be fired once per initData. r=cpearce 2015-04-01 03:36:00 -04:00
Chris Pearce
f800285f02 Bug 1148286 - Ensure we don't nullpointer deref if the CDM crashes in MediaKeys and Reader::SetCDMProxy implementations. r=edwin 2015-04-01 20:48:43 +13:00
Ryan VanderMeulen
608e0e0c96 Backed out changeset 95866bc69415 (bug 1144409) for bustage. 2015-03-31 11:16:29 -04:00
Gerald Squelart
1d7764854a Bug 1144409 - Encrypted event should be fired once per initData. r=cpearce 2015-03-26 18:57:00 -04:00
Bobby Holley
70685709f1 Bug 1144519 - Rename MediaDecoder::OnDecodeThread to MediaDecoder::OnDecodeTaskQueue. r=jya 2015-03-27 11:50:21 -07:00
Bobby Holley
e9a60fe021 Bug 1144519 - Rename MediaDecoderReader::OnDecodeThread to MediaDecoderReader::OnTaskQueue. r=jya 2015-03-27 11:50:20 -07:00
Bobby Holley
aa048233f5 Bug 1144519 - Rename OnStateMachineThread-like functions to reflect the fact that it's a task queue. r=jya 2015-03-27 11:50:19 -07:00
Chris Pearce
39e8beae91 Bug 1147730 part 1 - Prevent data race between CDMProxy and CDM caps and video decoder startup. r=edwin 2015-03-26 19:53:05 +13:00
Jean-Yves Avenard
b5404f62e0 Bug 1145815: Do not report discontinuities less than 35ms. r=k17e
--HG--
extra : rebase_source : eb8fa50d7036ceae23756e10d0ad815605aae3f8
2015-03-25 22:32:21 +11:00
Bobby Holley
086ebaa957 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
Wes Kocher
14ef0e0f7d Backed out changeset f3b3547c610a (bug 1144409) for eme test failures CLOSED TREE
--HG--
extra : amend_source : 4d2becbe491a36feec46af2b418e124a32f0be87
2015-03-23 16:06:32 -07:00
Bobby Holley
9487e1743a Bug 1136873 - Deliver NotifyWaitingForResourcesStatusChanged asynchronously on the state machine task queue. r=mattwoodrow
The previous setup is wacky, and can cause the notification to reach the state
machine before the promise rejection, which causes us to stall intermittently.
We also take the opportunity to be a bit less trigger happy when we fire it
in MediaSourceReader.cpp.
2015-03-23 13:17:52 -07:00
Gerald Squelart
e9b08e251b Bug 1144409 - Encrypted event should be fired once per initData; part 1: first initData. r=cpearce 2015-03-22 23:26:00 -04:00
Jean-Yves Avenard
65525c3610 Bug 1143971: Rebase bustage fix. r=bustage ON A CLOSED TREE
--HG--
extra : rebase_source : 9c76279d11fdcd747fc69b24939b888372c6f5ca
2015-03-23 21:26:16 +11:00
Jean-Yves Avenard
40a01374c1 Bug 1144617: Part2. Allow seek to end of mediasource.duration. r=mattwoodrow
When seeking to the end of a mediasource media data, we will instead seek
to the last audio and video sample. The MediaDecoderStateMachine will then
request more audio or video data that will make it hit End Of Stream and
complete the seek.
2015-03-23 21:08:05 +11:00
Jean-Yves Avenard
964b3518d3 Bug 1144617: Part1. Add MediaResource::IsLiveStream() API. r=cpearce
We can't just rely on the MediaResource size to be -1 with MSE. It needs a
dedicated method.
2015-03-23 21:08:05 +11:00
Jean-Yves Avenard
7340f59893 Bug 1143971: Part1. Come out of waiting mode when mediasource is ended. r=mattwoodrow 2015-03-23 21:08:05 +11:00
Jean-Yves Avenard
ece3ad624d Bug 1141333: Mark reader has ended when EndOfStream explicit. r=mattwoodrow 2015-03-23 21:08:05 +11:00
Karl Tomlinson
8abd20cef2 bug 1144341 RemoveDecoder() when initialization is aborted r=jya
--HG--
extra : rebase_source : c19a2d8d2f8e736bbcf12925ea7792a0d6bfdcd9
2015-03-23 18:13:38 +13:00
Edwin Flores
d3bddb14f8 Bug 1134434 - Fix bustage on a CLOSED TREE - r=bustage 2015-03-23 16:44:20 +13:00
Edwin Flores
9a9b42ccdf Bug 1134434 - Fire loadedmetadata before encrypted event on encrypted MP4s - r=cpearce 2015-03-23 15:31:15 +13:00
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
Boris Zbarsky
dc24477d79 Bug 1117172 part 3. Change the wrappercached WrapObject methods to allow passing in aGivenProto. r=peterv
The only manual changes here are to BindingUtils.h, BindingUtils.cpp,
Codegen.py, Element.cpp, IDBFileRequest.cpp, IDBObjectStore.cpp,
dom/workers/Navigator.cpp, WorkerPrivate.cpp, DeviceStorageRequestChild.cpp,
Notification.cpp, nsGlobalWindow.cpp, MessagePort.cpp, nsJSEnvironment.cpp,
Sandbox.cpp, XPCConvert.cpp, ExportHelpers.cpp, and DataStoreService.cpp.  The
rest of this diff was generated by running the following commands:

  find . -name "*.h" -o -name "*.cpp" | xargs perl -pi -e 'BEGIN { $/ = undef } s/(WrapObjectInternal\(JSContext *\* *(?:aCx|cx|aContext|aCtx|js))\)/\1, JS::Handle<JSObject*> aGivenProto)/g'

  find . -name "*.h" -o -name "*.cpp" | xargs perl -pi -e 'BEGIN { $/ = undef } s/(WrapObjectInternal\((?:aCx|cx|aContext|aCtx|js))\)/\1, aGivenProto)/g'

  find . -name "*.h" -o -name "*.cpp" | xargs perl -pi -e 'BEGIN { $/ = undef } s/(WrapNode\(JSContext *\* *(?:aCx|cx|aContext|aCtx|js))\)/\1, JS::Handle<JSObject*> aGivenProto)/g'

  find . -name "*.h" -o -name "*.cpp" | xargs perl -pi -e 'BEGIN { $/ = undef } s/(WrapNode\((?:aCx|cx|aContext|aCtx|js))\)/\1, aGivenProto)/g'

  find . -name "*.h" -o -name "*.cpp" | xargs perl -pi -e 'BEGIN { $/ = undef } s/(WrapObject\(JSContext *\* *(?:aCx|cx|aContext|aCtx|js))\)/\1, JS::Handle<JSObject*> aGivenProto)/g'

  find . -name "*.h" -o -name "*.cpp" | xargs perl -pi -e 'BEGIN { $/ = undef } s/(Binding(?:_workers)?::Wrap\((?:aCx|cx|aContext|aCtx|js), [^,)]+)\)/\1, aGivenProto)/g'
2015-03-19 10:13:33 -04:00
Phil Ringnalda
0400bc353a Back out 59fd15407a79 (bug 1142336) for shutdown hangs
CLOSED TREE
2015-03-18 20:38:43 -07:00
Bobby Holley
7afd45ea42 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
c9bc9c96bd Bug 1128332: Part3. Re-attempt to decode from last failed position. r=mattwoodrow
--HG--
extra : rebase_source : e583e0255e21c32f5d35a97d17f4dec92e2ba10c
2015-03-18 14:10:58 +11:00
Jean-Yves Avenard
44a39a5316 Bug 1128332: Part2. Don't consider decoding error as fatal. r=mattwoodrow
A decoding error may be temporary. In particular should the range removal
algorithm be called while attempting to demux frames about to be evicted.

--HG--
extra : rebase_source : 0bc4f1a3a2eb389c6f4735614a1d4fdf0c850f49
2015-03-18 14:10:58 +11:00
Jean-Yves Avenard
9b95bf6cfe Bug 1128332: Part1. Add useful informations to logging. r=mattwoodrow
--HG--
extra : rebase_source : ace658fb62ed051b63852c7f991c0a603e83d9c3
2015-03-18 14:10:58 +11:00
Jean-Yves Avenard
77358caae1 Bug 1143514: Update mochitest. r=cajbir
sourcebuffer is added to ms.activeSourceBuffers only once the first init
segment has been appended.

--HG--
extra : rebase_source : fe1bfedce8aa377914be6ea99579e3267da760d5
2015-03-18 14:10:57 +11:00
Jean-Yves Avenard
2bc6b14368 Bug 1143514: Part1. Only add sourcebuffer to ActiveSourceBuffers once active. r=cajbir
--HG--
extra : rebase_source : 766249adc3b7a3cbb4aa63c24aaefbe855c121fd
2015-03-18 14:10:56 +11:00
Daniel Holbert
082fd9cd7f Bug 1142841: Convert all nsRefPtr<nsIRunnable> to nsCOMPtr<nsIRunnable>. r=ehsan
This patch was generated by a script.  Here's the source of the script for
future reference:

find . \( -iname "*.cpp" -o -iname "*.h" \) | \
  xargs -n 1 sed -i "s/nsRefPtr<nsIRunnable>/nsCOMPtr<nsIRunnable>/g"
2015-03-17 09:29:17 -07:00
Bobby Holley
ca9369a50d Bug 1141785 - Force all audio samples to be keyframes. r=k17e 2015-03-15 21:29:55 -07: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
Chris Pearce
290ac2d4af Bug 1131387 - Enable EME, update whitelist. r=kentuckyfriedtakahe 2015-03-09 16:24:26 +13:00
Chris Pearce
e49356bdaf Bug 1131387 - Rename MSE whitelist pref. r=kentuckyfriedtakahe 2015-03-09 16:24:21 +13:00
Jean-Yves Avenard
3a14d38778 Bug 1128380: Make AmpleVideoFrames calculation dynamic. r=cpearce 2015-03-09 14:17:30 +11:00
Chris Pearce
4dd06c566c Bug 1140947 - Correct some logging in SourceBufferResource.cpp. r=cajbir 2015-03-09 15:38:33 +13:00
Jean-Yves Avenard
ec19ab2505 Bug 1139380: Ensure all queued tasks are aborted when shutting down. r=cpearce 2015-03-06 16:49:00 +11:00
Bobby Holley
774e705988 Bug 1093980 - Rewrite test_FrameSelection to avoid assuming that resizes will always be processed before firing 'seeked'. rpending=mattwoodrow
Nothing in the spec says this should hold, and it holds less often when we move
invalidation to happen at the end of seeking.
2015-03-06 19:17:32 -08:00
Bobby Holley
845ad750dc Bug 1135170 - Stop updating playback position from Ogg seek and remove MediaDecoder::UpdatePlaybackPosition. r=mattwoodrow
The ogg reader makes two adjustments to the seek time - the first is to clamp it
between start and end time, which MDSM already does. The second is to subtract
SEEK_OPUS_PREROLL from the target. If we wanted to, we could return this as the
resolve value in the seek promise and handle the update in the MDSM. But I think
DropVideoUpToSeekTarget should actually handle this just fine.
2015-03-06 19:17:00 -08: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
Carsten "Tomcat" Book
248ef21229 Backed out changeset 5d97bad42411 (bug 1128380) 2015-03-05 08:38:47 +01:00
Jean-Yves Avenard
370ed231e4 Bug 1128380: Make AmpleVideoFrames calculation dynamic. r=cpearce 2015-03-05 16:53:47 +11:00
Sotaro Ikeda
b3535ec3a6 Bug 1128357 Patch 2: Don't dispatch seeking/seeked events when coming out of dormant mode r=cpearce 2015-03-04 17:33:40 -08:00
Bobby Holley
ff83eecae4 Bug 1136399 - Add test_WaitingOnMissingData_mp4.html and disable the webm version for now. r=jya 2015-03-04 16:22:34 -08:00
Jean-Yves Avenard
eabb2adcce Bug 1138922: Fix build bustage. r=mattwoodrow 2015-03-04 18:53:15 +11:00
Anthony Jones
69c0b09ad3 Bug 1138253 - Count dropped frames directly; r=cpearce 2015-03-03 17:46:48 +13:00
Matt Woodrow
1eb445f8ba 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
14e52f9763 bug 1123492 remove ResetDecode() call from MediaSourceReader::AttemptSeek() r=mattwoodrow
and this was already called before Seek().

--HG--
extra : rebase_source : 784909f9b3b4d41e688cffe8400aa94407bba4f6
2015-02-17 14:35:47 +13:00