Assertion failure: !mVideo.mSeekRequest.Exists(), at dom/media/MediaFormatReader.cpp:529

RESOLVED FIXED in Firefox 42

Status

()

Core
Audio/Video
RESOLVED FIXED
3 years ago
3 years ago

People

(Reporter: jya, Assigned: jya)

Tracking

Trunk
mozilla42
All
Linux
Points:
---

Firefox Tracking Flags

(firefox42 fixed)

Details

Attachments

(1 attachment)

(Assignee)

Description

3 years ago
When using the new MSE with the blank decoder on linux, we get those assertions:

23:55:30     INFO -   0  libxul.so!mozilla::MediaFormatReader::RequestVideoData(bool, long long, bool) [MediaFormatReader.cpp:ab5253e6193a : 529 + 0x19]
23:55:30     INFO -      eip = 0xb3bec09b   esp = 0xa71fdda0   ebp = 0xa71fddf8   ebx = 0xb760d290
23:55:30     INFO -      esi = 0x00000000   edi = 0x00000000   eax = 0x00000000   ecx = 0xb23798ac
23:55:30     INFO -      edx = 0x00000000   efl = 0x00210286
23:55:30     INFO -      Found by: given as instruction pointer in context
23:55:30     INFO -   1  libxul.so!mozilla::detail::MethodCallWithThreeArgs<mozilla::MediaPromise<nsRefPtr<mozilla::VideoData>, mozilla::MediaDecoderReader::NotDecodedReason, true>, mozilla::MediaDecoderReader, bool, long long, bool>::Invoke() [MediaPromise.h:ab5253e6193a : 920 + 0x18]
23:55:30     INFO -      eip = 0xb3bfe785   esp = 0xa71fde00   ebp = 0xa71fde28   ebx = 0xb760d290
23:55:30     INFO -      esi = 0x9d982320   edi = 0xa71fde48
23:55:30     INFO -      Found by: call frame info
23:55:30     INFO -   2  libxul.so!mozilla::detail::ProxyRunnable<mozilla::MediaPromise<nsRefPtr<mozilla::VideoData>, mozilla::MediaDecoderReader::NotDecodedReason, true> >::Run() [MediaPromise.h:ab5253e6193a : 938 + 0xa]
23:55:30     INFO -      eip = 0xb3bfda40   esp = 0xa71fde30   ebp = 0xa71fde68   ebx = 0xb760d290
23:55:30     INFO -      esi = 0x9d982360   edi = 0x9d9f329c
23:55:30     INFO -      Found by: call frame info
23:55:30     INFO -   3  libxul.so!mozilla::AutoTaskDispatcher::TaskGroupRunnable::Run() [TaskDispatcher.h:ab5253e6193a : 181 + 0x3]
23:55:30     INFO -      eip = 0xb3b8f69d   esp = 0xa71fde70   ebp = 0xa71fde88   ebx = 0xb760d290
23:55:30     INFO -      esi = 0x00000001   edi = 0x9d9f329c
23:55:30     INFO -      Found by: call frame info
23:55:30     INFO -   4  libxul.so!mozilla::MediaTaskQueue::Runner::Run() [MediaTaskQueue.cpp:ab5253e6193a : 256 + 0xa]
23:55:30     INFO -      eip = 0xb3c24fe0   esp = 0xa71fde90   ebp = 0xa71fdf08   ebx = 0xb760d290
23:55:30     INFO -      esi = 0x9d9f3b40   edi = 0xa71fdeb8
23:55:30     INFO -      Found by: call frame info
23:55:30     INFO -   5  libxul.so!nsThreadPool::Run() [nsThreadPool.cpp:ab5253e6193a : 228 + 0x13]
23:55:30     INFO -      eip = 0xb28c858d   esp = 0xa71fdf10   ebp = 0xa71fdf78   ebx = 0xb760d290
23:55:30     INFO -      esi = 0x8c7cf900   edi = 0xa71fdf54
23:55:30     INFO -      Found by: call frame info
23:55:30     INFO -   6  libxul.so!nsThread::ProcessNextEvent(bool, bool*) [nsThread.cpp:ab5253e6193a : 867 + 0x13]
23:55:30     INFO -      eip = 0xb28c6515   esp = 0xa71fdf80   ebp = 0xa71fdfe8   ebx = 0xb760d290
23:55:30     INFO -      esi = 0x8db01d70   edi = 0xa71fdfb8
23:55:30     INFO -      Found by: call frame info
23:55:30     INFO -   7  libxul.so!NS_ProcessNextEvent(nsIThread*, bool) [nsThreadUtils.cpp:ab5253e6193a : 277 + 0xf]
23:55:30     INFO -      eip = 0xb28edb75   esp = 0xa71fdff0   ebp = 0xa71fe028   ebx = 0xb760d290
23:55:30     INFO -      esi = 0x8f8a4a00   edi = 0x8c950cc0
23:55:30     INFO -      Found by: call frame info
23:55:30     INFO -   8  libxul.so!mozilla::ipc::MessagePumpForNonMainThreads::Run(base::MessagePump::Delegate*) [MessagePump.cpp:ab5253e6193a : 326 + 0xb]
23:55:30     INFO -      eip = 0xb2b779a5   esp = 0xa71fe030   ebp = 0xa71fe078   ebx = 0xb760d290
23:55:30     INFO -      esi = 0x8f8a4a00   edi = 0x8c950cc0
23:55:30     INFO -      Found by: call frame info
23:55:30     INFO -   9  libxul.so!MessageLoop::RunInternal() [message_loop.cc:ab5253e6193a : 234 + 0x13]
23:55:30     INFO -      eip = 0xb2b577fe   esp = 0xa71fe080   ebp = 0xa71fe0a8   ebx = 0xb760d290
23:55:30     INFO -      esi = 0x8c950cc0   edi = 0x8db01d70
23:55:30     INFO -      Found by: call frame info
23:55:30     INFO -  10  libxul.so!MessageLoop::Run() [message_loop.cc:ab5253e6193a : 227 + 0x7]
23:55:30     INFO -      eip = 0xb2b57824   esp = 0xa71fe0b0   ebp = 0xa71fe0d8   ebx = 0xb760d290
23:55:30     INFO -      esi = 0x8c950cc0   edi = 0x8db01d70
23:55:30     INFO -      Found by: call frame info
23:55:30     INFO -  11  libxul.so!nsThread::ThreadFunc(void*) [nsThread.cpp:ab5253e6193a : 360 + 0x8]
23:55:30     INFO -      eip = 0xb28c683b   esp = 0xa71fe0e0   ebp = 0xa71fe128   ebx = 0xb760d290
23:55:30     INFO -      esi = 0x8c950cc0   edi = 0x8db01d70
23:55:30     INFO -      Found by: call frame info
23:55:30     INFO -  12  libnspr4.so!_pt_root [ptthread.c:ab5253e6193a : 212 + 0x8]
23:55:30     INFO -      eip = 0xb77260e5   esp = 0xa71fe130   ebp = 0xa71fe168   ebx = 0xb773d550
23:55:30     INFO -      esi = 0x8cac0e40   edi = 0x00000bf2
23:55:30     INFO -      Found by: call frame info
23:55:30     INFO -  13  libpthread-2.15.so + 0x6d4b
23:55:30     INFO -      eip = 0xb7750d4c   esp = 0xa71fe170   ebp = 0xa71fe268   ebx = 0xb7761ff4
23:55:30     INFO -      esi = 0x00000000   edi = 0x003d0f00
23:55:30     INFO -      Found by: call frame info
23:55:30     INFO -  14  libc-2.15.so + 0xef8bd
23:55:30     INFO -      eip = 0xb22c08be   esp = 0xa71fe270   ebp = 0x00000000
23:55:30     INFO -      Found by: previous frame's frame pointer

Now why the MDSM would request new data prior the seek to be completed: I have no idea.
(Assignee)

Updated

3 years ago
OS: Unspecified → Linux
Hardware: Unspecified → All
(Assignee)

Updated

3 years ago
Blocks: 1171379
No longer blocks: 1182946
(Assignee)

Comment 1

3 years ago
Created attachment 8633893 [details] [diff] [review]
Wait until current drain completes before decoding new data.

Otherwise, upon entering DecodeDemuxedSamples we would immediately flush the decoder which would discard all the frames currently being drained.
Also, when seeking between streams, it's okay to call RequestVideoData/RequestAudioData.
Attachment #8633893 - Flags: review?(cpearce)
Attachment #8633893 - Flags: review?(cpearce) → review+
https://hg.mozilla.org/mozilla-central/rev/ef1250ce23a3
https://hg.mozilla.org/mozilla-central/rev/f0e5f3f89b91
Assignee: nobody → jyavenard
Status: NEW → RESOLVED
Last Resolved: 3 years ago
status-firefox42: affected → fixed
Resolution: --- → FIXED
Target Milestone: --- → mozilla42
You need to log in before you can comment on or make changes to this bug.