Closed
Bug 1498440
Opened 6 years ago
Closed 6 years ago
Refactor the logic of seamless looping audio
Categories
(Core :: Audio/Video: Playback, enhancement, P2)
Core
Audio/Video: Playback
Tracking
()
RESOLVED
FIXED
mozilla65
Tracking | Status | |
---|---|---|
firefox65 | --- | fixed |
People
(Reporter: alwu, Assigned: alwu)
References
(Blocks 1 open bug)
Details
Attachments
(6 files, 5 obsolete files)
46 bytes,
text/x-phabricator-request
|
Details | Review | |
46 bytes,
text/x-phabricator-request
|
Details | Review | |
46 bytes,
text/x-phabricator-request
|
Details | Review | |
46 bytes,
text/x-phabricator-request
|
Details | Review | |
46 bytes,
text/x-phabricator-request
|
Details | Review | |
46 bytes,
text/x-phabricator-request
|
Details | Review |
The purpose of this bug is to move out the codes for seamless audio from DecodingState::Step().
Updated•6 years ago
|
Blocks: seamless-looping
Assignee | ||
Comment 1•6 years ago
|
||
If we're in seamless looping, ReaderProxy will not tell MDSM about EOS error which reader returned, so MDSM will stay at `decoding state` all the time. We can say that the ReaderProxy hides EOS in this case. When canceling seamless looping, if the playback position does not reach the EOS position yet and we had already hidden EOS, we need to create another EOS to notify MDSM the demuxing has ended. playback hidden fake position EOS EOS ----|---------|---------|-------> (Increasing timeline)
Assignee | ||
Comment 2•6 years ago
|
||
When we cancel seamless looping, we should discard the audio data whose time are later than the last audio frame's time in the audio track.
Assignee | ||
Comment 3•6 years ago
|
||
No need to check whether we need to dispatch looping event everytime when entering the DecodingState::Step().
Assignee | ||
Comment 4•6 years ago
|
||
We only have a interest in the data which is popped out from the front side of the queue.
Updated•6 years ago
|
Priority: -- → P2
Updated•6 years ago
|
Attachment #9016876 -
Attachment is obsolete: true
Updated•6 years ago
|
Attachment #9016877 -
Attachment is obsolete: true
Updated•6 years ago
|
Attachment #9016878 -
Attachment is obsolete: true
Updated•6 years ago
|
Attachment #9016879 -
Attachment is obsolete: true
Assignee | ||
Comment 5•6 years ago
|
||
This state is used to handle decoding when the media is in seamless looping. It will be responsible for (1) time adjustment (2) handle EOS and seek to the first sample
Assignee | ||
Comment 6•6 years ago
|
||
Assignee | ||
Comment 7•6 years ago
|
||
Assignee | ||
Comment 8•6 years ago
|
||
When we cancel seamless looping, we should discard audio data whose time are later than the last audio frame's time in the audio track.
Assignee | ||
Comment 9•6 years ago
|
||
We only have a interest in the data which is popped out from the front side of the queue.
Assignee | ||
Comment 10•6 years ago
|
||
We don't have any implementation for video seamless looping yet, so we only use 'loopingDecodingState' for audio for now.
Assignee | ||
Comment 11•6 years ago
|
||
Ensure we disconnect all Then() before exit the state.
Updated•6 years ago
|
Attachment #9018766 -
Attachment is obsolete: true
Assignee | ||
Comment 12•6 years ago
|
||
https://treeherder.mozilla.org/#/jobs?repo=try&revision=20b3c8c04771a6814185e836e58ac579ff413bc5
Comment 13•6 years ago
|
||
Pushed by alwu@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/8937fe137441 part1 : implement MDSM's 'LoopingDecodingState'. r=jya https://hg.mozilla.org/integration/autoland/rev/f47b8fef7cc7 part2 : implement state transition. r=jya https://hg.mozilla.org/integration/autoland/rev/c67e483b4ab4 part3 : remove time-adjustment related codes in ReaderProxy. r=jya https://hg.mozilla.org/integration/autoland/rev/2e61ba5a50f2 part4 : discard redudant looping data when cancel looping. r=jya https://hg.mozilla.org/integration/autoland/rev/1cd5c63b4182 part5 : rename PopEvent() to PopFrontEvent(). r=jya https://hg.mozilla.org/integration/autoland/rev/93cfc552f067 part6 : only enable 'loopingDecodingState' for audio seamless looping r=jya
Comment 14•6 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/8937fe137441 https://hg.mozilla.org/mozilla-central/rev/f47b8fef7cc7 https://hg.mozilla.org/mozilla-central/rev/c67e483b4ab4 https://hg.mozilla.org/mozilla-central/rev/2e61ba5a50f2 https://hg.mozilla.org/mozilla-central/rev/1cd5c63b4182 https://hg.mozilla.org/mozilla-central/rev/93cfc552f067
Status: NEW → RESOLVED
Closed: 6 years ago
status-firefox65:
--- → fixed
Resolution: --- → FIXED
Target Milestone: --- → mozilla65
You need to log in
before you can comment on or make changes to this bug.
Description
•