Closed
Bug 1496474
Opened 6 years ago
Closed 6 years ago
The seekbar doesn't jump back the the beginning while looping
Categories
(Core :: Audio/Video: Playback, defect, P2)
Core
Audio/Video: Playback
Tracking
()
RESOLVED
DUPLICATE
of bug 1498440
People
(Reporter: chunmin, Assigned: chunmin)
References
(Blocks 1 open bug)
Details
(Keywords: regression)
Attachments
(2 files, 4 obsolete files)
1.60 KB,
patch
|
Details | Diff | Splinter Review | |
8.28 MB,
application/zip
|
Details |
I occasionally saw that the seekbar doesn't jump back the the beginning while looping. I cannot reproduce it every time, but it happens.
step to reproduce:
1. Access the https://goo.gl/tuporf
2. Activate the loop option.
3. Play the audio.
4. Seek the audio to 2:52 and let it finish
expect:
The seekbar will jump back to the beginning while the audio keeps playing/looping
Actual:
The seekbar stays at the end while the audio keeps playing/looping
Assignee | ||
Updated•6 years ago
|
Assignee: nobody → cchang
Assignee | ||
Updated•6 years ago
|
Assignee | ||
Updated•6 years ago
|
Updated•6 years ago
|
Rank: 15
status-firefox62:
--- → wontfix
status-firefox63:
--- → affected
status-firefox64:
--- → affected
status-firefox-esr60:
--- → affected
status-geckoview62:
--- → wontfix
Priority: -- → P2
QA Contact: drno
Updated•6 years ago
|
QA Contact: drno
Assignee | ||
Updated•6 years ago
|
Blocks: seamless-looping
Assignee | ||
Comment 1•6 years ago
|
||
For the log[0], I guess this happens when we seek to EOS directly.
When ReaderProxy::Seek is called, the mLastAudioEndTime is reset to 0[1]. When seeking to EOS directly, mAudioDuration is set to mLastAudioEndTime, which is 0. Therefore, ReaderProxy::AdjustByLooping doesn't work and the time in MDSM cannot be corrected[4].
[1] https://searchfox.org/mozilla-central/rev/c56977420df7a1b692ce0f7e499ddb364d9fd7b2/dom/media/ReaderProxy.cpp#174
[2] https://searchfox.org/mozilla-central/rev/c56977420df7a1b692ce0f7e499ddb364d9fd7b2/dom/media/ReaderProxy.cpp#90
[3] https://searchfox.org/mozilla-central/rev/c56977420df7a1b692ce0f7e499ddb364d9fd7b2/dom/media/ReaderProxy.cpp#316-318
[4] https://searchfox.org/mozilla-central/rev/c56977420df7a1b692ce0f7e499ddb364d9fd7b2/dom/media/MediaDecoderStateMachine.cpp#3555,3565
[0] log
-------------------------------------------------------------------------------------------------------------------
## RefPtr<ReaderProxy::SeekPromise> mozilla::ReaderProxy::Seek(const mozilla::SeekTarget &) >> 174.660000
[Child 28510: MediaPDecoder #2]: D/MediaDemuxer FlacTrackDemuxer[0x1820c2740] Reset()
[Child 28510: MediaPDecoder #3]: D/MediaDemuxer FlacTrackDemuxer[0x1820c2740] Reset()
[Child 28510: MediaPDecoder #3]: D/MediaDemuxer FlacTrackDemuxer[0x1820c2740] FastSeek(174.660000) avgFrameLen=84038.122994 mParsedFramesDuration=174.602448 offset=261066
[Child 28510, MediaPDecoder #3] WARNING: We should have found a point: file /Users/cchang/Work/gecko/dom/media/flac/FlacDemuxer.cpp, line 773
[Child 28510: MediaPDecoder #3]: D/MediaDemuxer FlacTrackDemuxer[0x1820c2740] ScanUntil(174.660000 avgFrameLen=84038.122994 mParsedFramesDuration=174.602448 offset=0
[Child 28510: MediaPDecoder #3]: V/MediaDemuxer FlacTrackDemuxer[0x1820c2740] FindNext() Begin offset=14939164 mParsedFramesDuration=174.602448 mTotalFrameLen=14673262
## RefPtr<ReaderProxy::AudioDataPromise> mozilla::ReaderProxy::RequestAudioData()
[Child 28510: MediaPDecoder #1]: V/MediaDemuxer FlacTrackDemuxer[0x1820c2740] GetSamples(1) Begin offset=14939164 mParsedFramesDuration=174.602448 mTotalFrameLen=14673262
[Child 28510: MediaPDecoder #1]: V/MediaDemuxer FlacTrackDemuxer[0x1820c2740] FindNext() Begin offset=14939164 mParsedFramesDuration=174.602448 mTotalFrameLen=14673262
[Child 28510: MediaPDecoder #1]: D/MediaDemuxer FlacTrackDemuxer[0x1820c2740] GetNextFrame() EOS
[Child 28510: MediaPDecoder #1]: V/MediaDemuxer FlacTrackDemuxer[0x1820c2740] GetSamples() End mSamples.Length=0 aNumSamples=0 offset=14939164 mParsedFramesDuration=174.602448 mTotalFrameLen=14673262
## RefPtr<ReaderProxy::AudioDataPromise> mozilla::ReaderProxy::OnAudioDataRequestFailed(const mozilla::MediaResult &) >> aError: -2140274680
[Child 28510: MediaPDecoder #3]: D/MediaDemuxer FlacTrackDemuxer[0x1820c2740] Reset()
[Child 28510: MediaPDecoder #3]: D/MediaDemuxer FlacTrackDemuxer[0x1820c2740] Reset()
[Child 28510: MediaPDecoder #3]: D/MediaDemuxer FlacTrackDemuxer[0x1820c2740] FastSeek(0.000000) avgFrameLen=84038.122994 mParsedFramesDuration=174.602448 offset=261066
[Child 28510: MediaPDecoder #3]: D/MediaDemuxer FlacTrackDemuxer[0x1820c2740] ScanUntil(0.000000 avgFrameLen=84038.122994 mParsedFramesDuration=174.602448 offset=0
[Child 28510: MediaPDecoder #3]: D/MediaDemuxer FlacTrackDemuxer[0x1820c2740] FastSeek(0.000000) avgFrameLen=84038.122994 mParsedFramesDuration=174.602448 offset=261066
[Child 28510: MediaPDecoder #1]: V/MediaDemuxer FlacTrackDemuxer[0x1820c2740] GetSamples(1) Begin offset=261066 mParsedFramesDuration=174.602448 mTotalFrameLen=14673262
[Child 28510: MediaPDecoder #1]: V/MediaDemuxer FlacTrackDemuxer[0x1820c2740] FindNext() Begin offset=261066 mParsedFramesDuration=174.602448 mTotalFrameLen=14673262
[Child 28510: MediaPDecoder #1]: V/MediaDemuxer FlacTrackDemuxer[0x1820c2740] FindNext() End time=0.000000 offset=264217 mParsedFramesDuration=174.602448 mTotalFrameLen=14673262
[Child 28510: MediaPDecoder #1]: D/MediaDemuxer FlacTrackDemuxer[0x1820c2740] GetNextFrame() Begin(time=0.000000 offset=261066 size=3145)
[Child 28510: MediaPDecoder #1]: V/MediaDemuxer FlacTrackDemuxer[0x1820c2740] GetSamples() End mSamples.Length=1 aNumSamples=-1 offset=264217 mParsedFramesDuration=174.602448 mTotalFrameLen=14673262
## RefPtr<ReaderProxy::AudioDataPromise> mozilla::ReaderProxy::OnAudioDataRequestCompleted(RefPtr<mozilla::AudioData>) >> aAudio: 0.000000
## RefPtr<ReaderProxy::AudioDataPromise> mozilla::ReaderProxy::RequestAudioData()
[Child 28510: MediaPDecoder #2]: V/MediaDemuxer FlacTrackDemuxer[0x1820c2740] GetSamples(1) Begin offset=264217 mParsedFramesDuration=174.602448 mTotalFrameLen=14673262
[Child 28510: MediaPDecoder #2]: V/MediaDemuxer FlacTrackDemuxer[0x1820c2740] FindNext() Begin offset=264217 mParsedFramesDuration=174.602448 mTotalFrameLen=14673262
[Child 28510: MediaPDecoder #2]: V/MediaDemuxer FlacTrackDemuxer[0x1820c2740] FindNext() End time=0.104489 offset=267387 mParsedFramesDuration=174.602448 mTotalFrameLen=14673262
[Child 28510: MediaPDecoder #2]: D/MediaDemuxer FlacTrackDemuxer[0x1820c2740] GetNextFrame() Begin(time=0.104489 offset=264211 size=3170)
[Child 28510: MediaPDecoder #2]: V/MediaDemuxer FlacTrackDemuxer[0x1820c2740] GetSamples() End mSamples.Length=1 aNumSamples=-1 offset=267387 mParsedFramesDuration=174.602448 mTotalFrameLen=14673262
## RefPtr<ReaderProxy::AudioDataPromise> mozilla::ReaderProxy::OnAudioDataRequestCompleted(RefPtr<mozilla::AudioData>) >> aAudio: 0.104489
Assignee | ||
Comment 2•6 years ago
|
||
Depends on D8428
Updated•6 years ago
|
Attachment #9018462 -
Attachment is obsolete: true
Updated•6 years ago
|
Attachment #9018462 -
Attachment is obsolete: false
Assignee | ||
Comment 3•6 years ago
|
||
Depends on D8601
Updated•6 years ago
|
Attachment #9018463 -
Attachment is obsolete: true
Updated•6 years ago
|
Attachment #9018463 -
Attachment is obsolete: false
Updated•6 years ago
|
Attachment #9018462 -
Attachment description: Bug 1497629 - Part 2: Split the logic to adjust the start-time and looping offset for audio data. , alwu → Bug 1496474 - P1. Split the logic to adjust the start-time and looping offset for audio data.
Updated•6 years ago
|
Attachment #9018463 -
Attachment description: Bug 1497629 - Part 3: Make sure the looping offset is zero when the duration of the audio track is unset. , alwu → Bug 1496474 - P2. Make sure the looping offset is zero when the duration of the audio track is unset.
Assignee | ||
Comment 4•6 years ago
|
||
Depends on D8602
Assignee | ||
Comment 5•6 years ago
|
||
Depends on D9179
Assignee | ||
Comment 6•6 years ago
|
||
I think this won't happen when we move the looping mechanism to MDSM.
If we seeks to EOS directly, MDSM will complete the seek and back to decoding state [0,1,2,3]. After entering to decoding state, we will move to complete state if the decoding is finished [4]. If looping is enabled, the normal looping works then after ending the play.
Since we are about to move the looping mechanism to MDSM(bug 1498440), I think this problem can be solved then.
[0] https://searchfox.org/mozilla-central/rev/c56977420df7a1b692ce0f7e499ddb364d9fd7b2/dom/media/MediaDecoderStateMachine.cpp#996
[1] https://searchfox.org/mozilla-central/rev/9cb3e241502a2d47e2d5057ca771324a446b6695/dom/media/MediaDecoderStateMachine.cpp#1323
[2] https://searchfox.org/mozilla-central/rev/9cb3e241502a2d47e2d5057ca771324a446b6695/dom/media/MediaDecoderStateMachine.cpp#2488
[3] https://searchfox.org/mozilla-central/rev/9cb3e241502a2d47e2d5057ca771324a446b6695/dom/media/MediaDecoderStateMachine.cpp#900
[4] https://searchfox.org/mozilla-central/rev/9cb3e241502a2d47e2d5057ca771324a446b6695/dom/media/MediaDecoderStateMachine.cpp#2305
Assignee | ||
Comment 7•6 years ago
|
||
It's not easy to reproduce this problem in a reliable way. Since we need to seek to EOS directly, it depends on how we implement "seek" in different demuxers.
The test page attached can reproduce this problem on my laptop now. The times for seeking to EOS directly varies on different audio files and formats. If the audio source is changed, it needs to find another specific time as the seek point.
I am going to stop fixing the problem in ReaderProxy since we are about to move the looping mechanism to MDSM. Simply upload a test page for further checking.
Updated•6 years ago
|
status-firefox65:
--- → affected
Comment 8•6 years ago
|
||
I think bug1498440 also fixed this problem, now I can't reproduce this issue on the latest Nightly.
Free feel to reopen if you see this issue again.
Status: NEW → RESOLVED
Closed: 6 years ago
Resolution: --- → DUPLICATE
Updated•6 years ago
|
Updated•5 years ago
|
Updated•5 years ago
|
Attachment #9018464 -
Attachment is obsolete: true
Updated•5 years ago
|
Attachment #9018465 -
Attachment is obsolete: true
Updated•5 years ago
|
Attachment #9018463 -
Attachment is obsolete: true
Updated•5 years ago
|
Attachment #9018462 -
Attachment is obsolete: true
You need to log in
before you can comment on or make changes to this bug.
Description
•