Commit Graph

1082 Commits

Author SHA1 Message Date
Robert O'Callahan
ef29d2ea89 Bug 779715. Part 8: Make it safe to call MediaInputPort::Destroy after streams at both ends of the port have been destroyed. r=jesup
We had problems because we'd call Destroy on a port after calling Destroy on
its streams. This patch makes the port's Destroy ControlMessage not use a stream,
instead we get the stream from the port directly. It also makes us update the
graph's mPortCount only when the port is finally destroyed; this fixes a potential
bug where the current graph could shut down when all streams are removed, before
all ports have been completely destroyed.

--HG--
extra : rebase_source : 3245fa64b79fb8a75c17190f1a4a2af6d42a5012
2012-08-24 00:46:20 +12:00
Robert O'Callahan
b5dc014ed6 Bug 779715. Part 7: Update test_streams_element_capture_reset.html to test new functionality. r=cpearce
test_streams_element_capture_reset.html is updated to test that mozCaptureStreamUntilEnded actually stops
capturing when the stream ends. It also tests that seeking and reloading the media resource keep
feeding a mozCaptureStream stream, and feed the right amount of data.

--HG--
extra : rebase_source : 07faf20b8a99b5e7dcdfb27b3a2096fdfd570f45
2012-08-20 16:57:12 +12:00
Robert O'Callahan
9345d39437 Bug 779715. Part 6: Rework capturing MediaStreams from media elements to use TrackUnionStreams. r=cpearce,jesup
Moves to a new setup where a decoder manages a single SourceMediaStream internally. Each stream
returned from mozCaptureStream(UntilEnded) is a TrackUnionStream which is fed by the
decoder's SourceMediaStream.
We want the captured streams to be blocked while the media element is not playing. We do that
by blocking any captured stream that has no SourceMediaStream feeding into it, and blocking
any SourceMediaStream while its decoder is not playing.
We arrange for the decoders's PlaybackEnded to be delayed until its SourceMediaStream has
finished according to the media stream graph. This ensures the state of captured media streams
corresponds more closely to the media element state.

--HG--
extra : rebase_source : 3324ff0e9bdce9c71a23c0f5f2032815e9046081
2012-08-01 00:17:22 +12:00
Chris Double
f02292c9f4 Backout bug 730765 Part 3/3
--HG--
extra : rebase_source : 2aadbb2419cceeac30bd95484e37ab905525662f
2012-08-24 00:12:53 +12:00
Chris Double
af6a76cff2 Backed out changeset 5583ccdfea18 2012-08-23 22:42:14 +12:00
Paul Adenot
1fb050e013 Bug 730765 - Media cache shouldn't be used when loading from blob: urls. r=biesi 2012-08-21 16:00:23 -07:00
Ehsan Akhgari
e0e775798d Bug 784536 - Use the name of the enum value directly as opposed to access it from the enum's scope; r=dzbarsky 2012-08-21 19:06:50 -04:00
Ryan VanderMeulen
15bd519dbe Backout 3ce94808577b, 56f288230d5a, and 18ff170ecb1f (bug 730765) for bustage. r=fail 2012-08-21 18:45:54 -04:00
Paul Adenot
e7f75f1f49 Bug 730765 - Media cache shouldn't be used when loading from blob: urls. r=biesi 2012-08-15 10:36:12 -07:00
Paul Adenot
f0ee1ac2d2 Bug 775319 - Determine the sample format at compile time for all media code. r=kinetik 2012-08-16 18:10:36 -07:00
Kan-Ru Chen (陳侃如)
ce3f15cc41 Bug 767480 - Gralloc backed video buffer. r=roc 2012-08-21 18:22:58 +08:00
Kan-Ru Chen (陳侃如)
ecd566dd4c Bug 767480 - PlanarYCbCrImage Refactoring. r=roc 2012-08-21 18:18:20 +08:00
Kan-Ru Chen (陳侃如)
0f4bf67e69 Back out c8f7bace9cf9, 17ec4e01c126 (bug 767480) r=bustage 2012-08-21 17:55:02 +08:00
Kan-Ru Chen (陳侃如)
660d2318a6 Bug 767480 - Gralloc backed video buffer. r=roc 2012-08-21 14:59:42 +08:00
Kan-Ru Chen (陳侃如)
31f25ec5f6 Bug 767480 - PlanarYCbCrImage refactoring. r=roc 2012-08-21 17:31:36 +08:00
Chris Double
f4318197d0 Bug 783927 - Handle zero length audio reads in stagefright backend to fix audio issues - r=cpeterson 2012-08-21 17:03:21 +12:00
David Zbarsky
b27894f902 Bug 784004 - Don't include Layers.h everywhere Part 3 r=nical 2012-08-21 00:06:46 -04:00
Robert O'Callahan
af2a8aba98 Backing out parts 6 and 7 of bug 779715 (5a87f1d1807d, 5a87f1d1807d) due to crashtest orange.
--HG--
extra : rebase_source : bb7acb9958452850bd9d36f8e58f956d065d4935
2012-08-21 00:44:32 +12:00
Robert O'Callahan
b1060b89eb Bug 779715. Part 7: Update test_streams_element_capture_reset.html to test new functionality. r=cpearce
test_streams_element_capture_reset.html is updated to test that mozCaptureStreamUntilEnded actually stops
capturing when the stream ends. It also tests that seeking and reloading the media resource keep
feeding a mozCaptureStream stream, and feed the right amount of data.

--HG--
extra : rebase_source : 6d9e9631516cebbde148d301050c388e0e0019a8
2012-08-20 16:57:12 +12:00
Robert O'Callahan
a6654c40fb Bug 779715. Part 6: Rework capturing MediaStreams from media elements to use TrackUnionStreams. r=cpearce,jesup
Moves to a new setup where a decoder manages a single SourceMediaStream internally. Each stream
returned from mozCaptureStream(UntilEnded) is a TrackUnionStream which is fed by the
decoder's SourceMediaStream.
We want the captured streams to be blocked while the media element is not playing. We do that
by blocking any captured stream that has no SourceMediaStream feeding into it, and blocking
any SourceMediaStream while its decoder is not playing.
We arrange for the decoders's PlaybackEnded to be delayed until its SourceMediaStream has
finished according to the media stream graph. This ensures the state of captured media streams
corresponds more closely to the media element state.

--HG--
extra : rebase_source : a301714fad57a3b7c963530a3da99c54bc8ac436
2012-08-01 00:17:22 +12:00
Robert O'Callahan
15411af0fe Bug 779715. Part 4: Play all tracks of a media stream with multiple tracks. r=jesup
Until now we've identified the "first active track" of a stream and played only that. Instead,
it makes more sense to play all the tracks.
For video, we pick the last track that has a video frame for the current time, and display that.

--HG--
extra : rebase_source : 00ce3eb363df06c292232aa507e861639d10cff2
2012-08-01 00:17:22 +12:00
Robert O'Callahan
750d28ceb3 Bug 779715. Part 3: Add an API to get notifications of changes to the main-thread-visible state of a MediaStream. r=jesup
--HG--
extra : rebase_source : 24b7204d219612760b9d159fff5219c1960df51a
2012-08-20 16:20:44 +12:00
Robert O'Callahan
5bc78e2fbe Bug 779715. Part 2: Create TrackUnionStream. r=jesup
--HG--
extra : rebase_source : 29038fa1b93dcade3d762537bf510dc0901a9738
2012-08-01 00:17:21 +12:00
Robert O'Callahan
d3b9aab0ce Bug 779715. Part 1: Add basic support for ProcessedMediaStreams. r=jesup
The main thing this patch does is to add ProcessedMediaStream objects and
MediaInputPorts connecting streams. ProcessedMediaStreams are an abstract
class that doesn't constrain what processing is actually performed, except
that for now we assume a stream's processing depends only on its inputs
window of data between mCurrentTime and mStateComputedTime.
This patch reorganizes the way the blocking status of each stream is computed.
The streams are partitioned into groups so that every stream which can affect
the blocking status of another stream is in the same group as that other stream.
We also add a pass to order the streams by dependency so we can process the streams
in order of dependency; this pass also identifies the streams that form part of a
cycle.

--HG--
extra : rebase_source : c45c931a264e73f295642a934500bbeaa6448774
2012-08-01 00:17:21 +12:00
Matthew Gregan
dfc90699bc Bug 783940 - Remove unnecessary nsOggDecoderStateMachine class. r=cpearce 2012-08-20 15:59:25 +12:00
Matthew Gregan
c659795e35 Bug 783179 - Remove unused mCbCrSize and mCbCrBuffer members from nsBuiltinDecoderStateMachine. r=doublec 2012-08-16 18:07:26 +12:00
Matt Woodrow
430eb94bb3 Bug 782372 - Fix clang build. r=nical 2012-08-20 14:39:10 +12:00
Matthew Gregan
0c2ee3e831 Bug 780490 - Re-enable test_seek, test_seek_out_of_range, and test_timeupdate_small_files on Linux. (Also bug 780491 and bug 780492). Test only. 2012-08-20 12:10:05 +12:00
Nicolas Silva
54dd2bf57f Bug 782372 - Splits ImageLayers.h into ImageLayers.h ImageContainer.h and ImageTypes.h, r=bgirard 2012-08-19 15:33:25 -04:00
Chris Jones
95a883e7ed Bug 776069: Disable remote audio for gonk. Sigh. r=kinetik 2012-08-18 16:14:37 -07:00
Ed Morley
bca60a064f Bug 608634 - Disable test_error_in_video_document.html for too many intermittent failures; r=philor 2012-08-18 23:59:34 +01:00
Paul Adenot
29b17248c6 Bug 762282 - Don't notify the HTMLMediaElement if we reach the end of the media while seeking for metadata. r=chris.double 2012-08-17 10:01:08 -07:00
Matthew Gregan
c8050b8d35 Bug 782876 - Remove unnecessary returns from event handlers in media tests. r=doublec 2012-08-15 16:41:24 +12:00
Matthew Gregan
d3a4cc2185 Bug 770945 - Simple media events shouldn't be cancelable. r=roc 2012-08-14 15:26:43 +12:00
Ehsan Akhgari
b457a9ddf0 Merge removal of nsnull 2012-08-14 11:29:00 -04:00
Aryeh Gregor
e2dd9c2028 Bug 626472 part 3 - Remove nsnull for good; r=ehsan 2012-08-12 13:43:47 +03:00
Alexandros Chronopoulos
d4807317cd Bug 748144 - Support multichannel Opus files. r=rillian
The Opus audio format supports multichannel (surround) audio, but our initial implementation used a simpler API which only supported mono and stereo output.

To handle these files gracefully, this patch uses the multichannel api and downmixes the output, if possible, to stereo, since we don't currently support surround sound playback.
2012-08-09 15:53:23 -07:00
Honza Bambas
5fe7a22e2c Bug 215450: Allow uploading of files greater than 2gb in size. Involves making input streams 64-bit capable. Significant work done by Makoto Kato, finished by Honza Bambas. r=hbambas,bsmedberg,jdrew,sicking 2012-08-10 22:44:11 -04:00
Nicolas Silva
e3b4b9229b Bug 773469 - Remove unnecessary layer transactions when using async-video. r=roc 2012-08-10 11:42:53 -04:00
Chris Double
259c04ead2 Bug 759945 - Part 4: MP4 test file - r=cpearce
--HG--
extra : rebase_source : 0aa155c4ebc60ddc8afe720161af345c555897a8
2012-08-10 20:15:24 +12:00
Chris Double
d74b5f8a1c Bug 759945 - Part 3: Android OS headers and stub files for software decoding using libstagefright on Android - r=cpearce
--HG--
extra : rebase_source : 0f5b9fed7dac3040a98af6dcc324407c4f8a9772
2012-08-10 20:15:20 +12:00
Chris Double
bb6001e68d Backed out changeset dcb9299974a0 due to audio issues on android and b2g
--HG--
extra : rebase_source : 7e2b937487c3df9a40406eadf250e6596b89664f
2012-08-10 17:30:01 +12:00
Aryeh Gregor
982100775b Bug 780618 - Move all error codes to nsError.h; r=ehsan 2012-07-27 17:03:27 +03:00
Ed Morley
6f3226343f Merge mozilla-central to mozilla-inbound 2012-08-09 12:51:21 +01:00
Ed Morley
991653b152 Merge last PGO-green changeset of mozilla-inbound to mozilla-central 2012-08-09 12:46:05 +01:00
Robert O'Callahan
17835a1702 Bug 779721. Part 6: Add a flag to track whether the main thread has called Destroy on a stream, and check that flag when sending a message to it. r=jesup 2012-08-09 23:30:09 +12:00
Robert O'Callahan
6622457020 Bug 779721. Part 5: Add a comment explaining more about how MediaStream lifetimes are managed. r=jesup 2012-08-09 23:30:02 +12:00
Ms2ger
a51e9be374 Bug 780387 - Part f: Stop using PRBool & PRPackedBool; r=bsmedberg 2012-08-09 09:10:13 +02:00
Ed Morley
a9fda23889 Backout ec46cfa51bf8, 4a54f06efee8, de811fbd27b0 & 67ea1314c777 (bug 567077) for causing bug 781141 2012-08-08 13:11:34 +01:00
Robert O'Callahan
7037667a9f Bug 779721. Part 4: Fix lock ordering inversion when running control messages during a forced shutdown. r=jesup 2012-08-01 00:17:22 +12:00