Граф коммитов

487 Коммитов

Автор SHA1 Сообщение Дата
Bryce Van Dyk 939ab2b661 Bug 657791 - Update seekable range handling for cueless WebMs. r=kinetik
MediaDecoder previously had 3 states within GetSeekable(), media is either
seekable, seekable but not supported by transport, or not seekable. Due to
changes to make cueless webms playable, a 4th option is needed: a file that is
not fully seekable, but may support seeking from the transport, such as these
webms, should only be seekable in the buffered range.

MozReview-Commit-ID: ISeFkngtrGU
2016-02-04 17:31:21 +13:00
JW Wang f4472d1237 Bug 1255268 - Replace SeekJob::Steal() with move semantics. r=cpearce.
MozReview-Commit-ID: 3idqNa2MWA9
2016-03-10 15:30:32 +08:00
JW Wang 6788a66e45 Bug 1252767 - Remove MediaDecoderStateMachine::mPendingSeek. r=cpearce. 2016-02-29 17:00:52 +08:00
Bryce Van Dyk 2be9a949c6 Bug 1251460 - MDSM now waits on a promise to enqueue first frame loaded. r=jya
MediaDecoderStateMachine's EnqueueFIrstFrameLoadedEvent would previously call
into MediaDecoderReader to update MDR's buffered ranges and enqueue the frame
loaded event. This commit aims to instead have the buffered update take place,
and only afterwards enqueue the event. This should remove the possibility that
the event will be fired and handled before the update of the buffered ranges has
taken place.

MozReview-Commit-ID: GP8w2nF4xmj

--HG--
extra : transplant_source : %A0m%13%95%E3Gs%ACMd%1F%F4%25%B9qE%28J%21R
2016-03-09 15:32:49 +13:00
JW Wang 2b94f1c475 Bug 1252753. Part 2 - remove MediaDecoderStateMachine::PushFront(). r=kinetik.
MozReview-Commit-ID: 2jtDFI61bGf
2016-03-08 11:20:39 +08:00
JW Wang 1d43d61105 Bug 1253490 - fix the calculation of decodeTime. r=jya.
MozReview-Commit-ID: 6LMH7cQrC02
2016-03-05 09:32:26 +08:00
JW Wang be803477f3 Bug 1252766 - Remove MediaDecoderStateMachine::mDecodeToSeekTarget which is never read. r=kaku.
MozReview-Commit-ID: KAArYtFqUKQ
2016-03-04 10:47:26 +08:00
JW Wang 96be80d2b7 Bug 1252343. Part 2 - remove null checks for mReader which is const and never null. r=bechen.
MozReview-Commit-ID: GfyvA7Kbrcd
2016-03-01 15:21:11 +08:00
JW Wang 504d12bb95 Bug 1252343. Part 1 - make mReader const. r=bechen.
MozReview-Commit-ID: IL0cCd5aUR1
2016-03-01 10:56:19 +08:00
Alastor Wu abde274a94 Bug 1238906 - part2 : notify audible state from MDSM to ME. r=jwwang
--HG--
extra : rebase_source : 74629c314b3d828a5d9b514bf6cca87f7c1f57de
2016-01-21 10:27:38 +08:00
Alastor Wu f8cd6def9a Bug 1238906 - part1 : check whether audio data is audible. r=jwwang
--HG--
extra : rebase_source : 46869a13ba565e0af5413cc2bb387e7c7e0c2df8
2016-01-21 10:19:19 +08:00
Sebastian Hengst 9249e58bdf Backed out 2 changesets (bug 1238906) for bustage in M(2) on OSX and Windows. r=bustage
Backed out changeset e729b30ba7b4 (bug 1238906)
Backed out changeset 1857bca40ac4 (bug 1238906)
2016-01-18 13:11:43 +01:00
Alastor Wu bbcb84cc7b Bug 1238906 - part2 : notify audible state from MDSM to ME. r=jwwang
--HG--
extra : transplant_source : %A6I%CA%AC%95%AD%0C%7D%40K%8C_%8B%3D%15%BC%F7%FB%86%27
2016-01-18 10:50:47 +08:00
Alastor Wu 45303164df Bug 1238906 - part1 : check whether audio data is audible. r=jwwang
--HG--
extra : transplant_source : I%CC%AD%125%872%94%D5%0A%5E%08t%0E%22%F0%A9%7E%1EK
2016-01-18 10:50:35 +08:00
JW Wang 53796b92aa Bug 948267. Part 3 - remove MDSM::AdjustAudioThresholds() to ensure we have enough data for AudioStream::DataCallback() to consume in the audio-only case. Also increase the amount of prerolling audio to 1s (which is the size of the circular buffer of AudioStream) to ensure a smooth start of playback. r=kinetik. 2016-01-12 21:48:25 +08:00
JW Wang 4627500b49 Bug 1237616 - Remove the aForceBuffering arugment from MediaDecoder::Resume(). r=cpearce. 2016-01-12 08:04:32 +08:00
JW Wang 664bc361ba Bug 1237482 - Remove MediaDecoderStateMachine::mStreamSink. r=kikuo. 2016-01-08 15:52:12 +08:00
JW Wang 93bb6f7b7d Bug 1234424. Part 2 - remove unused code. r=roc. 2016-01-05 21:15:43 +08:00
JW Wang f7894b21a7 Bug 1233650. Part 3 - move creation of OutputStreamManager from DecodedStream to MDSM. r=roc. 2015-12-24 10:14:16 +08:00
JW Wang 2713c37af6 Bug 1233630 - Remove MediaDecoderStateMachine::AudioDecodedUsecs. r=kikuo. 2015-12-24 10:00:47 +08:00
JW Wang 38684677a2 Bug 1231091. Part 1 - Add mVideoCompleted so MDSM can check when audio/video is done rendering. This removes the only caller of DecodedStream::IsFinished(). r=roc. 2015-12-22 08:42:38 +08:00
JW Wang 84171dfe8c Bug 1230004. Part 2 - have MDSM::BeginShutdown return a promise and remove MDSM::mDecoder. r=cpearce. 2015-12-03 15:59:44 +08:00
JW Wang a62c25461b Bug 1230004. Part 1 - cache data in MDSM so it won't need to ask MediaDecoder. r=cpearce. 2015-12-03 15:59:30 +08:00
JW Wang e4cbe0c128 Bug 1228939 - 1. add mSeekable to MediaInfo. 2. use MediaEventSource to notify the decoder when the media is not seekable. 3. remove unused code. r=jya. 2015-12-02 15:42:32 +08:00
JW Wang f304127126 Bug 1228923 - Merge some MediaEventSource for MDSM. r=jya. 2015-12-01 09:34:02 +08:00
JW Wang 6e21f29356 Bug 1227797 - Use MediaEventSource to publish playback events for MDSM. r=jya. 2015-11-30 13:06:19 +08:00
JW Wang 328ebd72a1 Bug 1226569. Part 1 - Use MediaEventSource to publish MetadataLoaded and FirstFrameLoaded events. r=jya. 2015-11-23 10:35:18 +08:00
JW Wang 518cc44e44 Bug 1219142. Part 2 - remove unused code. r=jya. 2015-11-18 09:01:01 +08:00
sajitk 582e1a55fa Bug 1219480 - Replace PRLogModuleInfo with LazyLogModule in the media directory. r=rillian 2015-11-15 14:49:01 +01:00
JW Wang 8dedbfa33d Bug 1223599 - Remove the throttling argument from AbstractMediaDecoder::NotifyDataArrived(). r=jya. 2015-11-11 17:59:16 +08:00
Wes Kocher f3a9eb2a26 Backed out changeset 1e5f3d1151d6 (bug 1219480) for cpp unittest bustage CLOSED TREE
--HG--
extra : commitid : BMVKq6cPeho
2015-11-11 09:36:56 -08:00
sajitk 3cbe348cdd Bug 1219480 - Replace PRLogModuleInfo with LazyLogModule in the media directory. r=rillian
--HG--
extra : rebase_source : c73098485fa005d914304fb6e7f8eba3c15e66dc
2015-11-11 06:52:00 +01:00
JW Wang 4f2d0e76bc Bug 1220558. Part 1 - remove unused arguments from MediaDecoderReader::DispatchNotifyDataArrived() and its callees/callers. r=jya. 2015-11-11 07:43:38 +08:00
JW Wang ea5e45da36 Bug 1219169. Part 2 - move MediaDecoderStateMachine::OnTaskQueue() to private. r=jya. 2015-11-02 10:36:50 +08:00
Jean-Yves Avenard 16d89e70eb Bug 1207198: P2. Defer dormant request while ReadMetadata is pending in MDSM. r=sotaro 2015-10-23 23:34:06 +11:00
James Cheng f01266ed3f Bug 1194606 - Make MediaDecoderStateMachine capable of requesting different kind (decoded/raw) of media data. r=jya 2015-10-20 05:33:00 -04:00
Kilik Kuo 1f68a3c545 Bug 1194918 - Move av-sync and video frame rendering logic from MDSM to VideoSink. r=jwwang. 2015-10-19 18:08:11 +08:00
Kilik Kuo 12f5e4fabf Bug 1194918 - Add VideoSink which contains either AudioSinkWrapper or DecodedStreamSink as a default operating MediaSink in MDSM. r=jwwang. 2015-10-19 17:32:16 +08:00
Nathan Froyd 01583602a9 Bug 1207245 - part 6 - rename nsRefPtr<T> to RefPtr<T>; r=ehsan; a=Tomcat
The bulk of this commit was generated with a script, executed at the top
level of a typical source code checkout.  The only non-machine-generated
part was modifying MFBT's moz.build to reflect the new naming.

CLOSED TREE makes big refactorings like this a piece of cake.

 # The main substitution.
find . -name '*.cpp' -o -name '*.cc' -o -name '*.h' -o -name '*.mm' -o -name '*.idl'| \
    xargs perl -p -i -e '
 s/nsRefPtr\.h/RefPtr\.h/g; # handle includes
 s/nsRefPtr ?</RefPtr</g;   # handle declarations and variables
'

 # Handle a special friend declaration in gfx/layers/AtomicRefCountedWithFinalize.h.
perl -p -i -e 's/::nsRefPtr;/::RefPtr;/' gfx/layers/AtomicRefCountedWithFinalize.h

 # Handle nsRefPtr.h itself, a couple places that define constructors
 # from nsRefPtr, and code generators specially.  We do this here, rather
 # than indiscriminantly s/nsRefPtr/RefPtr/, because that would rename
 # things like nsRefPtrHashtable.
perl -p -i -e 's/nsRefPtr/RefPtr/g' \
     mfbt/nsRefPtr.h \
     xpcom/glue/nsCOMPtr.h \
     xpcom/base/OwningNonNull.h \
     ipc/ipdl/ipdl/lower.py \
     ipc/ipdl/ipdl/builtin.py \
     dom/bindings/Codegen.py \
     python/lldbutils/lldbutils/utils.py

 # In our indiscriminate substitution above, we renamed
 # nsRefPtrGetterAddRefs, the class behind getter_AddRefs.  Fix that up.
find . -name '*.cpp' -o -name '*.h' -o -name '*.idl' | \
    xargs perl -p -i -e 's/nsRefPtrGetterAddRefs/RefPtrGetterAddRefs/g'

if [ -d .git ]; then
    git mv mfbt/nsRefPtr.h mfbt/RefPtr.h
else
    hg mv mfbt/nsRefPtr.h mfbt/RefPtr.h
fi

--HG--
rename : mfbt/nsRefPtr.h => mfbt/RefPtr.h
2015-10-18 01:24:48 -04:00
JW Wang 1cc6677a90 Bug 1214065 - Remove unused arguments from MediaDecoder::Load() and its friends. r=kinetik. 2015-10-14 11:46:27 +08:00
Kilik Kuo 3b7a3980ff Bug 1213897 - Extract DelayedScheduler out of MDSM to a common class. r=jwwang
--HG--
extra : rebase_source : 5408c282a678fe060d24138eccbe34cf99c8c929
2015-10-13 15:39:01 +08:00
JW Wang 701c985137 Bug 1212701. Part 2 - remove MediaDecoderStateMachine::OnDecodeTaskQueue() which is unused. r=jya. 2015-10-12 12:05:52 +08:00
Kilik Kuo 67185f564b Bug 1211364 - Check frame validity earlier when decoded frames arrive in MDSM. r=jwwang
Rebase to currnet truck

--HG--
extra : transplant_source : %EEOW%D8%0D%9B%C8%F5%90%DB0%0E%BFXgX%98%F4%14%A2
2015-10-07 14:52:05 +08:00
JW Wang 39fbfc7425 Bug 1208934 - Remove usage of decoder monitor from MDSM. r=kinetik. 2015-10-06 10:26:33 +08:00
JW Wang 7435f302de Bug 1209864. Part 1 - make all methods run on the main thread and remove usage of the decoder monitor. r=roc. 2015-09-27 21:37:48 +08:00
JW Wang fd23a5e794 Bug 1208933 - Remove AbstractMediaDecoder::NotifyWaitingForResourcesStatusChanged(). r=jya. 2015-09-27 21:02:18 +08:00
JW Wang 0bb44154c7 Bug 1208932 - Remove ReadMetadataFailureReason::WAITING_FOR_RESOURCES. r=jya. 2015-09-27 20:48:09 +08:00
JW Wang 395e17fb4f Bug 1208922. Part 3 - forward the CDMProxy from MediaDecoder to MediaDecoderReader via MDSM. r=cpearce. 2015-09-27 18:48:59 +08:00
JW Wang 5eb5527e50 Bug 1188643. Buffer more audio in audio capture mode to avoid glitches. r=cpearce. 2015-09-30 10:32:49 +08:00
Nigel Babu 99377b8efb Backed out changeset dcbabf6ce153 (bug 1188643) for linux crashtest bustage 2015-09-24 12:31:20 +05:30
JW Wang bd37364bb2 Bug 1188643. Buffer more audio in audio capture mode to avoid glitches. r=cpearce. 2015-09-24 14:20:38 +08:00
JW Wang 4395bf4e9d Bug 1206607 - Remove some dead code from MDSM. r=kinetik. 2015-09-22 13:55:55 +08:00
JW Wang aeb8ca2f81 Bug 1206578 - Group public and private functions respectively for MDSM. r=gsquelart. 2015-09-22 11:03:08 +08:00
JW Wang 5d35a74e15 Bug 1206576 - Dispatch some MDSM functions to hide its internal thread model. r=jya. 2015-09-21 14:01:45 +08:00
JW Wang 9fd579e930 Bug 1204430. Part 2 - mirror MediaDecoder::mMediaSeekable. r=kinetik. 2015-09-21 13:49:01 +08:00
JW Wang 6064385135 Bug 1172830 - Move buffering check out of MediaDecoderStateMachine::UpdateRenderedVideoFrames(). r=cpearce. 2015-09-15 17:47:26 +08:00
JW Wang 0f170dcc0b Bug 1203877 - Remove MediaDecoder::UpdatePlaybackOffset. r=kinetik. 2015-09-15 13:51:12 +08:00
JW Wang 85ea4009c2 Bug 1203418. Part 2 - duplicate the implementation of MediaDecoder::GetStatistics so MDSM can call it on its own thread. r=cpearce. 2015-09-15 10:04:50 +08:00
James Cheng 6930bc717c Bug 1203047 - Make MediaDecoderReader know less about AudioData/VideoData by using MediaData instead. r=jya
--HG--
extra : rebase_source : 928721bb5a8669445725cab86e43be002f38c88a
2015-09-10 03:06:00 +02:00
JW Wang 57b5b58c47 Bug 1203374. Part 2 - duplicate the implementation of MediaDecoder::CanPlayThrough so MDSM can call its own CanPlayThrough() on its own thread. r=jya. 2015-09-10 16:40:52 +08:00
JW Wang baa34189c7 Bug 1202540 - Remove MDSM::mPlayStartTime. r=kinetik. 2015-09-10 11:31:30 +08:00
JW Wang 857b5c3055 Bug 1202351 - Remove MDSM::mPlayDuration. r=cpearce. 2015-09-10 10:19:42 +08:00
JW Wang 02c6ac3fac Bug 1199562. Part 3 - remove unused code. r=roc. 2015-09-09 10:12:46 +08:00
JW Wang 0bb28ba8f7 Bug 1199562. Part 2 - replace usage of mStreamSink with mMediaSink in most cases. r=roc. 2015-09-09 10:12:35 +08:00
JW Wang ae888fb383 Bug 1199562. Part 1 - rename mAudioSink to mMediaSink as well as related member names. r=roc. 2015-09-09 10:12:23 +08:00
JW Wang 246dd8805c Bug 1199155. Part 3 - rename mDecodedStream to mStreamSink. r=roc. 2015-09-07 19:32:16 +08:00
JW Wang b853505d1f Bug 1199155. Part 2 - fix includes and forward declarations. r=roc. 2015-09-07 19:32:04 +08:00
JW Wang e6b2fb5ebf Bug 1199121. Part 3 - remove unused code. r=kinetik. 2015-09-07 11:58:27 +08:00
JW Wang 7cab08fca3 Bug 1195158. Part 4 - remove unused code. r=cpearce. 2015-09-07 11:39:16 +08:00
JW Wang 09c4ea2b2e Bug 1195158. Part 3 - connect listeners. r=cpearce.
a. MediaMetadataManager is connected to MediaDecoderReader::mTimedMetadataEvent to receive TimedMetadata events.
b. OggReader publish TimedMetadata events through MediaDecoderReader::mTimedMetadataEvent.
c. MDSM calls MediaMetadataManager::DispatchMetadataIfNeeded to publish metadata if playback positoin reaches the publish time.
d. MediaDecoder is connected to MediaMetadataManager::mTimedMetadataEvent to receive TimedMetadata events.
e. MediaDecoder updates its metadata when TimedMetadata events are received.
2015-09-07 11:38:34 +08:00
JW Wang e9850bb954 Bug 1199104. Part 3 - use AudioSinkWrapper in MDSM. r=kinetik. 2015-09-02 14:14:40 +08:00
JW Wang 9d43df8088 Bug 1196112 - Part 1: Ensure all members except |mShuttingDown| and |mOutputStreamManager| are accessed on the worker thread only. r=roc
--HG--
extra : source : c678e1317fa0b592169260b7e98a8985abc267ec
2015-08-24 21:05:22 +08:00
Ryan VanderMeulen 0dd8afde85 Backed out changesets b2eb913e58c9 and c678e1317fa0 (bug 1196112) for suspicion of causing bug 1197977. 2015-08-24 16:44:14 -04:00
JW Wang 49cb8ddb20 Bug 1196112. Part 1 - ensure all members except |mShuttingDown| and |mOutputStreamManager| are accessed on the worker thread only. r=roc. 2015-08-24 21:05:22 +08:00
JW Wang 0cee44c98f Bug 1195632. Part 2 - Have DecodedStream listen to push events of the media queues and call SendData() on its own without the help of MDSM. r=roc. 2015-08-24 10:04:21 +08:00
Matt Woodrow ec61d0727e Bug 1196417 - Make video software fallback only affect the current video instead of the entire browser. r=cpearce 2015-08-20 11:43:36 -04:00
Matt Woodrow e2765944f2 Bug 1196408 - Make sure we only report a corrupt/slow video frame once. r=cpearce 2015-08-20 11:39:49 -04:00
JW Wang c56be9724a Bug 1195185. Part 3 - align the life cycle of mData with {Start,Stop}Playback. r=roc. 2015-08-20 13:02:43 +08:00
Kilik Kuo 0581340a0a Bug 1188268 - Make AudioSink a base class, create DecodedAudioDataSink to act as original AudioSink, and move sink-related files to dom/media/mediasink. r=jwwang, r=cpearce
--HG--
rename : dom/media/AudioSink.cpp => dom/media/mediasink/DecodedAudioDataSink.cpp
rename : dom/media/AudioSink.h => dom/media/mediasink/DecodedAudioDataSink.h
2015-08-18 11:55:01 +08:00
Sebastian Hengst a133c6114b Backed out changesets 7610baf4a3ae, 6226b99f19bd, 157e41e32906, 60a3b1862f71 (bug 1195158). r=backout
Backed out changeset 7610baf4a3ae (bug 1195158)
Backed out changeset 6226b99f19bd (bug 1195158)
Backed out changeset 157e41e32906 (bug 1195158)
Backed out changeset 60a3b1862f71 (bug 1195158)
2015-08-18 10:52:09 +02:00
JW Wang b47fc2fd4d Bug 1195158. Part 4 - remove unused code. r=cpearce. 2015-08-18 11:12:39 +08:00
JW Wang c024260362 Bug 1195158. Part 3 - connect listeners. r=cpearce.
a. MediaMetadataManager is connected to MediaDecoderReader::mTimedMetadataEvent to receive TimedMetadata events.
b. OggReader publish TimedMetadata events through MediaDecoderReader::mTimedMetadataEvent.
c. MDSM calls MediaMetadataManager::DispatchMetadataIfNeeded to publish metadata if playback positoin reaches the publish time.
d. MediaDecoder is connected to MediaMetadataManager::mTimedMetadataEvent to receive TimedMetadata events.
e. MediaDecoder updates its metadata when TimedMetadata events are received.
2015-08-18 11:12:39 +08:00
JW Wang 64e94fc75e Bug 1191696. Part 1 - Handle the promise returned by DecodedStream::StartPlayback in MDSM. r=roc. 2015-08-17 07:52:28 +08:00
Aryeh Gregor 15205c18ac Bug 1179451 - Part 4: Don't pass nsRefPtr&& to functions that want raw pointers. r=froydnj
--HG--
extra : rebase_source : d25c43a593a72615259e39ae053376f261aa55ad
2015-08-13 15:22:48 +03:00
JW Wang 42dfd9d8d2 Bug 1191192 - Add DecodedStream::SetSameOrigin(). r=roc. 2015-08-13 09:22:59 +08:00
JW Wang 3a7d265755 Bug 1193603. Part 2 - Fix miscalculation in converting micro seconds to seconds. r=jya. 2015-08-12 18:02:34 +08:00
Alfredo Yang e99d63e741 Bug 1192694: remove mDecodingFrozenAtStateDecoding so decoder can leave dormant normally. r=jwwang 2015-08-11 21:23:41 +10:00
JW Wang c8f63ccc7b Bug 1191684 - Remove unnecessary calls to NotifyAll() on the decoder monitor since no one calls Wait(). r=cpearce. 2015-08-10 09:54:48 +08:00
JW Wang c1624b854e Bug 1191173 - Mirror MediaDecoder::mSameOriginMedia in MDSM. r=jya. 2015-08-06 18:05:30 +08:00
JW Wang c13d97710a Bug 1188257 - Use MediaEventSource for MediaQueue to do the job. r=cpearce. 2015-08-06 10:14:15 +08:00
Kilik Kuo a3e974ad80 Bug 1186367 - Make MDSM more ignorant of AudioData/VideoData via using MediaQueue<MediaData> instead. r=jwwang 2015-07-28 00:21:33 +08:00
Paul Adenot f7bb3fd5bd Bug 1156472 - Part 7 - Allow to un-capture an HTMLMediaElement. r=pehrsons,jwwang 2015-07-24 14:28:17 +02:00
Jean-Yves Avenard b7937eabbd Bug 1185972: P2. Refactor handling of first frame decoded. r=jwwang 2015-07-27 14:52:20 +10:00
Jean-Yves Avenard afb92e8070 Bug 1185972: P1. Remove DECODER_STATE_DECODING_FIRSTFRAME state. r=jwwang
We want to be able to process the steps following decoding of the first frame
independent of a state.
2015-07-27 14:52:16 +10:00
Wes Kocher 83b4188234 Backed out 14 changesets (bug 1156472) for test_getUserMedia_audioCapture.html failures on b2g emulator
Backed out changeset deec8eb18346 (bug 1156472)
Backed out changeset 0f5bec4c05ba (bug 1156472)
Backed out changeset 2dd83ac00bf9 (bug 1156472)
Backed out changeset abd4e47887f7 (bug 1156472)
Backed out changeset 4824d9874663 (bug 1156472)
Backed out changeset 12805598e6fa (bug 1156472)
Backed out changeset e2f0062a1f67 (bug 1156472)
Backed out changeset 99ef8e436a7f (bug 1156472)
Backed out changeset 65bbfc1546af (bug 1156472)
Backed out changeset 2ab4f16eaf0a (bug 1156472)
Backed out changeset 7f565685e20a (bug 1156472)
Backed out changeset 28c03c98cb2b (bug 1156472)
Backed out changeset d477cfba6e1d (bug 1156472)
Backed out changeset 9819fa56caa1 (bug 1156472)
2015-07-24 13:15:57 -07:00
Paul Adenot 62ea7fce4b Bug 1156472 - Part 7 - Allow to un-capture an HTMLMediaElement. r=pehrsons,jwwang 2015-07-24 14:28:17 +02:00
Carsten "Tomcat" Book 2b73aa4f63 Backed out 14 changesets (bug 1156472) for bustage on a CLOSED TREE
Backed out changeset 2ddbf85a42c0 (bug 1156472)
Backed out changeset 306d02e17081 (bug 1156472)
Backed out changeset 03598139f39a (bug 1156472)
Backed out changeset 4b1e6069b598 (bug 1156472)
Backed out changeset 6c588a5eaaec (bug 1156472)
Backed out changeset 8c98d7beaea7 (bug 1156472)
Backed out changeset fbf59fbb5875 (bug 1156472)
Backed out changeset 66479dd9eed9 (bug 1156472)
Backed out changeset c8502deeed33 (bug 1156472)
Backed out changeset 1a60ff1149a1 (bug 1156472)
Backed out changeset af1638279785 (bug 1156472)
Backed out changeset 8210276a98ca (bug 1156472)
Backed out changeset 13730e7c5997 (bug 1156472)
Backed out changeset 05acb71cf981 (bug 1156472)
2015-07-24 17:08:37 +02:00
Paul Adenot 27a91916bf Bug 1156472 - Part 7 - Allow to un-capture an HTMLMediaElement. r=pehrsons,jwwang 2015-07-24 14:28:17 +02:00
JW Wang 5e7af1298a Bug 1186358. Part 1 - Remove dependency on MediaDecoderStateMachine from AudioSink. r=kinetik. 2015-07-23 19:57:58 +08:00
JW Wang 471bfe30cd Bug 1184874. Part 3 - call mDecoder->UpdatePlaybackOffset in On{Audio,Video}Popped and remove MediaDecoderStateMachine::DispatchOnPlaybackOffsetUpdate. r=cpearce. 2015-07-23 14:14:16 +08:00
JW Wang 71a3144556 Bug 1184874. Part 2 - add the ability to know which item is popped from the MediaQueue. r=cpearce. 2015-07-23 14:12:28 +08:00
JW Wang b26158dcc9 Bug 1185407. Part 2 - remove unused code. r=kinetik. 2015-07-22 09:54:13 +08:00
JW Wang 584f4131cd Bug 1185407. Part 1 - have AudioSink::Init() return a promise. r=kinetik. 2015-07-22 09:54:06 +08:00
Jean-Yves Avenard 079afae27a Bug 1177452: Ensure start time is always calculated on first frame decoding. r=jwwang 2015-07-21 10:14:48 +10:00
JW Wang 0440c725fd Bug 1183518. Part 1 - move calls to mResource->SetReadMode out of Mediadecoder::{Start,Stop}ProgressUpdates since they are not related to progress update. r=roc. 2015-07-20 14:29:10 +08:00
Bobby Holley 04eaf4c167 Bug 1184634 - Move various includes into the mozilla namespace. r=gerald
I did my a quick best-effort pass to fix up the most egregious ordering
problems. I left some big pre-existing messes alone.
2015-07-16 22:23:18 -07:00
Bobby Holley 997543e6ba Bug 1184634 - Rename MediaTaskQueue to TaskQueue. r=gerald 2015-07-16 22:23:06 -07:00
Bobby Holley 78001ffc43 Bug 1184634 - Rename "TaskQueue()" accessor to "OwnerThread()". r=gerald
Otherwise this name will collide with the rename of MediaTaskQueue to TaskQueue.
It's also a better naming convention, because it generalizes to things that are
owned by an AbstractThread that is not a Task Queue.

We rename to Queue() in TestMozPromise, because that's more accurate.
2015-07-16 22:22:07 -07:00
Bobby Holley 407d2c5f90 Bug 1184634 - Rename MediaPromise to MozPromise. r=gerald 2015-07-16 22:21:56 -07:00
JW Wang ca9b1829a7 Bug 1184010 - Put Mirrors/Canonicals together. r=jya. 2015-07-17 13:00:26 +08:00
JW Wang 3b86e653ba Bug 1184412. Part 2 - remove code that is not used anymore. r=roc. 2015-07-17 10:18:15 +08:00
JW Wang 0f6631a522 Bug 1183007. Part 1 - provide a wrapper function so that all read from mAudioEndTime must be through MDSM::AudioEndTime(). r=kinetik. 2015-07-16 10:12:52 +08:00
JW Wang 201b1cf54b Bug 1182738. Part 2 - remove MediaDecoderStateMachine::mStreamStartTime. 2015-07-11 17:20:32 +08:00
Birunthan Mohanathas a8939590de Bug 1182996 - Fix and add missing namespace comments. rs=ehsan
The bulk of this commit was generated by running:

  run-clang-tidy.py \
    -checks='-*,llvm-namespace-comment' \
    -header-filter=^/.../mozilla-central/.* \
    -fix
2015-07-13 08:25:42 -07:00
JW Wang e1c3e55cb9 Bug 1181504. Part 2 - remove MediaDecoderStateMachine::mAudioStartTime. r=kinetik. 2015-07-09 11:07:57 +08:00
Robert O'Callahan a24f6175bf Bug 1143575. Refactor UpdateRenderedVideoFrames to support pushing multiple frames from the VideoQueue to the ImageContainer. r=cpearce
--HG--
extra : commitid : LPVtm9Br1v6
extra : rebase_source : 6772fe21e7bc1c875a4c88eb2d2debf65fb6d2c6
2015-07-03 19:33:56 +12:00
Robert O'Callahan b5074af667 Bug 1143575. Keep currently-rendered frame at the front of the video queue. r=cpearce
This makes normal playback consistent with the buffering state, which already
does this. We'll also need this when we handle multiple images, because then
we need to hande the entire queue of images to the ImageContainer without
pulling any of them off the queue.

--HG--
extra : commitid : B1zt05nhVn6
extra : rebase_source : af8a411f5f9be9d3a8c15633b2c4ad446be6d13f
2015-07-03 19:29:30 +12:00
Robert O'Callahan f0ee5f8918 Bug 1143575. Make GetClock return a TimeStamp as well as the stream time. r=cpearce
This makes MediaDecoderStateMachine::GetVideoStreamPosition compute a
time that's more consistent with the audio clock.

--HG--
extra : commitid : JWQlELWFpTu
extra : rebase_source : 7c472cfd5188f5a948af16b734c25ddeed3651f8
2015-03-30 13:40:06 +13:00
Robert O'Callahan 52c7e44c24 Bug 1143575. Rename AdvanceFrame to UpdateRenderedVideoFrames. r=cpearce
--HG--
extra : commitid : K6557ZbFFzs
extra : rebase_source : 3409058bbbb2ef281ea943d4b92f348a5e7b8e2b
2015-03-30 11:54:58 +13:00
JW Wang 47ae1e0f35 Bug 1179665. Part 4 - remove MDSM::RecreateDecodedStream() which runs on the main thread and doesn't fit into the thread model of MDSM. r=roc. 2015-07-06 11:36:26 +08:00
JW Wang 96f57cac6e Bug 1179665. Part 3 - move code about sending stream data into DecodedStream. r=roc. 2015-07-06 11:36:15 +08:00
Bobby Holley 7ff89b25af Bug 1178938 - Mirror shutdown-ness from the MDSM to the MD. r=jww 2015-07-02 12:38:44 -07:00
JW Wang 2d5b045c93 Bug 1178718. Part 2 - No need to acquire the monitor in BreakCycles(). r=roc. 2015-07-02 13:39:11 +08:00
Bobby Holley 2324e58fb3 Bug 1178437 - Do the dormant-enabled tracking on the main thread. r=jww,r=jya
This is purely a question of policy, so there's no reason it needs to live on
the off-main-thread decoding machinery.
2015-07-01 18:47:41 -07:00
Bobby Holley f3eac770a7 Bug 1178437 - Make mRealTime const and allow it to be accessed on any thread. r=jww 2015-07-01 18:46:59 -07:00
Bobby Holley c1640b0839 Bug 1178437 - Dispatch SetFragmentEndTime. r=jww 2015-07-01 18:46:58 -07:00
Bobby Holley 0f58065114 Bug 1178437 - Assert OnTaskQueue for most of the remaining MDSM methods. r=jww 2015-07-01 18:46:57 -07:00
Bobby Holley 3985c88eb7 Bug 1175768 - Throttle NotifyDataArrived. r=jya 2015-06-27 01:19:14 -07:00
Bobby Holley a80e87862b Bug 1175768 - Use mirroring for buffered ranges. r=jya 2015-06-27 01:19:13 -07:00
Bobby Holley f25ea07acc Bug 1175768 - Dispatch NotifyDataArrived and remove the aBuffer argument. r=jya
It would be nice to remove the argument in a separate patch, but we can't
perform MediaResource reads on the main thread, so the SilentReadAt stuff
needs to happen at the same time as the off-main-thread stuff.
2015-06-27 01:19:10 -07:00
Ryan VanderMeulen d9ca5de3ed Backed out 8 changesets (bug 1175768) for frequent media test failures.
Backed out changeset a369cfb95b59 (bug 1175768)
Backed out changeset e02dd312d622 (bug 1175768)
Backed out changeset 6776ce74b9e5 (bug 1175768)
Backed out changeset 6aa5fa1d318e (bug 1175768)
Backed out changeset a8bd7a0d2aea (bug 1175768)
Backed out changeset 41ffc9a9ac48 (bug 1175768)
Backed out changeset 2d2cefa397dc (bug 1175768)
Backed out changeset 4e06368496d2 (bug 1175768)

CLOSED TREE
2015-06-23 16:20:15 -04:00
Bobby Holley 6925b1f100 Bug 1175768 - Throttle NotifyDataArrived. r=jya 2015-06-22 22:53:09 -07:00
Bobby Holley 5c20ea36aa Bug 1175768 - Use mirroring for buffered ranges. r=jya 2015-06-22 22:53:09 -07:00
Bobby Holley 23c16e6894 Bug 1175768 - Dispatch NotifyDataArrived and remove the aBuffer argument. r=jya
It would be nice to remove the argument in a separate patch, but we can't
perform MediaResource reads on the main thread, so the SilentReadAt stuff
needs to happen at the same time as the off-main-thread stuff.
2015-06-22 22:53:07 -07:00
Bobby Holley 56a6ea9edb Bug 1172264 - Mirror duration from the MDSM to the MediaDecoderReader and remove MDSM::GetDuration. r=jww 2015-06-17 09:49:10 -07:00
Bobby Holley 2aa4ae8328 Bug 1172264 - Mirror duration from the MDSM to the MediaDecoder. r=jww 2015-06-17 09:49:09 -07:00
Bobby Holley 00c310dcf2 Bug 1172264 - Track the MDSM's duration as a TimeUnit and eliminate the separate concept of 'end time'. r=jww 2015-06-17 09:49:08 -07:00
Bobby Holley 32845f3c94 Bug 1163223 - Remove MediaDecoderStateMachine::mStartTime. r=jww CLOSED TREE 2015-06-16 15:08:45 -07:00
Bobby Holley 2a547c5961 Bug 1163223 - Be more explicit about when we notify metadata. r=jww 2015-06-16 15:08:34 -07:00
Bobby Holley d9860a80b4 Bug 1163223 - Introduce StartTimeRendezvous and route samples through it. r=jww
No sample adjusting is done yet - this just makes the data available.
2015-06-16 15:08:30 -07:00
Bobby Holley 89519087bc Bug 1163223 - Move bailout case in GetBuffered into the readers. r=jww
The problem here is that, because we run mReader->SetStartTime() as a promise
callback, MDSM::HasStartTime() may be true while the reader hasn't been
notified yet. This is obviously broken, but no more broken than the fact that
GetBuffered operates synchronously (and is basically the last piece of
machinery left doing so). Fixing that is next on my list, but let's just hack
around this for now to get this stack landed.
2015-06-16 15:08:29 -07:00
Wes Kocher f45cfb1d2d Backed out 8 changesets (bug 1163223) for getting in the way of me backing out f46a712edf7e
Backed out changeset c1b33c43f0c5 (bug 1163223)
Backed out changeset a7ee6eb45f62 (bug 1163223)
Backed out changeset b2e10f194455 (bug 1163223)
Backed out changeset 9e7651567cad (bug 1163223)
Backed out changeset 20e25e93ed5f (bug 1163223)
Backed out changeset 5193508738f8 (bug 1163223)
Backed out changeset aea6b8d15318 (bug 1163223)
Backed out changeset 7b6804398fc3 (bug 1163223)
2015-06-16 14:47:50 -07:00
Bobby Holley c202ec98d9 Bug 1163223 - Remove MediaDecoderStateMachine::mStartTime. r=jww 2015-06-16 13:00:00 -07:00
Bobby Holley ad9440ac9d Bug 1163223 - Be more explicit about when we notify metadata. r=jww 2015-06-16 12:59:59 -07:00
Bobby Holley 06087fe59c Bug 1163223 - Introduce StartTimeRendezvous and route samples through it. r=jww
No sample adjusting is done yet - this just makes the data available.
2015-06-16 12:59:57 -07:00
Bobby Holley 593a76d612 Bug 1163223 - Move bailout case in GetBuffered into the readers. r=jww
The problem here is that, because we run mReader->SetStartTime() as a promise
callback, MDSM::HasStartTime() may be true while the reader hasn't been
notified yet. This is obviously broken, but no more broken than the fact that
GetBuffered operates synchronously (and is basically the last piece of
machinery left doing so). Fixing that is next on my list, but let's just hack
around this for now to get this stack landed.
2015-06-16 12:59:56 -07:00
JW Wang 1fe912e2ec Bug 1173289 - Remove WakeDecoderRunnable from MDSM. r=roc. 2015-06-07 16:29:56 +08:00
Bobby Holley c2bf6e7564 Bug 1173001 - Fix up some task queue naming to make MediaDecoderReader consistent with MDSM. r=jww 2015-06-10 14:17:26 -07:00
JW Wang 74023554af Bug 1172778 - Update readyState when audio samples are popped by AudioSink. r=cpearce. 2015-06-10 10:55:56 +08:00
JW Wang 517b465023 Bug 1172390 - Align stream blocking of decoded stream with play state of MDSM. r=roc. 2015-06-08 16:51:39 +08:00
Bobby Holley aa6c9ce796 Bug 1160695 - Drop Support for Content-Duration. r=cpearce 2015-06-08 09:22:46 -07:00
Bobby Holley 8bdb81bbd6 Bug 1160695 - Clean up SetDuration and remove negative duration case. r=jww 2015-06-08 09:22:40 -07:00
Bobby Holley 5d37b9d6aa Bug 1160695 - Track observed duration separately. r=jww 2015-06-08 09:22:39 -07:00
Bobby Holley 6af84ec47e Bug 1160695 - Track demuxer-estimated duration separately. r=jww 2015-06-08 09:22:37 -07:00
Bobby Holley 54cc593e26 Bug 1160695 - Track explicit (mediasource) duration separately. f=jww,rpending=jya 2015-06-08 09:22:28 -07:00
Bobby Holley f83f94efbb Bug 1160695 - Track "metadata duration" separately and mirror it to MediaDecoderReader. r=jww 2015-06-08 09:21:22 -07:00
Bobby Holley 1893956886 Bug 1160695 - Track "network duration" separately and mirror it to the MDSM. r=jww 2015-06-08 09:21:20 -07:00
JW Wang fb26695226 Bug 1162381. Part 2 - refactor DecodedStreamData::mInitialTime to be consistent with AudioSink when computing stream position. r=roc. 2015-06-08 16:51:36 +08:00
JW Wang a17e6e3483 Bug 1172387 - Clean up code of MediaDecoderStateMachine::StopAudioThread. r=kinetik. 2015-06-08 11:27:22 +08:00
Bobby Holley 80857671e7 Bug 1168008 - Replace 'Consumer' with 'Request' in MediaPromise naming. r=jww
I think this makes more sense, and it matches the naming convention that all
of the consumers of this stuff are actually using.
2015-05-28 16:03:10 -07:00
Bobby Holley 15e573e813 Bug 1168008 - Get rid of RefableThen and make Then return an nsRefPtr<Consumer>. r=jww
This incurs an extra addref here and there, but I think it makes the API simpler
to use and understand.
2015-05-28 16:03:06 -07:00
JW Wang 341b29f73c Bug 1163467. Part 6 - refactor MediaDecoder::AddOutputStream and move related code to MediaDecoderStateMachine. r=roc. 2015-05-28 14:17:30 +08:00
JW Wang 66e3c00ee3 Bug 1163467. Part 5 - move MediaDecoder::UpdateStreamBlockingForPlayState to MediaDecoderStateMachine. r=roc. 2015-05-28 14:16:59 +08:00
JW Wang f6643b3d27 Bug 1163467. Part 4 - move MediaDecoder::UpdateStreamBlockingForStateMachinePlaying to MediaDecoderStateMachine. r=roc. 2015-05-28 14:16:42 +08:00
Nathan Froyd 3e13ec018f Bug 1116905 - part 1 - remove dependence on implicit conversion from T* to TemporaryRef<T>, non-gfx changes; r=ehsan 2015-04-30 15:17:08 -04:00
Jean-Yves Avenard 54a681396b Bug 1163445: Part5. Replace dom::TimeRanges with TimeIntervals object. r=mattwoodrow 2015-05-18 16:15:47 +10:00
JW Wang f34e30b2c4 Bug 1163469 - Move MediaDecoder::DecodedStreamData and related code to its own file. r=roc. 2015-05-10 11:38:15 +08:00
Bobby Holley 22d027c1ad Bug 1162803 - Mirror playback position. r=jww,r=sotaro 2015-05-11 11:16:07 -07:00
Bobby Holley dfe00bd036 Bug 1162803 - Rename mCurrentFrameTime to mCurrentPosition to better match the naming in the spec. r=jww
This field corresponds to the "current playback position" in HTML5.
2015-05-11 11:16:06 -07:00
Bobby Holley aec6ecb986 Bug 1161901 - Sprinkle more assertions and fix some formatting. r=jww 2015-05-07 09:50:37 -07:00
Bobby Holley 973ebd793d Bug 1161901 - Make MDSM::ScheduleStateMachine runs on the state machine task queue only. r=jww 2015-05-07 09:50:35 -07:00
Bobby Holley a80e689d0c Bug 1161901 - Use ProxyMediaCall instead of MDSM::ShutdownReader. r=jww 2015-05-07 09:47:39 -07:00
Bobby Holley 1040d06746 Bug 1161901 - Dispatch MediaDecoderReader::SetIdle directly. r=jww 2015-05-07 09:47:39 -07:00
Sotaro Ikeda aef8cc58bd Bug 1158448 Part 2 - Remove ApplyStateToStateMachine and PLAY_STATE_SEEKING r=jwwang,bwu 2015-05-07 08:19:46 -07:00
Sotaro Ikeda 1c5c106f78 Bug 1158448 Part 1 - Replace MDSM::Play with a state-watcher on mPlayState and eliminate ApplyStateToStateMachine. r=sotaro 2015-05-07 08:19:33 -07:00
Bobby Holley 40d7f5a524 Bug 1161742 - Use lambdas for Seek. r=jww 2015-05-05 21:04:30 -07:00
Bobby Holley c6b81175c2 Bug 1161742 - Use lambdas for WaitForData. r=jww 2015-05-05 21:02:59 -07:00
Bobby Holley 7e4411d3ff Bug 1159974 - Dispatch SetMinimizePrerollUntilPlabackStarts. r=jww 2015-05-04 11:04:48 -07:00
Bobby Holley 598c3289ab Bug 1159974 - Dispatch SetAudioCaptured. r=jww
While we're at it, I figured it was time to experiment with lambdas. :-)
2015-05-04 11:04:47 -07:00
Bobby Holley d4519a33a2 Bug 1159974 - Mirror mPreservesPitch. r=jww 2015-05-04 11:04:47 -07:00
Bobby Holley d594a72f36 Bug 1159974 - Mirror mPlaybackRate. r=jww 2015-05-04 11:04:46 -07:00
Bobby Holley 49578f1914 Bug 1159974 - Mirror mVolume. r=jww 2015-05-04 11:04:45 -07:00
Bobby Holley a56c0c760e Bug 1159974 - Assert that we're on the state machine thread for most remaining MDSM methods. r=jww
There are a handful of methods where we can't yet assert this. This bug will
tackle several of them.
2015-05-04 11:04:45 -07:00
Bobby Holley a6a1df6eb5 Bug 1160064 - Do watching/mirroring initialization on the state machine task queue. r=jww
We take this as an opportunity to remove connect-during-initialization. Always
connecting from the owner thread feels like a stronger invariant.
2015-04-30 21:29:49 -07:00
Bobby Holley a1d3d9cfba Bug 1159987 - Let consumers declare Mirror<T> rather than Mirror<T>::Holder. r=jww 2015-04-30 12:46:45 -07:00
Bobby Holley cb346fb2da Bug 1159987 - Let consumers declare Canonical<T> rather than Canonical<T>::Holder. r=jww
The current mechanism is slightly more pure from an implementation-perspective,
but a lot more confusing for consumers. After some thought, I think we should flip
them around.

This patch does Canonical - I'll do Mirror in the next patch.
2015-04-30 12:46:43 -07:00
Bobby Holley 7ed6ae7327 Bug 1159558 - Redesign watching to use a manager. r=jww 2015-04-30 12:46:40 -07:00
Bobby Holley cd25ae6fac Bug 1157803 - Mirror mPlayState and mNextState to the state machine task queue and eliminate cross-thread access. r=jww 2015-04-28 21:56:20 -07:00
Bobby Holley 23925f4fdc Bug 1157797 - Use state-watching machinery for UpdateNextFrameStatus. r=jww
The ergonomics here aren't ideal. I'm going to file a bug to improve them.
2015-04-27 21:20:41 -07:00
Carsten "Tomcat" Book cdf101ec43 merge mozilla-inbound to mozilla-central a=merge 2015-04-24 14:37:13 +02:00
Jonathan Hao 7895e576a0 Bug 1145052 - A cancelable runnable for OnAudioEndTimeUpdate. r=cpearce 2015-04-22 13:10:26 +08:00
Bobby Holley fbc2c98020 Bug 1144481 - Use state mirroring for NextFrameStatus. r=jww 2015-04-23 11:55:14 -07:00
Andrea Marchesini e666f02521 Bug 1156632 - Remove unused forward class declarations - patch 2 - dom/media, dom/indexedDB, dom/svg, r=ehsan 2015-04-22 08:29:17 +02:00
Bobby Holley b99288ff18 Bug 1154805 - Stop manually passing TaskDispatchers everywhere. r=jww 2015-04-16 09:28:56 -07:00
Bobby Holley 72ad334118 Bug 1151656 - Use TailDispatch for the MDSM's task queue. r=mattwoodrow 2015-04-08 21:33:21 -07:00
Bobby Holley c71babaf43 Bug 1151656 - Stop doing sync dispatch of PlaybackEnded. r=mattwoodrow 2015-04-08 21:33:18 -07:00
Bobby Holley 1748d9ab1f Bug 1151656 - Add some more assertions. r=mattwoodrow 2015-04-08 21:33:17 -07:00
Bobby Holley 640f5a100c Bug 1148571 - Followup to fix silly typo on a CLOSED TREE. r=me 2015-04-08 14:02:10 -07:00
Bobby Holley 2350ad3591 Bug 1148571 - Dispatch AudioSink notifications asynchronously. r=jww 2015-04-08 11:37:18 -07:00
Bobby Holley 01705d6512 Bug 1145686 - Make MDSM::StartBuffering happen on the state machine thread. r=jww 2015-03-27 16:26:02 -07:00
Bobby Holley 896a455d03 Bug 1145686 - Make MDSM::Shutdown happen on the state machine thread. r=jww 2015-03-27 16:26:02 -07:00
Bobby Holley bf4c9334cc Bug 1144519 - Rename MDSM::OnDecodeThread to MDSM::OnDecodeTaskQueue. r=jya 2015-03-27 11:50:19 -07:00
Bobby Holley aa048233f5 Bug 1144519 - Rename OnStateMachineThread-like functions to reflect the fact that it's a task queue. r=jya 2015-03-27 11:50:19 -07:00
Bobby Holley 4e510c7517 Bug 1136827 - Stop synchronously dispatching MediaDecoder::DecodeError from MDSM::DecodeError. r=mattwoodrow
MediaDecoder::DecodeError invokes MediaDecoder::Shutdown, which shuts down the
state machine. Given the sync dispatch, this means that this is basically already
what's happening.
2015-03-24 22:02:43 -07:00
Bobby Holley e0a0c3cf07 Bug 1136827 - Stop proxying DecodeError to the decode thread. r=mattwoodrow
At this point, all the callers actually call it on the state machine thread,
where it belongs.
2015-03-24 22:02:36 -07:00
Bobby Holley 01abf4455d Bug 1136827 - Call OnAudioSinkError on state machine thread. r=jww 2015-03-24 22:02:02 -07:00
Wes Kocher 82959e5df3 Backed out 2 changesets (bug 1136827) for crashtest assertions CLOSED TREE
Backed out changeset 998f44ed19fb (bug 1136827)
Backed out changeset 3eb419228c1f (bug 1136827)
2015-03-24 17:21:21 -07:00
Bobby Holley bb1cc46dff Bug 1136827 - Stop synchronously dispatching MediaDecoder::DecodeError from MDSM::DecodeError. r=mattwoodrow
MediaDecoder::DecodeError invokes MediaDecoder::Shutdown, which shuts down the
state machine. Given the sync dispatch, this means that this is basically already
what's happening.
2015-03-24 15:01:48 -07:00
Bobby Holley 6aa248ee60 Bug 1136827 - Stop proxying DecodeError to the decode thread. r=mattwoodrow
At this point, all the callers actually call it on the state machine thread,
where it belongs.
2015-03-24 15:01:47 -07:00
Bobby Holley 16efc5f196 Bug 1145203 - Unify FlushDecoding, ResetDecode, and ResetPlayback into a single Reset() method. r=mattwoodrow 2015-03-23 17:07:10 -07:00
Bobby Holley 9487e1743a Bug 1136873 - Deliver NotifyWaitingForResourcesStatusChanged asynchronously on the state machine task queue. r=mattwoodrow
The previous setup is wacky, and can cause the notification to reach the state
machine before the promise rejection, which causes us to stall intermittently.
We also take the opportunity to be a bit less trigger happy when we fire it
in MediaSourceReader.cpp.
2015-03-23 13:17:52 -07:00
Bobby Holley 40a80320a6 Bug 1136873 - Use promises for metadata decoding. r=mattwoodrow 2015-03-23 13:17:51 -07:00
Edwin Flores 9a9b42ccdf Bug 1134434 - Fire loadedmetadata before encrypted event on encrypted MP4s - r=cpearce 2015-03-23 15:31:15 +13:00
Ehsan Akhgari 883849ee32 Bug 1145631 - Part 1: Replace MOZ_OVERRIDE and MOZ_FINAL with override and final in the tree; r=froydnj
This patch was automatically generated using the following script:

function convert() {
echo "Converting $1 to $2..."
find . \
       ! -wholename "*/.git*" \
       ! -wholename "obj-ff-dbg*" \
         -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 MOZ_OVERRIDE override
convert MOZ_FINAL final
2015-03-21 12:28:04 -04:00
Bobby Holley 53ad5b2a9c Bug 1135424 - Switch the MDSM to a task queue. r=mattwoodrow 2015-03-16 14:38:44 -07:00
Phil Ringnalda 345a4eca93 Back out 3 changesets (bug 1135424) on suspicion of causing frequent hangs in test_playback.html on mochitest-e10s
CLOSED TREE

Backed out changeset 584d91ffdf88 (bug 1135424)
Backed out changeset d86806ea63f4 (bug 1135424)
Backed out changeset e52401d30a67 (bug 1135424)
2015-03-12 23:05:11 -07:00
Bobby Holley 0563f41ef7 Bug 1135424 - Switch the MDSM to a task queue. r=mattwoodrow 2015-03-12 17:54:35 -07:00
Matt Woodrow 10ced0676b Bug 1131638 - Disable hardware decoding if too many frames are invalid. r=cpearce 2015-03-12 22:14:51 +13:00
Jean-Yves Avenard 3a14d38778 Bug 1128380: Make AmpleVideoFrames calculation dynamic. r=cpearce 2015-03-09 14:17:30 +11:00
Bobby Holley 578cad549e Bug 1135170 - Rewrite the MediaDecoder-to-MediaDecoderStateMachine interface to be Promise-based. r=mattwoodrow 2015-03-06 19:17:07 -08:00
Bobby Holley d846586729 Bug 1135170 - Reap some cleanup and assertions that were waiting on this bug. r=mattwoodrow 2015-03-06 19:17:01 -08:00
Bobby Holley bf69dac697 Bug 1135170 - Streamline seek initiation logic and abolish manual seek cancels and retries. r=mattwoodrow
The model we're moving towards is one where the MDSM can just disconnect all of
its promises, send a ResetDecode down the pipe, and start doing something
unrelated.
2015-03-06 19:16:59 -08:00
Bobby Holley 3b78e1ecfd Bug 1135170 - Route queued seeks back through MDSM::Seek and eliminate MDSM::StartSeek. r=mattwoodrow 2015-03-06 19:16:54 -08:00
JW Wang 5adfdc7439 Bug 1127235 - refactor stream clock calculation in MediaDecoderStateMachine. r=roc. 2015-03-03 10:43:38 +08:00
Bobby Holley 8ecafb0e29 Bug 1135785 - Hoist some work onto the state machine thread and tighten down our assertions. r=cpearce 2015-03-01 19:33:53 -08:00
Bobby Holley ba77f2e511 Bug 1135785 - Return samples on state machine thread. r=cpearce
This is necessary because we're going to want to start disconnecting sample
and seek requests directly from the state machine thread, and the machinery
asserts that disconnection happens on the same thread as resolution.

More generally, this is the right thing to do architecturally, and will help
wean us off the monitor.
2015-03-01 19:33:49 -08:00
Bobby Holley 3c7f735460 Bug 1137511 - Account for audio frames already pushed to audio hardware but not yet played when computing OutOfDecodedAudio. r=kinetik 2015-02-27 16:07:44 -08:00
Sotaro Ikeda 8d10939395 Bug 1133167 - Add CancelSeek call to FlushDecoding() r=cpearce,bholley 2015-02-17 07:50:49 -08:00
Bobby Holley 4209e9651f Bug 1129246 - Switch to MediaPromiseConsumerHolders for MDSM audio/video promises and remove RequestStatus. v3 r=cpearce 2015-02-09 11:34:38 -08:00
Bobby Holley 41a5994f7f Bug 1128811 - Reject data wait promises when we seek. r=cpearce 2015-02-04 17:33:40 -08:00
Bobby Holley a15ce311b8 Bug 1129523 - Use ProxyMediaCall for video decode tasks. r=cpearce,r=mattwoodrow 2015-02-04 17:12:51 -08:00
JW Wang 99e95e2eff Bug 1127171 - Put mozCaptureStream operations in the same lock. r=roc 2015-01-28 18:57:00 -05:00
Masatoshi Kimura 86502e6537 Bug 1111290 - Part 2: Non-mechanical changes. r=waldo 2015-01-26 07:22:08 +09:00
Bobby Holley f2e2db81ac Bug 1121148 - Make QUICK_BUFFERING_LOW_DATA_USECS a member variable and adjust it appropriately. r=cpearce 2015-01-21 21:53:04 -08:00
Bobby Holley 986f783e03 Bug 1121692 - Make seeks cancelable. r=cpearce,r=mattwoodrow 2015-01-16 10:58:00 -08:00
Sotaro Ikeda e662668d12 Bug 1110343 - Suppress redundant loadedmetadata event when dormant exit r=cpearce 2015-01-16 07:56:19 -08:00
Jean-Yves Avenard b0638f45f3 Bug 1119757: Allow seeking on media with infinite duration. r=cpearce
MSE defines content to have infinite duration when no duration is defined.
And MSE is always seekable within the buffered range, regardless of the duration

--HG--
extra : rebase_source : 369cce10504b125716af0a60e07d1d1144117f59
2015-01-16 23:49:01 +11:00
Matt Woodrow 972dde5588 Bug 1105066 - Make SeekPromise return the time we actually seeked to; r=kentuckyfriedtakahe 2015-01-12 10:57:14 +13:00
Jonathan Hao a29a94eff5 Bug 1080461 - Part 1: Add IsRealTime() in MediaDecoderStateMachine. r=bechen, r=jwwang 2015-01-06 09:57:53 +08:00
Bobby Holley 81fc7d1d4b Bug 1114840 - Don't start playback during prerolling. r=cpearce 2014-12-29 23:16:48 -08:00
Bobby Holley c3291e8b61 Bug 1114840 - Dynamically compute preroll thresholds. r=cpearce
Currently, the preroll threshold ends up higher than the ample threshold in the
audio-only case where we slash the audio thresholds by a factor of 8. The best
way to avoid these sorts of bugs is to compute the values dynamically.
2014-12-29 23:16:48 -08:00
Bobby Holley 01990f4d69 Bug 1114840 - Hoist arms-length conditions and rename StartPlayback() to MaybeStartPlayback(). r=cpearce 2014-12-29 23:16:48 -08:00
Bobby Holley 680cba307f Bug 1114840 - Make MediaDecoderStateMachine::Play run on the state machine thread. r=cpearce
We want to invoke StartDecoding() from Play, but that calls into a bunch of stuff
that asserts that we're on the state machine thread. It's not clear to me whether
that's actually necessary, but this seems like the right thing to do regardless
given that this is all supposed to be async anyway.
2014-12-29 23:16:48 -08:00
Bobby Holley f01bb671ea Bug 1109437 - Only switch to buffering mode when the reader is waiting for data. r=cpearce 2014-12-22 00:20:31 -08:00
Bobby Holley 49601684ad Bug 1109437 - Implement non-polling buffering. r=cpearce 2014-12-22 00:20:31 -08:00
Bobby Holley 17a26db299 Bug 1109437 - Switch m{Audio,Video}RequestPending to a tri-state. r=cpearce 2014-12-22 00:20:31 -08:00
Benjamin Chen d676e9ef65 Bug 1091992 - fix the flag skipToNextKeyFrame in DecodeVideo can't be raised if the video is slower than audio. r=cpearce, r=jwwang 2014-12-22 11:32:31 +08:00
Matt Woodrow 646b842413 Bug 1111413 - Part 2: Remove RequestSampleCallback. r=bholley 2014-12-16 23:08:42 +13:00
Matt Woodrow 2c7e571767 Bug 1111413 - Part 1: Use MediaPromises for seeking. r=bholley 2014-12-16 22:52:57 +13:00
Bobby Holley da72b3891c Bug 1109954 - Make resolve/reject values optional in callback signatures. r=cpearce 2014-12-12 14:22:23 -08:00