Commit Graph

22 Commits

Author SHA1 Message Date
trav90 9227ffb4c9 Always seek audio to original seeking position
There's no guarantee that the audio stream will have the same buffered ranges as the video track; which could lead to a stall. It is up to the MediaDecoderStateMachine to ensure proper A/V sync following a sync.
2018-07-25 07:03:13 +08:00
trav90 bcbd26d984 Ensure we have up to date buffered time ranges when OnTaskQueue 2018-07-25 06:51:23 +08:00
trav90 d4c2af85da Remove use of decoder's monitor in MFR::ResetDecode()
This prevents a potential deadlock.
2018-07-25 06:51:18 +08:00
trav90 69e5e7e7c5 Immediately resolve WaitingForDataPromise if we're not waiting for data
This prevents a potential stall in MSE streams.
2018-07-25 06:47:39 +08:00
trav90 fb24feea12 Prevent potential shutdown crash in MFR 2018-07-25 06:47:37 +08:00
trav90 58c5930a6e Fix crash in MFR
The MediaFormatReader destructor is only called once all media task queues have shutdown.
However, the main thread demuxer always owned a reference to trackbuffer task queue.
2018-07-25 06:46:06 +08:00
trav90 9b30c70c1b Remove "if (OnTaskQueue)()" from MediaFormatReader 2018-07-25 01:28:49 +08:00
trav90 83afdd0658 MediaFormatReader: returns error if no tracks are usable 2018-07-25 01:28:47 +08:00
trav90 7f7fdd1cac Reject metadata promise on shutdown 2018-07-25 01:28:45 +08:00
trav90 baaba8abea Fix typo 2018-07-25 01:28:28 +08:00
trav90 b838f29f01 Ensure buffered range referential starts at 0 2018-07-25 01:28:22 +08:00
trav90 e6da217c9c Cache main thread buffered time range 2018-07-25 01:28:14 +08:00
trav90 27136f01b4 Crash fix: always check that track demuxer was successfully created 2018-07-25 01:28:08 +08:00
trav90 37c7767ffa Don't reset demuxer when skipping to next keyframe 2018-07-25 01:28:04 +08:00
trav90 10b5821962 Small reorganization of Update() & remove need for StorensRefPtrPassByPtr. 2018-07-25 01:27:57 +08:00
trav90 9410bc7a49 Add MediaDecoderReader::NotifyDataRemoved method 2018-07-25 01:27:52 +08:00
trav90 b20b8dadab Replace dom::TimeRanges with TimeIntervals object 2018-07-25 01:27:34 +08:00
trav90 6dd69a31f9 Fix build bustage: remove extra } 2018-07-25 01:27:01 +08:00
trav90 dfff91d033 Don't ignore DrainComplete() on first demux 2018-07-25 01:26:53 +08:00
trav90 2d83eaceb5 Remove most locking in MediaFormatReader 2018-07-25 01:26:51 +08:00
trav90 e1fbf7147a Put new MediaFormatReader behind a pref
media.format-reader.mp4=true: Will enable the new format decoder for normal MP4
media.mediasource.format-reader.mp4=true: Will enable new format decoder for
MP4 within MSE.

Both are currently defaulted to false.
2018-07-25 01:26:47 +08:00
trav90 0eb8374c80 Add MediaFormatReader player 2018-07-25 01:26:45 +08:00