Apple PDM gizmo.mp4: Should be buffered in one range - got 0, expected 1

RESOLVED FIXED in mozilla34

Status

()

RESOLVED FIXED
4 years ago
4 years ago

People

(Reporter: rillian, Assigned: kentuckyfriedtakahe)

Tracking

(Blocks: 1 bug)

Trunk
mozilla34
x86
Mac OS X
Points:
---
Dependency tree / graph
Bug Flags:
qe-verify -

Firefox Tracking Flags

(Not tracked)

Details

Attachments

(1 attachment, 1 obsolete attachment)

mochitest test_buffered.html reports

 gizmo.mp4: Should be buffered in one range - got 0, expected 1

With the media.fragmented-mp4.exposed true and the Apple PlatformDecoderModule.
(Reporter)

Updated

4 years ago
Assignee: nobody → giles
Blocks: 1043696
Assignee: giles → ajones
Created attachment 8475640 [details] [diff] [review]
Fix final buffered range calculation
Attachment #8475640 - Flags: review?(edwin)
Comment on attachment 8475640 [details] [diff] [review]
Fix final buffered range calculation

Review of attachment 8475640 [details] [diff] [review]:
-----------------------------------------------------------------

::: media/libstagefright/binding/Index.cpp
@@ +97,5 @@
>    mMoofParser->RebuildFragmentedIndex(aByteRanges);
>  }
>  
> +Microseconds
> +Index::GetEndCompositionIfBufffered(const nsTArray<MediaByteRange>& aByteRanges)

Autocomplete fail. Consider naming GetEndCompositionIfBufffffffered.

::: media/libstagefright/binding/mp4_demuxer.cpp
@@ +228,4 @@
>      nsTArray<Interval<Microseconds>> ranges;
>      mPrivate->mIndexes[i]->ConvertByteRangesToTimeRanges(aByteRanges, &ranges);
> +    if (lastComposition) {
> +      if (endCompositions[i]) {

if (lastComposition && endCompositions[i]) {
Attachment #8475640 - Flags: review?(edwin) → review+
I got a crash on Windows running mochitests in test_unseekable with the patch here:

12644 INFO Assertion failure: !mRemaining, at c:\Users\Bob\src\mozilla\purple\media\libstagefright\binding\include\mp4_demuxer/ByteReader.h:35
12645 INFO draining.
12646 INFO mp4_demuxer::BoxReader::~BoxReader+0x0000001A [xul +0x00000000001BDFDA]
12647 INFO mp4_demuxer::Tfhd::Tfhd+0x00000243 [xul +0x00000000001BDA13] (c:\users\bob\src\mozilla\purple\media\libstagefright\binding\moofparser.cpp, line 252)
12648 INFO mp4_demuxer::Moof::ParseTraf+0x00000085 [xul +0x00000000001BD695] (c:\users\bob\src\mozilla\purple\media\libstagefright\binding\moofparser.cpp, line
103)
12649 INFO mp4_demuxer::Moof::Moof+0x000000AA [xul +0x00000000001BD50A] (c:\users\bob\src\mozilla\purple\media\libstagefright\binding\moofparser.cpp, line 93)
12650 INFO mp4_demuxer::MoofParser::RebuildFragmentedIndex+0x000000CB [xul +0x00000000001BCCFB] (c:\users\bob\src\mozilla\purple\media\libstagefright\binding\mo
ofparser.cpp, line 24)
12651 INFO mp4_demuxer::Index::UpdateMoofIndex+0x0000002E [xul +0x00000000001BC86E] (c:\users\bob\src\mozilla\purple\media\libstagefright\binding\index.cpp, lin
e 98)
12652 INFO mp4_demuxer::MP4Demuxer::UpdateIndex+0x00000066 [xul +0x00000000001BD436] (c:\users\bob\src\mozilla\purple\media\libstagefright\binding\mp4_demuxer.c
pp, line 206)
12653 INFO mozilla::MP4Reader::UpdateIndex+0x000000AA [xul +0x0000000002B1D80A] (c:\users\bob\src\mozilla\purple\content\media\fmp4\mp4reader.cpp, line 799)
12654 INFO nsRunnableMethodImpl<void (__thiscall mozilla::MP4Reader::*)(void),void,1>::Run+0x0000001A [xul +0x0000000002B1E8AA] (c:\users\bob\src\mozilla\purple
\objdir\dist\include\nsthreadutils.h, line 393)
12655 INFO mozilla::MediaTaskQueue::Runner::Run+0x0000017E [xul +0x0000000002A20DFE] (c:\users\bob\src\mozilla\purple\content\media\mediataskqueue.cpp, line 201
)
12656 INFO nsThreadPool::Run+0x000002B2 [xul +0x00000000002D3D72] (c:\users\bob\src\mozilla\purple\xpcom\threads\nsthreadpool.cpp, line 222)
12657 INFO nsThread::ProcessNextEvent+0x000003F2 [xul +0x00000000002D0C82] (c:\users\bob\src\mozilla\purple\xpcom\threads\nsthread.cpp, line 770)
12658 INFO NS_ProcessNextEvent+0x00000058 [xul +0x0000000000321A28] (c:\users\bob\src\mozilla\purple\xpcom\glue\nsthreadutils.cpp, line 265)
12659 INFO mozilla::ipc::MessagePumpForNonMainThreads::Run+0x000002B5 [xul +0x00000000007FFF95] (c:\users\bob\src\mozilla\purple\ipc\glue\messagepump.cpp, line
355)
12660 INFO MessageLoop::RunInternal+0x0000004E [xul +0x000000000077E5CE] (c:\users\bob\src\mozilla\purple\ipc\chromium\src\base\message_loop.cc, line 230)
12661 INFO MessageLoop::RunHandler+0x00000082 [xul +0x000000000077E4F2] (c:\users\bob\src\mozilla\purple\ipc\chromium\src\base\message_loop.cc, line 223)
12662 INFO MessageLoop::Run+0x0000001D [xul +0x000000000077E3FD] (c:\users\bob\src\mozilla\purple\ipc\chromium\src\base\message_loop.cc, line 197)
12663 INFO nsThread::ThreadFunc+0x00000118 [xul +0x00000000002CF368] (c:\users\bob\src\mozilla\purple\xpcom\threads\nsthread.cpp, line 354)
12664 INFO _PR_NativeRunThread+0x000000DB [nss3 +0x00000000002CAD3B] (c:\users\bob\src\mozilla\purple\nsprpub\pr\src\threads\combined\pruthr.c, line 397)
12665 INFO pr_root+0x00000019 [nss3 +0x00000000002B2969] (c:\users\bob\src\mozilla\purple\nsprpub\pr\src\md\windows\w95thred.c, line 90)
12666 INFO endthreadex+0x0000003A [MSVCR100 +0x000000000005C556]
12667 INFO endthreadex+0x000000E4 [MSVCR100 +0x000000000005C600]
12668 INFO BaseThreadInitThunk+0x0000000E [KERNEL32 +0x000000000001919F]
12669 INFO RtlInitializeExceptionChain+0x00000084 [ntdll +0x000000000004A22B]
12670 INFO RtlInitializeExceptionChain+0x0000005A [ntdll +0x000000000004A201]
TEST-INFO | Main app process: exit status 80000003

69:13.36 TEST-UNEXPECTED-FAIL | /tests/content/media/test/test_unseekable.html | application terminated with exit code 2147483651
69:13.36 runtests.py | Application ran for: 1:09:01.621000
69:13.36 zombiecheck | Reading PID log: c:\users\bob\appdata\local\temp\tmplxz8c7pidlog
PROCESS-CRASH | /tests/content/media/test/test_unseekable.html | application crashed [unknown top frame]
Crash dump filename: c:\users\bob\appdata\local\temp\tmpcw4mzt.mozrunner\minidumps\8887c7fd-85d1-4fae-9c29-d31830b5dd50.dmp
MINIDUMP_STACKWALK not set, can't process dump.
69:13.36 Stopping web server
System JS : ERROR file:///c:/Users/Bob/src/mozilla/purple/objdir/dist/bin/components/nsB
69:13.43 Stopping web socket server
69:13.43 Stopping ssltunnel
69:13.43
69:13.44 WARNING | leakcheck | missing output line for total leaks!
69:13.44 runtests.py | Running tests: end.
12671 INFO SUITE-END | took 4141s
(Reporter)

Comment 6

4 years ago
Created attachment 8476924 [details] [diff] [review]
Fix final buffered range calculation v2

Incorporate review comments from Edwin, carry forward r+.

I don't hit the crash on Mac, and since this helps us pass try there, I think we should go ahead and land this and follow up with a separate bug for the windows issue.
Attachment #8475640 - Attachment is obsolete: true
(Reporter)

Updated

4 years ago
Blocks: 1057053
(In reply to Chris Pearce (:cpearce) from comment #5)
> I got a crash on Windows running mochitests in test_unseekable with the
> patch here:

This means that the tfhd has some bytes at the end that are unaccounted for. There should be no reason for a platform difference here. Does it fail consistently?
Please use needinfo? to get my attention. I get too much bugspam to keep track.

The test also fails, because the test expects the file to be unseekable, but with your demuxer we can seek in it. :D

152 INFO TEST-UNEXPECTED-FAIL | /tests/content/media/test/test_unseekable.html | Should have no seekable ranges in unseekable media: big-buck-bunny-unseekable.mp4 - got 1, expected 0
Depends on: 1057130
https://hg.mozilla.org/mozilla-central/rev/585a44084321
Status: NEW → RESOLVED
Last Resolved: 4 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla34
Flags: qe-verify-
You need to log in before you can comment on or make changes to this bug.