Commit Graph

180 Commits

Author SHA1 Message Date
Chris Pearce
64edd7d41e Bug 979104 - MediaDecoderReader/StateMachine asynchronous decoding. r=kinetik 2014-06-18 17:07:02 +12:00
Chris Pearce
b19a922e8e Bug 1022913 - Ensure that fastSeek() doesn't skip behind the current playback position if we're seeking forwards. r=cajbir 2014-06-17 15:27:46 +12:00
Ehsan Akhgari
e9b3374219 Backed out changeset 0cdef46c65c1 (bug 979104) for causing bug 1024324 2014-06-13 16:20:37 -04:00
Karl Tomlinson
61ecc111e3 b=1023697 use MediaStream to convert ticks to time in MediaDecoderStateMachine r=roc 2014-06-12 16:44:56 +12:00
Karl Tomlinson
e6031ab8ab b=1023697 change MediaDecoderStateMachine::mSyncPointInMediaStream from StreamTime to µs r=roc
This allows the conversion from StreamTime to be performed while a stream is
available.
2014-06-12 16:44:56 +12:00
Chris Pearce
a7fdc12220 Bug 979104 - MediaDecoderReader/StateMachine asynchronous decoding. r=kinetik 2014-06-10 19:31:09 +12:00
Kyle Huey
643d853aa4 Bug 996133: Remove unnecessary NS_DISPATCH_NORMAL arguments to NS_DispatchToMainThread. r=ehsan 2014-05-23 12:53:17 -07:00
JW Wang
2aeb49d9ff Bug 1008012 - |mBasePosition| should be updated after seeking otherwise GetVideoStreamPosition will get the wrong value. r=cpearce 2014-05-21 00:41:00 +02:00
Vincent Chang
6773add624 Bug 951278 - [RTSP][V1.3] The RTSP streaming always stops at the last 1st or 2nd second. r=sworkman 2014-03-18 14:30:51 +08:00
JW Wang
3686a061c6 Bug 1000841 - remove SetActive() from MediaDecoderReader. Its user needs to know when to call SetIdle() only. r=cpearce 2014-05-19 04:23:00 +02:00
JW Wang
29269eceea Bug 1004669 - Fix leaks in MediaTaskQueue::Dispatch(). r=cpearce 2014-05-11 20:12:00 +02:00
Chris Pearce
dd04541e2f Bug 1005622 - Reset media queues in Android media seek so that we don't think we're still at EOS after playing to EOS and then seeking. r=edwin 2014-05-07 15:58:06 +12:00
Chris Pearce
69f03e6b1b Bug 1004373 - Prevent multiple ReadMetadata tasks to be dispatched to the decode task queue at once. r=kinetik 2014-05-06 12:12:05 +12:00
Chris Pearce
344cf520f0 Bug 1002266 - Access MediaQueues from MediaDecoderStateMachine through accessors. r=kinetik 2014-04-28 13:12:50 +12:00
Birunthan Mohanathas
eeb9aaaa94 Bug 900908 - Part 3: Change uses of numbered macros in nsIClassInfoImpl.h/nsISupportsImpl.h to the variadic variants. r=froydnj 2014-04-27 03:06:00 -04:00
Matthew Gregan
0a6adc6ba4 Bug 881512 - Remove useless static_casts. r=cajbir 2014-04-22 23:58:00 +12:00
Robert O'Callahan
f9739a4bf5 Bug 998284. When entering the buffering state from AdvanceFrame, be prepared to accept a second's delay before reevaluating whether to exit buffering. r=cpearce 2014-03-25 00:58:11 +13:00
JW Wang
fd95dbaac9 Bug 998168 - nsITimer functions should be only called in the event target thread of the timer. r=cpearce. 2014-04-23 05:29:14 -04:00
JW Wang
88dc921de3 Bug 998168 - add decoder pointer to the log message of MediaDecoderStateMachine/MediaDecoder for debugging. r=cpearce 2014-04-23 05:29:04 -04:00
Chris Pearce
d264e99702 Bug 993753 - Don't set media decoders idle while seeking. r=kinetik 2014-04-15 15:01:34 +12:00
Randell Jesup
6bf64b349a Bug 919215: Drop queued audio data on low-latency startup, make AudioStream::Init() async r=roc,padenot 2014-04-09 15:59:07 -04:00
Andrea Marchesini
5941bddb6f Bug 987064 - Remove AudioChannelType. r=roc, r=mchen, r=bent 2014-04-10 18:39:20 +01:00
Carsten "Tomcat" Book
f6bb1140ed Backed out changeset ac06eacc2206 (bug 987064) for B2G ICS Emulator Debug Bustage on a CLOSED TREE 2014-04-10 13:18:18 +02:00
Andrea Marchesini
a4632b2aa4 Bug 987064 - Remove AudioChannelType, r=roc, r=mchen, r=bent 2014-04-10 11:49:23 +01:00
Michael Pruett
8fab21c28b Bug 847827 - Update libsoundtouch to allow changing playback rate with multichannel audio. r=padenot 2014-04-10 10:37:07 +02:00
Wes Kocher
738dc72e0b Merge m-c to inbound on a CLOSED TREE 2014-04-02 19:54:15 -07:00
JW Wang
c801c3329c Bug 990356 - Part 3: Remove nsRunnable base class from MediaDecoderStateMachine. r=cpearce 2014-04-02 08:51:47 -04:00
JW Wang
a4e1c6a7da Bug 990356 - Part 2: Only one way to dispatch state machine (using a timer) tasks and remove unused variables. r=cpearce 2014-04-02 08:51:47 -04:00
JW Wang
4d2458bfb6 Bug 990356 - Part 1: Remove lazy init of |mTimer| since we need one for most of the case. r=cpearce 2014-04-02 08:51:46 -04:00
Ryan VanderMeulen
b80637b43e Merge inbound to m-c. 2014-04-01 16:45:00 -04:00
JW Wang
c8aaddf862 Bug 980868 - Don't skip video frame when |clock time| is less than |mVideoFrameEndTime| for we are still in the safe range without underruning video frames. r=cpearce 2014-04-01 08:58:55 -04:00
Benjamin Chen
70f953bb8f Bug 984816: RTSP play/pause deadlock issue. 1. Release the monitor when access mReader. 2. Reverse the order in RtspOmxReader::SetIdle(). r=cpearce 2014-03-31 10:18:01 +08:00
Matthew Gregan
8897789e29 Bug 927245 - Remove deprecated Audio Data API implementation. r=cajbir,smaug 2014-04-03 10:53:39 +13:00
Chris Pearce
c8ec1cd0d7 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
72d1c66f73 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
Ed Morley
7c660d34a0 Backed out changeset 00fa39c23b44 (bug 778077) for reftest failures 2014-03-28 12:31:29 +00:00
Chris Pearce
41ff670391 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
6710e3590a 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
1b2dedd8de Bug 631058 - Don't preroll extra media samples when we're not playing. r=cajbir 2014-03-28 15:50:35 +13:00
Chris Pearce
73b32c2026 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
Chris Pearce
18ddcf3219 Bug 984698 - Reduce the amount of audio prerolled when we are not also decoding video in the same file. r=padenot 2014-03-21 11:47:17 +13:00
JW Wang
29f59072c6 Bug 907162 - Fix MediaDecoderStateMachine might dispatch MediaDecoder::PlaybackEnded more than once and trigger multiple 'ended' events in HTMLMediaElement. r=cpearce 2014-03-17 10:12:20 +08:00
Neil Rashbrook
afcb26040f Bug 514280 Stop using nsCOMPtr for concrete types r=bsmedberg 2014-03-18 00:23:03 +00:00
Wes Kocher
5b4557e895 Backed out 2 changesets (bug 514280) for OSX build bustage on a CLOSED TREE
Backed out changeset 2a015b45d808 (bug 514280)
Backed out changeset a01f97c1ed02 (bug 514280)
2014-03-17 15:19:53 -07:00
Neil Rashbrook
91221f71f5 Bug 514280 Stop using nsCOMPtr for concrete types r=bsmedberg 2014-03-17 19:07:09 +00:00
Chris Pearce
3cb84b8909 Bug 982032 - Don't re-run the COMPLETED state in MediaDecoderStateMachine if we've already run it. r=padenot 2014-03-11 18:06:23 +08:00
Chris Pearce
70bc294889 Bug 973408 - Merge logic from UpdateIdleState and enqueueing decode tasks, so that we always behave consistently, especially WRT setting readers Idle on B2G. r=kinetik 2014-03-11 11:44:10 +08:00
Chris Pearce
20e7f810e4 Bug 973408 - Set MediaDecoderReaders idle when they're not decoding. r=kinetik 2014-03-11 11:44:10 +08:00
Chris Pearce
1e8a8b1865 Bug 973408 - Decode video and audio in separate media tasks. r=kinetik 2014-03-11 11:44:09 +08:00
Chris Pearce
f47aca5c47 Bug 973408 - Split innards of MediaDecoderStateMachine::DecodeLoop() into sub DecodeAudio/DecodeVideo functions. r=kinetik 2014-03-11 11:44:09 +08:00