Commit Graph

100 Commits

Author SHA1 Message Date
Benjamin Chen
2455f0ac2b Bug 1050667 - fix the non-synchronous waiting state between MediaDecoderStataMachine and MediaOmxReader and OmxDecoder. r=sotaro 2014-10-06 11:03:14 +08:00
JW Wang
ad8dc6d876 Bug 1051658 - Part 1: Handle AudioSink init failure in MediaDecoderStateMachine. r=kinetik 2014-09-29 17:42:00 -04:00
Ed Morley
3ceaac62c0 Backed out changeset 12a04a66d5c1 (bug 1051658) 2014-09-30 16:48:06 +01:00
JW Wang
078e44875f Bug 1051658 - Part 1 - handle AudioSink init failure in MediaDecoderStateMachine. r=kinetik. 2014-09-29 17:42:00 +02:00
Carsten "Tomcat" Book
2ebd1f258d Backed out changeset 1193525f1f15 (bug 1050667) for causing regressions 2014-09-19 13:22:14 +02:00
Benjamin Chen
d0ee7b0725 Bug 1050667 - fix the non-synchronous waiting state between MediaDecoderStataMachine and MediaOmxReader and OmxDecoder. r=sotaro 2014-09-18 15:28:33 +08:00
Matthew Gregan
c8fbc7df2f Bug 1062101 - Compute WebM frame duration from Δt of last frame. r=cajbir 2014-09-03 17:26:19 +12:00
Ehsan Akhgari
5c071cc02e Bug 1060980 - Fix more bad implicit constructors in the media code; r=roc
--HG--
extra : rebase_source : 14da50f7d2e37e04452445dea575ea4d582e8efd
2014-08-31 23:50:23 -04:00
JW Wang
83bd7810fd Bug 1059052 - centralize state transitions of MediaDecoderStateMachine. r=cpearce 2014-08-28 02:46:00 +02:00
JW Wang
e13b04d3b6 Bug 1054831 - Improve state transition about decoding metadata by removing |mDispatchedDecodeMetadataTask|. r=cpearce
--HG--
extra : rebase_source : 23e040a5d35954e10f65029f5550e4440aeb4117
2014-08-20 23:37:00 -04:00
Chris Pearce
2032523788 Bug 1052378 - Replace stray mIsXXXDecoding fields with IsXXXDecoding() function calls in MediaDecoderStateMachine. r=kinetik 2014-08-13 15:04:19 +12:00
JW Wang
9d6bfe2532 Bug 996465 - Extract code running state machine cycles into a class. r=cpearce 2014-07-11 03:11:00 -04:00
Carsten "Tomcat" Book
056a078091 Backed out changeset bbcfcf00f84e (bug 996465) for bustage on a CLOSED TREE 2014-07-11 09:54:42 +02:00
JW Wang
77fd946c1c Bug 996465 - extract code running state mahcine cycles into a class. r=cpearce. 2014-07-10 03:21:00 +02:00
Shelly Lin
b24483b855 Bug 744896 - Part 3: Pass MediaInfo to functions MetadataLoaded and QueueMetadata. r=roc. 2014-07-04 11:54:54 +08:00
Carsten "Tomcat" Book
0e366174c0 Backed out changeset 7691b13459f4 (bug 744896) for B2G ICS Emulator Opt test failures on a CLOSED TREE 2014-07-03 11:51:41 +02:00
Shelly Lin
05179906ff Bug 744896 - Part 3: Pass MediaInfo to functions MetadataLoaded and QueueMetadata. r=roc. 2014-07-03 14:04:08 +08:00
Chris Pearce
f995f64fd3 Bug 1024405 - Discard enqueued samples when making video decoders dormant. r=kinetik 2014-06-30 11:23:04 +12:00
Matthew Gregan
3357c9afe3 Bug 948269 - Refactor MediaDecoderStateMachine::AudioLoop into a standalone AudioSink class. r=cpearce 2013-12-11 18:03:30 +13:00
JW Wang
ee70b824c2 Bug 1020538 - Fix the position calculation algorithm in MediaDecoderStateMachine::GetVideoStreamPosition(). r=cpearce 2014-06-26 14:56:23 +12:00
Eric Phan
661c2e8d55 Bug 1015985 - Set decoder seekable members outside of ReadMetadata by StateMachine. r=cpearce 2014-06-23 22:08:34 +12:00
Chris Pearce
92ac291127 Bug 979104 - MediaDecoderReader/StateMachine asynchronous decoding. r=kinetik 2014-06-18 17:07:02 +12:00
Ehsan Akhgari
b64a25fc13 Backed out changeset 0cdef46c65c1 (bug 979104) for causing bug 1024324 2014-06-13 16:20:37 -04:00
Karl Tomlinson
1e91de9fa8 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.

--HG--
extra : transplant_source : %3A%AD%5C%1A%84%C3%1BC%8B%04%D5%5B%90%3Cv%BE%A6%D6%C0%9D
2014-06-12 16:44:56 +12:00
Chris Pearce
6efa8303c7 Bug 979104 - MediaDecoderReader/StateMachine asynchronous decoding. r=kinetik 2014-06-10 19:31:09 +12:00
JW Wang
ba4ef49451 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
Chris Pearce
21a6f64f50 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
c4ff2694d4 Bug 1002266 - Access MediaQueues from MediaDecoderStateMachine through accessors. r=kinetik 2014-04-28 13:12:50 +12:00
Matthew Gregan
5cbaa3d53a Bug 881512 - Don't mix refcounting with auto ptr use. Rather than try to hang on to the reader, punch the appropriate holes through via the state machine class. r=cajbir 2014-04-22 23:58:00 +12:00
JW Wang
22158c2aa1 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
Randell Jesup
cec7b451da 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
Wes Kocher
58f74f6ca3 Merge m-c to inbound on a CLOSED TREE 2014-04-02 19:54:15 -07:00
JW Wang
061bca995e Bug 990356 - Part 3: Remove nsRunnable base class from MediaDecoderStateMachine. r=cpearce 2014-04-02 08:51:47 -04:00
JW Wang
ed9bb75a2d 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
Matthew Gregan
5979b051e5 Bug 927245 - Remove deprecated Audio Data API implementation. r=cajbir,smaug 2014-04-03 10:53:39 +13:00
Chris Pearce
e1cae995ac 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
223e397746 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
05dcbf9506 Backed out changeset 00fa39c23b44 (bug 778077) for reftest failures 2014-03-28 12:31:29 +00:00
Chris Pearce
dac6ce38ba 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
e21145ad4a 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
fc3fc91d79 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
dbb0f24d7e Bug 962154 - Use MallocSizeOf to report decoded-video memory. r=cpearce,njn 2014-03-19 14:33:12 -07:00
Chris Pearce
09cf363ca1 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
5e594c8460 Bug 973408 - Set MediaDecoderReaders idle when they're not decoding. r=kinetik 2014-03-11 11:44:10 +08:00
Chris Pearce
fbe154216d Bug 973408 - Decode video and audio in separate media tasks. r=kinetik 2014-03-11 11:44:09 +08:00
Chris Pearce
ae1a9465d2 Bug 973408 - Split innards of MediaDecoderStateMachine::DecodeLoop() into sub DecodeAudio/DecodeVideo functions. r=kinetik 2014-03-11 11:44:09 +08:00
Chris Pearce
deb182976e Bug 973408 - Don't block a decode thread while awaiting resources. r=kinetik 2014-03-11 11:44:09 +08:00
Chris Pearce
197f8f04a4 Bug 973408 - Split DecodeThreadRun() into separate decode tasks. r=kinetik 2014-03-11 11:44:09 +08:00
Chris Pearce
9c847a29a5 Bug 973408 - Remove MediaDecoderStateMachine::GetAmpleVideoFrames(), and MediaOMXStateMachine. r=kinetik 2014-03-11 11:44:08 +08:00
Chris Pearce
f15c1aea78 Bug 973408 - Move MediaDecoderStateMachine::DecodeLoop()'s local variables to class members so the function can be made reentrant in future. r=kinetik 2014-03-11 11:44:08 +08:00