Commit Graph

123 Commits

Author SHA1 Message Date
Matthew Gregan
ced956736c Bug 927245 - Remove deprecated Audio Data API implementation. r=cajbir,smaug 2014-04-03 10:53:39 +13:00
Randy Lin
35e9305865 Bug 912627 - Remove spurious assertion. r=cpearce 2014-04-02 09:59:31 +08:00
Chris Pearce
8b18788355 Bug 631058 - Don't preroll as many media samples when loading preload="metadata" media. r=cajbir 2014-04-01 16:43:57 +13:00
Chris Pearce
a8e52798ff Bug 778077 - Implement HTMLMediaElement.fastSeek(time). r=cajbir
Implement HTMLMediaElement.fastSeek(), basically by changing all the
MediaDecoderReader::Seek() overrides to not call
MediaDecoderReader::DecodeToTarget(), and have MediaDecoderReader::DecodeSeek()
call DecodeToTarget() if we're doing an accurate (non-fast) seek.

Update gizmo.mp4 to have a keyframe every second, instead of only 1 keyframe at
the start of stream. This makes the unit test I added more useful for mp4...

I pushed most of the seek target clamping logic in MediaDecoder up into
HTMLMediaElement, so that we're clamping in fewer places. Note
MediaDecoderStateMachine::Seek() still sanity checks the seek target.

We have to update the currentTime/MediaDecoder playback position after a seek
completes now, rather than assuming the seek always got it exactly right.

Removed those pesky assertions about seek target lying in the first frame after
seek, since actually sometimes the media doesn't have samples for all streams
after a seek (either due to the media being encoded like that, or because of a
bug in the platform's decoder, not entirely sure).

Green: https://tbpl.mozilla.org/?tree=Try&rev=b028258565e2
* * *
Bug 778077 - Fix up MediaOMXReader fastseek to ensure audio stream stays in sync with video stream. r=cajbir
2014-04-01 16:39:04 +13:00
Fredrik Lanker
457112421f Bug 989284 - Change the infinite flag when duration is updated. r=roc 2014-03-28 11:41:59 -04:00
Ed Morley
9d7a5cff30 Backed out changeset 00fa39c23b44 (bug 778077) for reftest failures 2014-03-28 12:31:29 +00:00
Chris Pearce
c9cd61eb5d Bug 778077 - Implement HTMLMediaElement.fastSeek(time). r=cajbir
Implement HTMLMediaElement.fastSeek(), basically by changing all the
MediaDecoderReader::Seek() overrides to not call
MediaDecoderReader::DecodeToTarget(), and have MediaDecoderReader::DecodeSeek()
call DecodeToTarget() if we're doing an accurate (non-fast) seek.

Update gizmo.mp4 to have a keyframe every second, instead of only 1 keyframe at
the start of stream. This makes the unit test I added more useful for mp4...

I pushed most of the seek target clamping logic in MediaDecoder up into
HTMLMediaElement, so that we're clamping in fewer places. Note
MediaDecoderStateMachine::Seek() still sanity checks the seek target.

We have to update the currentTime/MediaDecoder playback position after a seek
completes now, rather than assuming the seek always got it exactly right.

Removed those pesky assertions about seek target lying in the first frame after
seek, since actually sometimes the media doesn't have samples for all streams
after a seek (either due to the media being encoded like that, or because of a
bug in the platform's decoder, not entirely sure).

Green: https://tbpl.mozilla.org/?tree=Try&rev=b028258565e2
2014-03-28 22:36:10 +13:00
Phil Ringnalda
1a6280a756 Backed out 2 changesets (bug 778077, bug 631058)
CLOSED TREE

Backed out changeset dda301682977 (bug 631058)
Backed out changeset 25b633e7dcd5 (bug 778077)
2014-03-27 21:50:02 -07:00
Chris Pearce
b26d467d58 Bug 778077 - Implement HTMLMediaElement.fastSeek(time). r=cajbir
Implement HTMLMediaElement.fastSeek(), basically by changing all the
MediaDecoderReader::Seek() overrides to not call
MediaDecoderReader::DecodeToTarget(), and have MediaDecoderReader::DecodeSeek()
call DecodeToTarget() if we're doing an accurate (non-fast) seek.

Update gizmo.mp4 to have a keyframe every second, instead of only 1 keyframe at
the start of stream. This makes the unit test I added more useful for mp4...

I pushed most of the seek target clamping logic in MediaDecoder up into
HTMLMediaElement, so that we're clamping in fewer places. Note
MediaDecoderStateMachine::Seek() still sanity checks the seek target.

We have to update the currentTime/MediaDecoder playback position after a seek
completes now, rather than assuming the seek always got it exactly right.

Removed those pesky assertions about seek target lying in the first frame after
seek, since actually sometimes the media doesn't have samples for all streams
after a seek (either due to the media being encoded like that, or because of a
bug in the platform's decoder, not entirely sure).

Green: https://tbpl.mozilla.org/?tree=Try&rev=b028258565e2
2014-03-28 15:50:28 +13:00
Eric Rahm
4c96c88496 Bug 962154 - Use MallocSizeOf to report decoded-video memory. r=cpearce,njn 2014-03-19 14:33:12 -07:00
Eric Rahm
0af50cdae6 Bug 969117 - Report memory usage of MediaResources. r=njn 2014-03-05 13:31:04 -08:00
Chris Pearce
1e42313a2a Bug 973408 - Don't block a decode thread while awaiting resources. r=kinetik 2014-03-11 11:44:09 +08:00
Ralph Giles
a4ec495736 Bug 964559 - Remove MOZ_OGG. r=doublec,ted
We are unable to maintain all the --disable-foo build-time options
for the media code. Just support ogg unconditionally.
2014-02-20 18:01:00 -08:00
Chris Pearce
6dda7a817e Bug 968016 - Use SharedThreadPool instead of manually managed threads for the media decoding. r=kinetik 2014-02-18 11:53:52 +13:00
Ben Kelly
1ac006397f Bug 961441: Use MallocSizeOf to report decoded-audio memory. r=cpearce r=njn 2014-01-22 22:14:45 -05:00
Robert O'Callahan
81d72a6306 Bug 943461. Part 15: Make MediaDecoder set its currentTime based on the decoded stream's time directly, if we are decoding to a stream. r=cpearce
--HG--
extra : rebase_source : 35fe51dbec3107d7dae801a5a179c5ef5fa53725
2013-12-13 01:33:00 +13:00
Robert O'Callahan
d4e6ad4a05 Bug 943461. Part 8: When a MediaDecoder is decoding to a stream, run PlaybackEnded when the stream finishes. r=padenot
--HG--
extra : rebase_source : 92c8b55c5d8330bcf8242d379bc608fa3d30bc6b
2013-12-07 01:01:33 +13:00
Ehsan Akhgari
eaa7491d77 Bug 927728 - Part 1: Replace PRUnichar with char16_t; r=roc
This patch was automatically generated by the following script:

#!/bin/bash
# Command to convert PRUnichar to char16_t

function convert() {
echo "Converting $1 to $2..."
find . ! -wholename "*nsprpub*" \
       ! -wholename "*security/nss*" \
       ! -wholename "*modules/libmar*" \
       ! -wholename "*/.hg*" \
       ! -wholename "obj-ff-dbg*" \
       ! -name prtypes.h \
       ! -name Char16.h \
         -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 PRUnichar char16_t
2014-01-04 10:02:17 -05:00
Chris Pearce
822f12eb46 Bug 938107 - Wait for media state machine thread to shutdown during XPCOM shutdown before returning. r=roc
Add a MediaShutdownManager and have that as the only xpcom-shutdown
observer. This then shutsdown the MediaDecoders, and blocks waiting for
the media state machine's shared thread to complete shutdown before
exiting from the xpcom-shutdown observer. This ensures that the
MediaDecoder infrastructure does not use XPCOM on any thread after XPCOM
has shutdown, which is a logical error.
2013-12-18 16:59:11 +13:00
Phil Ringnalda
a89c244f90 Back out 377f51d0e354 (bug 938108) for crashtest shutdown crashes 2013-12-15 19:56:24 -08:00
Chris Pearce
0c05712284 Bug 938108 - Wait for media state machine thread to shutdown during XPCOM shutdown before returning. r=roc
Add a MediaShutdownManager and have that as the only xpcom-shutdown
observer. This then shutsdown the MediaDecoders, and blocks waiting for
the media state machine's shared thread to complete shutdown before
exiting from the xpcom-shutdown observer. This ensures that the
MediaDecoder infrastructure does not use XPCOM on any thread after XPCOM
has shutdown, which is a logical error.
2013-12-16 15:52:59 +13:00
Chris Pearce
e9d0605f33 Bug 938107 - Backed out changeset 7aff3ce81046 for bustage. r=bustage. 2013-12-16 13:48:54 +13:00
Chris Pearce
a584c56a17 Bug 938107 - Wait for media state machine thread to shutdown during XPCOM shutdown before returning. r=roc
Add a MediaShutdownManager and have that as the only xpcom-shutdown
observer. This then shutsdown the MediaDecoders, and blocks waiting for
the media state machine's shared thread to complete shutdown before
exiting from the xpcom-shutdown observer. This ensures that the
MediaDecoder infrastructure does not use XPCOM on any thread after XPCOM
has shutdown, which is a logical error.
2013-12-16 13:31:03 +13:00
Nicholas Nethercote
e02408b49d Bug 947798 (part 2) - Remove MemoryMultiReporter, because it's no longer helpful. r=mccr8.
--HG--
extra : rebase_source : f6f74de69d8c1d79d38b84b19dff5439efc41075
2013-12-07 21:39:47 -08:00
Nicholas Nethercote
e9715bfc41 Bug 943660 (part 2) - Remove remnants of Remove nsIMemoryReporter::name.
--HG--
extra : rebase_source : 900bd1c641b26623cccf14d952b5387223b489eb
2013-12-03 20:01:24 -08:00
Robert O'Callahan
b2d1fa5018 Bug 938022. Part 6: Have MediaDecoder/MediaDecoderStateMachine that's producing a MediaStream use that stream's current time as the media clock. r=padenot
We monitor the stream's output current time via a new MediaStreamListener
owned by DecodedStreamData. We also track its main-thread Finished status.
While we're writing to a DecodedStreamData stream that hasn't finished its
output, we stay in the DECODER_STATE_COMPLETED state so we can keep updating
video and firing timeupdates.

GetClock() uses the DecodedStreamData stream's current time as the source for
the clock if there is one.

--HG--
extra : rebase_source : aba1d092d3d347e26ebd823d61fcbfa40a8cd1fe
2013-12-02 10:09:06 +13:00
Robert O'Callahan
161ce6418f Bug 938022. Part 2: Block captured MediaStream when the MediaDecoderStateMachine is not playing. r=cpearce
--HG--
extra : rebase_source : 01d887b3b5917b7c51a286d61feb10e7b2426d9a
2013-11-23 22:48:24 +13:00
Nicholas Nethercote
c82c609ac3 Bug 936964 (part 7, attempt 2) - Make lots of classes report their own memory consumption, instead of using a separate reporter class. r=mccr8,sr=bz.
* * *
Bug 936964 (part 7b) - Fix a use-after-free found by ASan.

--HG--
extra : rebase_source : d38ab6b63e9d576773baf8e55fa4f7182c33915e
2013-11-07 16:35:30 +11:00
Nicholas Nethercote
bc78290462 Bug 936964 (part 4, attempt 2) - Make MediaMemoryTracker ref-counted. r=kinetik.
--HG--
extra : rebase_source : fb032c262779678a33baa80700f448d3c9c469d3
2013-11-25 16:01:31 -08:00
Ehsan Akhgari
6220f98ec6 Backed out 9 changesets (bug 943660, bug 936964) because of ASAN use-after-free crashes on browser-chrome and mochitest-other
Backed out changeset 85486c4aa3d8 (bug 936964)
Backed out changeset 25312eb71998 (bug 936964)
Backed out changeset 6dbb8333960c (bug 936964)
Backed out changeset da6465ad476f (bug 936964)
Backed out changeset a87ffc992f38 (bug 936964)
Backed out changeset 4ae3a61182db (bug 936964)
Backed out changeset 34e9c3137804 (bug 936964)
Backed out changeset fd1459e71585 (bug 936964)
Backed out changeset 3e8a701d8bdc (bug 943660)

Landed on a CLOSED TREE

--HG--
rename : content/canvas/src/WebGLMemoryTracker.h => content/canvas/src/WebGLMemoryReporterWrapper.h
2013-11-27 20:05:00 -05:00
Nicholas Nethercote
74e6ffe050 Bug 936964 (part 7) - Make lots of classes report their own memory consumption, instead of using a separate reporter class. r=mccr8,sr=bz.
--HG--
rename : content/canvas/src/WebGLMemoryReporterWrapper.h => content/canvas/src/WebGLMemoryTracker.h
extra : rebase_source : 611e8d35907959b163aeced1c4ffe1d265048fe6
2013-11-07 16:35:30 +11:00
Nicholas Nethercote
e604caa465 Bug 936964 (part 4) - Make MediaMemoryTracker ref-counted. r=kinetik.
--HG--
extra : rebase_source : fced8b650971a152299fcf07a9ee75936d1810a2
2013-11-25 16:01:31 -08:00
Carsten "Tomcat" Book
04f396a0c7 merge mozilla-inbound to mozilla-central 2013-11-21 14:20:21 +01:00
Vincent Chang
9f6565be60 Bug 898864 - RTSP content process crash when press the play button at the end of video. r=sworkman 2013-11-20 11:08:10 +08:00
Ehsan Akhgari
8ab03a33ee Bug 939582 - Part 1: Rework the NSPR logging in content/media to use different macro names for different logs; r=doublec 2013-11-20 22:02:42 -05:00
Ehsan Akhgari
7092b111ba Backed out 2 changesets (bug 939582) because of build bustage
Backed out changeset 2079c828645a (bug 939582)
Backed out changeset af472e590088 (bug 939582)
2013-11-20 21:41:40 -05:00
Ehsan Akhgari
258944b4d5 Bug 939582 - Part 1: Rework the NSPR logging in content/media to use different macro names for different logs; r=doublec 2013-11-20 21:11:54 -05:00
Ryan VanderMeulen
7db9c39392 Merge m-c to inbound.
--HG--
rename : dom/contacts/tests/test_contacts_upgrade.html => dom/contacts/tests/test_contacts_upgrade.xul
rename : dom/indexedDB/test/test_globalObjects.xul => dom/indexedDB/test/test_globalObjects_chrome.xul
rename : dom/indexedDB/test/test_globalObjects.html => dom/indexedDB/test/test_globalObjects_content.html
rename : dom/indexedDB/test/unit/test_globalObjects.js => dom/indexedDB/test/unit/test_globalObjects_xpc.js
2013-11-19 13:54:20 -05:00
Matthew Gregan
aca39c9f09 Bug 939662 - Remove "using namespace mozilla::dom;" from MediaDecoder.h and fix fallout. r=cpearce 2013-11-18 17:22:47 +13:00
Sotaro Ikeda
7b5305a24c Bug 935118 - Allow buffering to be triggered when we're low on decoded audio or video. r=roc 2013-11-19 09:01:14 -05:00
Phil Ringnalda
aa4f4a9e99 Back out 4fd2bf2ec8db (bug 939662) for Windows build bustage
CLOSED TREE
2013-11-18 21:34:48 -08:00
Matthew Gregan
fdcb4e1cac Bug 939662 - Remove "using namespace mozilla::dom;" from MediaDecoder.h and fix fallout. r=cpearce
--HG--
extra : rebase_source : 922db8de8e9103e3001c26f23ed7402efa8237f5
2013-11-18 17:22:47 +13:00
Mike Hommey
668fe90971 Bug 935857 - Replace MOZ_RTSP with proper NECKO_PROTOCOL handling. r=gps,r=vchang 2013-11-12 07:52:33 +09:00
Matthew Gregan
15ae6a844f Bug 935349 - Remove remaining disabled DASH code. r=doublec 2013-11-07 17:08:42 +13:00
Nicholas Nethercote
b9e0d05f7e Bug 934321 - Add MemoryMultiReporter, a helper class that reduces some boilerplate, and convert all existing multi-reporters to use it. r=wchen.
--HG--
extra : rebase_source : a6110c3558c571b7908b63e8cc7ca21103098d0d
2013-11-06 14:58:20 +11:00
Benjamin Chen
a9ca45668c Bug 831645 - part2, Rtsp media resource and decoder. r=roc, doublec, sworkman, khuey, gps 2013-09-23 17:53:36 +08:00
Matt Woodrow
e61f859e65 Bug 886219 - Force an invalidation when an async video finishes. r=nical 2013-10-02 16:05:34 +13:00
Chris Pearce
499a20ae5f Bug 915957 - Move MediaDecoder::NotifyBytesConsumed() calls into MediaResource, so we don't need to remember to do them in all decoder backends. r=kinetik 2013-09-18 15:37:23 +12:00
Edwin Flores
df276e7296 Bug 914479 - AudioToolbox MP3 backend on OSX r=cpearce 2013-09-14 13:14:42 +12:00
Nicholas Nethercote
fd238cabbe Bug 910517 (3rd attempt) - Remove nsIMemoryReporter, and rename nsIMemoryMultiReporter as nsIMemoryReporter. r=mmcr8.
--HG--
rename : content/canvas/src/WebGLMemoryMultiReporterWrapper.h => content/canvas/src/WebGLMemoryReporterWrapper.h
extra : rebase_source : 2b2a1b2667d6562fcf803ec48b4a8c10fdd519a3
2013-08-27 16:24:51 -07:00