Commit Graph

86 Commits

Author SHA1 Message Date
Paul Adenot
247369a604 Bug 774084 - Fix a crash in nsBuiltinDecoder::GetSeekable. r=kinetik
--HG--
extra : rebase_source : f05e051cc9ab850381d138e944f2cc3ea5b3e2f7
2012-07-15 10:57:41 -07:00
Ralph Giles
a81a17e866 Bug 763010 - Expose media element metadata. r=cpearce
Implements a media.mozGetMetadata() method returning a new javascript object whose properties are key value pairs respresenting metadata tags from the media resource. This data is available after readystate enters METADATA_LOADED.

Currently this is only implemented for Ogg Vorbis streams.

Media format metadata is parsed out by the media decoders. In the nsCodecStateMachine::ReadMetadata subclasses we fill in an nsDataHashtable pointer using the format-specifc api.

The hash pointer is passed up to the media element as part of the MetadataLoaded event.

The hash is deleted if the load is aborted. The audio metadata is also reset to zero (as in the constructor), resolving a todo comment.
2012-07-30 20:14:29 -04:00
Aryeh Gregor
57c0ad57fb Bug 777292 part 2 - Change all nsnull to nullptr 2012-07-30 17:20:58 +03:00
Robert O'Callahan
4526892060 Fix bustage for bug 755533 2012-05-28 11:08:59 +12:00
Chris Pearce
0c2ab7bae9 Bug 755533 - Ensure we fire canplaythrough if the media's channel is suspended before metadata is loaded. r=roc 2012-05-28 10:40:06 +12:00
Gervase Markham
87620f5676 Bug 716478 - update licence to MPL 2. 2012-05-21 12:12:37 +01:00
Paul Adenot
744ee4cb46 Bug 756372 - Change |seeking| to prevent seeking in WebM livestream. r=kinetik 2012-05-18 13:35:43 -04:00
Robert O'Callahan
41e12c9ddd Bug 750769. Add more logging. r=cpearce 2012-05-15 17:57:29 +12:00
Robert O'Callahan
73b8d69382 Bug 750769. Clarify that mNextState can only be PLAY_STATE_PAUSED or PLAY_STATE_PLAYING. r=cpearce 2012-05-15 17:57:23 +12:00
Robert O'Callahan
3e35dded86 Bug 750769. Clarify thread-safety guarantees around mPlayState and mNextState. r=cpearce 2012-05-15 17:57:17 +12:00
Robert O'Callahan
f1d92066fc Bug 750258. Set intial audio capture state correctly on mDecoderStateMachine. r=cpearce
For media resources whose streams are captured before the load has started, we shouldn't even start
an audio thread. This saves a lot of resources and ensures we don't see races between the audio thread
and the code that copies packets from the audio queue to the MediaStreams.
2012-05-07 15:45:06 +12:00
Robert O'Callahan
04b6d68bcd Bug 664918. Part 11: Refactor code around mDecoder->Shutdown() to make following fix easier. r=cpearce 2012-04-30 15:13:09 +12:00
Robert O'Callahan
54a29c01d8 Bug 664918. Part 8: Add mozCaptureStream()/mozCaptureStreamUntilEnded() APIs to HTML media elements, returning a MediaStream representing the contents of the media element. r=cpearce,jesup
This is currently not fully functional. The MediaStream always ends when the underlying resource ends. You can't use these APIs on a media element
whose src is a MediaStream. Seeking or pausing the resource will cause problems. The media element does not play back in sync with the MediaStream.
2012-04-30 15:12:42 +12:00
Paul ADENOT
70eca6f58d Bug 480376 - Implement mozHasAudio to indicate when there's no audio track available. r=cpearce 2012-04-28 11:01:10 -04:00
Ms2ger
79981b5cf9 Bug 726416 - Fix some content/ build warnings; r=mounir 2012-02-21 10:34:01 +01:00
Robert O'Callahan
dea0c5b319 Bug 727694. Set up new mDecoderStateMachine with any preset initial volume. r=cpearce 2012-02-16 17:17:36 +13:00
Robert O'Callahan
ad4c67538b Bug 726889. Rename nsMediaStream/nsMediaChannelStream/nsMediaFileStream to mozilla::MediaResource/ChannelMediaResource/FileMediaResource. Also rename nsByteRange to mozilla::MediaByteRange and nsChannelStatistics to mozilla::MediaChannelStatistics. Rename GetStream to GetResource and various other mentions of 'stream' to 'resource'. r=cpearce
--HG--
rename : content/media/nsMediaStream.cpp => content/media/MediaResource.cpp
rename : content/media/nsMediaStream.h => content/media/MediaResource.h
2012-02-15 17:35:01 +13:00
Robert O'Callahan
8b57a3e190 Bug 708116. Factor out logic for updating the current frame of a video element into a helper object. r=doublec 2012-02-15 17:35:01 +13:00
Chris Pearce
a8858bf744 Bug 673698 - Don't update video playback position during seek. r=roc 2012-02-14 21:48:16 +13:00
Chris Pearce
eb006e51ef Bug 713381 - Queue media decode thread creation when limit reached. r=roc 2012-01-20 07:30:29 +13:00
Chris Pearce
399643a27c Bug 713381 - Add null check on decoder state machine, increase media thread limit. r=roc 2012-01-20 07:29:12 +13:00
Chris Pearce
feca30f47a Bug Bug 713381 - backout 38271572005b,d5ebbc25b4b8,6435f51dd10d. r=backout 2012-01-19 11:56:54 +13:00
Chris Pearce
c7db97f406 Bug 713381 - Queue media decode thread creation when limit reached. r=roc 2012-01-19 09:15:57 +13:00
Chris Pearce
f8ec2fc9d5 Bug 713381 - Add null check on decoder state machine. r=roc 2012-01-19 09:15:47 +13:00
Chris Pearce
176bb0c176 Bug 716417 - Don't add media elements to the element table twice if when we hit decode thread limit. r=roc 2012-01-11 11:58:43 +13:00
Chris Pearce
451d64779a Bug 712738 - Cap seeking outside of buffered data in live streams to end of buffered data. r=kinetik 2012-01-06 19:40:51 +13:00
Robert O'Callahan
5201645780 Bug 687972. Remove logging that we added to hunt down the bug. 2011-12-15 23:26:42 +13:00
Robert O'Callahan
937c660084 Bug 687972. More logging. 2011-12-09 17:48:40 +13:00
Brad Lassey
fb38b7fab8 Bug 687972 - backing out changesets b17ab862bbc1 and a6db0c6c94a3 r=orange 2011-11-30 22:59:00 -05:00
Robert O'Callahan
b1c2e62040 Bug 687972. Remove logging code now that we've fixed the bug. 2011-12-01 15:49:50 +13:00
Robert O'Callahan
4ef340dbbe Bug 687972. Add a little bit more logging. 2011-12-01 00:16:19 +13:00
Robert O'Callahan
508f509754 Bug 687972. Try 2: Run autoplay for an element after reaching loadedmetadata if all download streams for its resource are suspended by the media cache. r=cpearce 2011-11-30 18:05:49 +13:00
Robert O'Callahan
882adb220d Bug 703379. Rename nsMediaDecoder::GetCurrentStream to GetStream. Make nsMediaStream::URI() const. r=doublec 2011-11-25 15:06:20 +13:00
Robert O'Callahan
e5c5e6b988 Backing out part of bug 703379 to fix build failure of nsRawReader 2011-11-24 12:30:03 +13:00
Robert O'Callahan
84b2fe0e79 Bug 703379. Rename nsMediaDecoder::GetCurrentStream to GetStream. Make nsMediaStream::URI() const. r=doublec 2011-11-24 12:05:12 +13:00
Chris Pearce
011644c901 Bug 604682 - Remove unnecessary copy of audio data when there's no MozAudioAvailable event listener. r=smaug,kinetik 2011-11-22 13:34:21 +13:00
Matthew Gregan
b91f76289a Bug 690603 - Remove PR_TRUE/PR_FALSE from media code. r=doublec 2011-09-30 12:34:37 +13:00
Michael Wu
d8e503c38b Bug 675553 - Switch from PRBool to bool on a CLOSED TREE , r=bsmedberg,khuey,bz,cjones
--HG--
rename : tools/trace-malloc/bloatblame.c => tools/trace-malloc/bloatblame.cpp
2011-09-28 23:19:26 -07:00
Chris Double
bd6768da6d Bug 686942: respect pause state when seeking to end and beginning of videos - r=kinetik
--HG--
extra : rebase_source : 9d698ae2e8731040fa8f40b90164889b5a8b5e23
2011-09-27 15:22:09 +13:00
Matthew Gregan
8579719cfc Bug 688516 - Null check mElement before use in NotifyDownloadEnded and AudioAvailable. r=cpearce 2011-09-23 16:27:18 +12:00
Chris Double
6282bd0d7d Bug 679262 - Seeking to end of file during loadedmetadata event breaks further playback - r=cpearce
--HG--
extra : rebase_source : 1ecffe9613128724e38060d44a46a5bdbcc6fb18
2011-08-29 13:35:52 +12:00
Chris Double
1e5e4609a1 Bug 648595 - Part 1/2: Implement temporal dimension portion of Media Fragments URI specification for video/audio - r=cpearce
--HG--
extra : rebase_source : f9b5986e739a091c37caeb882904434f21fb6d81
2011-08-25 11:42:23 +12:00
Ms2ger
9414376b01 Bug 677101, part b - Remove nsContentUtils.h includes from headers; r=volkmar 2011-08-11 15:29:50 +02:00
Paul ADENOT
36cf6a91a7 Bug 462960 - Implement nsIDOMHTMLMediaElement::GetSeekable() + seeking algorithm part 7. r=cpearce 2011-08-09 12:10:48 +02:00
Paul ADENOT
99d65b2f85 Bug 619752 part 1 - Duration should be +Inf on infinite length video streams. Core changes and corresponding test fixes. r=cpearce 2011-08-01 14:11:20 -04:00
Chris Pearce
f75f5e57e5 Bug 592833 - Merge all media state machines into a single thread. r=roc 2011-07-12 15:39:34 +12:00
Chris Pearce
09f21e3e39 Bug 592833 - Run media state machine as a series of events. r=roc 2011-07-12 15:39:32 +12:00
Chris Pearce
b6b4964da4 Bug 592833 - Move metadata decoding to decode thread. r=roc 2011-07-12 15:39:23 +12:00
Chris Jones
ed22df8f64 Bug 556214, parts 1 and 1.1: Rename Monitor to ReentrantMonitor and fix existing Monitor users. r=roc
--HG--
rename : xpcom/glue/Monitor.h => xpcom/glue/ReentrantMonitor.h
2011-04-29 14:21:57 -05:00
Chris Pearce
a259c20cba Bug 641718 - Convert to using microseconds for internal video timestamps. r=kinetik 2011-04-14 10:12:23 +12:00