Closed Bug 1533625 Opened 9 months ago Closed 7 months ago

Assertion failure: (writer->mCrypto.mIVSize == 0 && !writer->mCrypto.mConstantIV.IsEmpty()) || !s->mCencRange.IsEmpty() (Crypto information should contain either a constant IV, or have auxiliary information that will contain an IV)

Categories

(Core :: Audio/Video: Playback, defect, P3)

defect

Tracking

()

RESOLVED FIXED
mozilla69
Tracking Status
firefox-esr60 --- wontfix
firefox67 --- wontfix
firefox68 --- wontfix
firefox69 --- fixed

People

(Reporter: tsmith, Assigned: bryce)

References

(Blocks 1 open bug)

Details

(Keywords: assertion, testcase)

Attachments

(3 files)

Attached video testcase.mp4

Assertion failure: (writer->mCrypto.mIVSize == 0 && !writer->mCrypto.mConstantIV.IsEmpty()) || !s->mCencRange.IsEmpty() (Crypto information should contain either a constant IV, or have auxiliary information that will contain an IV), at src/dom/media/mp4/Index.cpp:201

30|0|libxul.so|mozilla::SampleIterator::GetNext()|hg:hg.mozilla.org/mozilla-central:dom/media/mp4/Index.cpp:4ab143dde4dc3424cfedc74b3648fbf2e47fb7bf|148|0x0
30|1|libxul.so|mozilla::MP4TrackDemuxer::GetNextSample()|hg:hg.mozilla.org/mozilla-central:dom/media/mp4/MP4Demuxer.cpp:4ab143dde4dc3424cfedc74b3648fbf2e47fb7bf|424|0x10
30|2|libxul.so|mozilla::MP4TrackDemuxer::GetSamples(int)|hg:hg.mozilla.org/mozilla-central:dom/media/mp4/MP4Demuxer.cpp:4ab143dde4dc3424cfedc74b3648fbf2e47fb7bf|499|0xb
30|3|libxul.so|mozilla::detail::ProxyFunctionRunnable<mozilla::MediaFormatReader::DemuxerProxy::Wrapper::GetSamples(int)::{lambda()#1}, mozilla::MozPromise<RefPtr<mozilla::MediaTrackDemuxer::SamplesHolder>, mozilla::MediaResult, true> >::Run()|hg:hg.mozilla.org/mozilla-central:dom/media/MediaFormatReader.cpp:4ab143dde4dc3424cfedc74b3648fbf2e47fb7bf|781|0xd
30|4|libxul.so|mozilla::TaskQueue::Runner::Run()|hg:hg.mozilla.org/mozilla-central:xpcom/threads/TaskQueue.cpp:4ab143dde4dc3424cfedc74b3648fbf2e47fb7bf|199|0x15
30|5|libxul.so|nsThreadPool::Run()|hg:hg.mozilla.org/mozilla-central:xpcom/threads/nsThreadPool.cpp:4ab143dde4dc3424cfedc74b3648fbf2e47fb7bf|241|0x15
30|6|libxul.so|nsThread::ProcessNextEvent(bool, bool*)|hg:hg.mozilla.org/mozilla-central:xpcom/threads/nsThread.cpp:4ab143dde4dc3424cfedc74b3648fbf2e47fb7bf|1166|0x15
30|7|libxul.so|NS_ProcessNextEvent(nsIThread*, bool)|hg:hg.mozilla.org/mozilla-central:xpcom/threads/nsThreadUtils.cpp:4ab143dde4dc3424cfedc74b3648fbf2e47fb7bf|482|0x11
30|8|libxul.so|mozilla::ipc::MessagePumpForNonMainThreads::Run(base::MessagePump::Delegate*)|hg:hg.mozilla.org/mozilla-central:ipc/glue/MessagePump.cpp:4ab143dde4dc3424cfedc74b3648fbf2e47fb7bf|303|0xa
30|9|libxul.so|MessageLoop::RunInternal()|hg:hg.mozilla.org/mozilla-central:ipc/chromium/src/base/message_loop.cc:4ab143dde4dc3424cfedc74b3648fbf2e47fb7bf|315|0x17
30|10|libxul.so|MessageLoop::Run()|hg:hg.mozilla.org/mozilla-central:ipc/chromium/src/base/message_loop.cc:4ab143dde4dc3424cfedc74b3648fbf2e47fb7bf|308|0x8
30|11|libxul.so|nsThread::ThreadFunc(void*)|hg:hg.mozilla.org/mozilla-central:xpcom/threads/nsThread.cpp:4ab143dde4dc3424cfedc74b3648fbf2e47fb7bf|453|0x8
30|12|libnspr4.so|_pt_root|hg:hg.mozilla.org/mozilla-central:nsprpub/pr/src/pthreads/ptthread.c:4ab143dde4dc3424cfedc74b3648fbf2e47fb7bf|201|0x7
30|13|libpthread-2.23.so||||0x76ba
30|14|libc-2.23.so||||0x10741d
Flags: in-testsuite?

Bryce, would you mind taking the first pass triage here?

Flags: needinfo?(bvandyk)

Holding the NI to investigate and rework assertion into gracefully handling. I think I can see how badly muxed files could trigger this, but will take some time to confirm my before I rework.

Priority: -- → P3

Mp4s using the 'cenc' encryption scheme should contain auxiliary information
containing the initialization vector to be used to decode that sample. However,
it's possible for malformed mp4s to contain other relevant crypto information,
but to omit this aux info. This adds such a file to our crashtests.

This assert could be triggered with malformed files, so replace it with an early
return.

Depends on D30025

Flags: needinfo?(bvandyk)
Pushed by bvandyk@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/b86f55e87201
Add crashtest for MP4 with missing cenc aux info. r=jya
https://hg.mozilla.org/integration/autoland/rev/ca560ff55451
Replace assert with early return for mp4 missing IV data. r=jya
Status: NEW → RESOLVED
Closed: 7 months ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla69
Flags: in-testsuite? → in-testsuite+
Assignee: nobody → bvandyk

P3 so wontfix 67.

I guess this can ride the trains. Feel free to reset status and request uplift if not.

See Also: → 1589499
You need to log in before you can comment on or make changes to this bug.