Closed philn closed 7 years ago
@bors-servo try
:hourglass: Trying commit 82adb0001115c32cf64b8b4a3faec560c3339dc6 with merge 2ded85e090eec9ec7fe32cb98f84666e984eeb0a...
There's a deadlock happening in the Thread shutdown logic when the host machine is under high load. I'll debug this issue which isn't specific to this PR.
:broken_heart: Test failed - status-travis
:hourglass: Trying commit cd384f8231cb06c18e21b7ccdf6a4b6adbd9e72e with merge 265123efbe75fa1b9783d3e19843d79b8899a091...
:broken_heart: Test failed - status-travis
@bors-servo r=cpearce
:pushpin: Commit 14e0075 has been approved by cpearce
:hourglass: Testing commit 14e0075d01a31cd3ab50ef0f2e1fe1cb59a381a1 with merge 25262cf0a55921379d560fb69343782c5c442ef8...
:broken_heart: Test failed - status-travis
Fixing mac now :)
Backtrace. Not sure what's going on there...
* thread #7, name = 'MediaPl~back #1', stop reason = EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0)
* frame #0: 0x00007fff339b4d70 CoreFoundation`CFHash + 336
frame #1: 0x00007fff5b1d7201 libsystem_malloc.dylib`malloc_zone_malloc + 103
frame #2: 0x00007fff339b3fa7 CoreFoundation`CFBasicHashAddValue + 231
frame #3: 0x00007fff339ea2ff CoreFoundation`CFDictionaryCreate + 271
frame #4: 0x000000010017fb41 gecko_media-0cbfd8f44fb0a820`mozilla::AppleVTDecoder::CreateOutputConfiguration(this=0x0000000100f5a860) at AppleVTDecoder.cpp:640
frame #5: 0x000000010017cefb gecko_media-0cbfd8f44fb0a820`mozilla::AppleVTDecoder::InitializeSession(this=0x0000000100f5a860) at AppleVTDecoder.cpp:500
frame #6: 0x000000010017cd27 gecko_media-0cbfd8f44fb0a820`mozilla::AppleVTDecoder::Init(this=0x0000000100f5a860) at AppleVTDecoder.cpp:67
frame #7: 0x0000000100112918 gecko_media-0cbfd8f44fb0a820`mozilla::H264Converter::Init(this=0x0000000100f5a590) at H264Converter.cpp:53
frame #8: 0x0000000100055650 gecko_media-0cbfd8f44fb0a820`mozilla::BenchmarkPlayback::InitDecoder(this=0x0000000100f435e8, aInfo=0x0000000100f44fe0) at Benchmark.cpp:231
frame #9: 0x0000000100061cc0 gecko_media-0cbfd8f44fb0a820`mozilla::BenchmarkPlayback::DemuxNextSample(this=0x0000000100f2d880, aError=0x0000000100f4b418)::$_4::operator()(mozilla::MediaResult const&) const at Benchmark.cpp:211
frame #10: 0x0000000100063e62 gecko_media-0cbfd8f44fb0a820`mozilla::EnableIf<TakesArgument<void (mozilla::BenchmarkPlayback::DemuxNextSample()::$_4::*)(mozilla::MediaResult cons constt&)>::value, mozilla::detail::MethodTrait<void (mozilla::BenchmarkPlayback::DemuxNextSample()::$_4::*)(mozilla::MediaResult cons constt&)>::ReturnType>::Type mozilla::MozPromise<RefPtr<mozilla::MediaTrackDemuxer::SamplesHolder>, mozilla::MediaResult, true>::InvokeMethod<mozilla::BenchmarkPlayback::DemuxNextSample(aThisVal=0x0000000100f2d880, aMethod=50 1c 06 00 01 00 00 00 00 00 00 00 00 00 00 00, aValue=0x0000000100f4b418)::$_4, void (mozill
a::BenchmarkPlayback::DemuxNextSample()::$_4::*)(mozilla::MediaResult cons constt&), mozilla::MediaResult>(mozilla::BenchmarkPlayback::DemuxNextSample()::$_4*, void (mozilla::BenchmarkPlayback::DemuxNextSample()::$_4::*)(mozilla::MediaResult cons constt&), mozilla::MediaResult&&) at MozPromise.h:520
frame #11: 0x0000000100061bba gecko_media-0cbfd8f44fb0a820`mozilla::EnableIf<!(false), void>::Type mozilla::MozPromise<RefPtr<mozilla::MediaTrackDemuxer::SamplesHolder>, mozilla::MediaResult, true>::InvokeCallbackMethod<false, mozilla::BenchmarkPlayback::DemuxNextSample(aThisVal=0x0000000100f2d880, aMethod=50 1c 06 00 01 00 00 00 00 00 00 00 00 00 00 00, aValue=0x0000000100f4b418, aCompletionPromise=0x0000000100f2d898)::$_4, void (mozilla::BenchmarkPlayback::DemuxNextSample()::$_4::*)(mozilla::MediaResult cons constt&), mozilla::MediaResult, RefPtr<mozilla::MozPromise<RefPtr<mozilla::MediaTrackDemuxer::SamplesHolder>, mozilla::MediaResult, true>::Private> >(mozilla::BenchmarkPlayback::DemuxNextSample()::$_4*, void (mozilla::BenchmarkPlayback::DemuxNextSample()::$_4::*)(mozilla::MediaResult cons constt&), mozilla::MediaResult&&, RefPtr<mozilla::MozPromise<RefPtr<mozilla::MediaTrackDemuxer::SamplesHolder>, mozilla::MediaResult, true>::Private>&&) at MozPromise.h:565
frame #12: 0x0000000100061015 gecko_media-0cbfd8f44fb0a820`mozilla::MozPromise<RefPtr<mozilla::MediaTrackDemuxer::SamplesHolder>, mozilla::MediaResult, true>::ThenValue<mozilla::BenchmarkPlayback::DemuxNextSample(this=0x0000000100f2d830, aValue=0x0000000100f4b418)::$_3, mozilla::BenchmarkPlayback::DemuxNextSample()::$_4>::DoResolveOrRejectInternal(mozilla::MozPromise<RefPtr<mozilla::MediaTrackDemuxer::SamplesHolder>, mozilla::MediaResult, true>::ResolveOrRejectValue&) at MozPromise.h:771
frame #13: 0x0000000100065076 gecko_media-0cbfd8f44fb0a820`mozilla::MozPromise<RefPtr<mozilla::MediaTrackDemuxer::SamplesHolder>, mozilla::MediaResult, true>::ThenValueBase::DoResolveOrReject(this=0x0000000100f2d830, aValue=0x0000000100f4b418) at MozPromise.h:497
frame #14: 0x0000000100064db4 gecko_media-0cbfd8f44fb0a820`mozilla::MozPromise<RefPtr<mozilla::MediaTrackDemuxer::SamplesHolder>, mozilla::MediaResult, true>::ThenValueBase::ResolveOrRejectRunnable::Run(this=0x0000000100f3e460) at MozPromise.h:402
frame #15: 0x000000010015e761 gecko_media-0cbfd8f44fb0a820`mozilla::TaskQueue::Runner::Run(this=0x0000000100f41a30) at TaskQueue.cpp:246
frame #16: 0x000000010014a3be gecko_media-0cbfd8f44fb0a820`nsThreadPool::Run(this=0x0000000100f43940) at nsThreadPool.cpp:228
frame #17: 0x000000010014a609 gecko_media-0cbfd8f44fb0a820`non-virtual thunk to nsThreadPool::Run(this=0x0000000100f43940) at nsThreadPool.cpp:0
frame #18: 0x00000001000cb996 gecko_media-0cbfd8f44fb0a820`nsThread::ProcessNextEvent(this=0x0000000100f43d00, aMayWait=true, aResult=0x00007000008aad9e) at nsThread.cpp:1099
frame #19: 0x000000010014ee6c gecko_media-0cbfd8f44fb0a820`NS_ProcessNextEvent(aThread=0x0000000100f43d00, aMayWait=true) at nsThreadUtils.cpp:513
frame #20: 0x00000001000c9121 gecko_media-0cbfd8f44fb0a820`nsThread::ThreadFunc(aArg=0x000070000069b028) at nsThread.cpp:475
frame #21: 0x000000010017baed gecko_media-0cbfd8f44fb0a820`_pt_root(arg=0x0000000100f43e70) at ptthread.c:216
frame #22: 0x00007fff5b2b96c1 libsystem_pthread.dylib`_pthread_body + 340
frame #23: 0x00007fff5b2b956d libsystem_pthread.dylib`_pthread_start + 377
frame #24: 0x00007fff5b2b8c5d libsystem_pthread.dylib`thread_start + 13
I don't know what happened there.... https://travis-ci.org/servo/gecko-media/jobs/295872011#L410
I don't know what happened there.... https://travis-ci.org/servo/gecko-media/jobs/295872011#L410
Look like the compiler failed to install? Worked on a re-spin: https://travis-ci.org/servo/gecko-media/builds/295872003
@bors-servo r=cpearce
:pushpin: Commit c20dd85 has been approved by cpearce
:hourglass: Testing commit c20dd85c9f20b4095cea99a939e21cb33b1f112f with merge 515f73791dda17ea4e82bc18dc3bbd560285279f...
:sunny: Test successful - status-travis Approved by: cpearce Pushing 515f73791dda17ea4e82bc18dc3bbd560285279f to master...
This PR adds support for MP4 decoders on Linux and macOS. In theory the FFVPX decoder should also work but it hasn't been tested yet.