Open
Bug 1399318
Opened 7 years ago
Updated 2 years ago
Assertion failure: IsValid() && aOther.IsValid(), at firefox-debug/dist/include/TimeUnits.h:138
Categories
(Core :: Audio/Video: Playback, defect, P5)
Tracking
()
NEW
Tracking | Status | |
---|---|---|
firefox56 | --- | unaffected |
firefox57 | - | affected |
People
(Reporter: bc, Unassigned)
References
()
Details
(Keywords: assertion)
Attachments
(1 file)
128.83 KB,
text/plain
|
Details |
[Tracking Requested - why for this release]: 1. https://www.indy100.com/article/eu-flag-uk-burning-regulations-flame-retardant-article-50-brexit-7657391 2. Assertion failure: IsValid() && aOther.IsValid(), at /mozilla/builds/nightly/mozilla/firefox-debug/dist/include/TimeUnits.h:138 #01: mozilla::media::TimeUnit::operator<=(mozilla::media::TimeUnit const&) const (/mozilla/builds/nightly/mozilla/firefox-debug/dist/include/TimeUnits.h:138 (discriminator 3)) #02: mozilla::TrackBuffersManager::ProcessFrames(nsTArray<RefPtr<mozilla::MediaRawData> >&, mozilla::TrackBuffersManager::TrackData&) (/mozilla/builds/nightly/mozilla/dom/media/mediasource/TrackBuffersManager.cpp:1577) #03: mozilla::TrackBuffersManager::CompleteCodedFrameProcessing() (:?) #04: mozilla::TrackBuffersManager::OnAudioDemuxCompleted(RefPtr<mozilla::MediaTrackDemuxer::SamplesHolder>) (:?) #05: mozilla::MozPromise<RefPtr<mozilla::MediaTrackDemuxer::SamplesHolder>, mozilla::MediaResult, true>::ThenValue<mozilla::TrackBuffersManager*, void (mozilla::TrackBuffersManager::*)(RefPtr<mozilla::MediaTrackDemuxer::SamplesHolder>), void (mozilla::TrackBuffersManager::*)(mozilla::MediaResult const&)>::DoResolveOrRejectInternal(mozilla::MozPromise<RefPtr<mozilla::MediaTrackDemuxer::SamplesHolder>, mozilla::MediaResult, true>::ResolveOrRejectValue&) (:?) #06: RefPtr<mozilla::MozPromise<RefPtr<mozilla::MediaTrackDemuxer::SamplesHolder>, mozilla::MediaResult, true>::ThenValueBase>::assign_assuming_AddRef(mozilla::MozPromise<RefPtr<mozilla::MediaTrackDemuxer::SamplesHolder>, mozilla::MediaResult, true>::ThenValueBase*) (/mozilla/builds/nightly/mozilla/firefox-debug/dist/include/mozilla/RefPtr.h:63) Windows/Linux Nightly 57 at least. Reproduced with a Linux build from today: https://hg.mozilla.org/mozilla-central/rev/b0e945eed81db8bf076daf64e381c514f70144f0 but this goes back to at least 2017-09-02. Doesn't crash opt build on Linux fwiw. I could not reproduce with a local Beta build on Fedora however -> regression.
Comment 1•7 years ago
|
||
On the assumption this only affects debug builds I won't track this for 57. We can reconsider if it turns out this causes more user-visible problems.
Comment 2•7 years ago
|
||
this isn't a regression. The code has always been there. the assertion is only on debug release, it only shows that the media content is rubbish with samples having a negative time (end < start)
Keywords: regression,
regressionwindow-wanted
Updated•7 years ago
|
Component: Audio/Video → Audio/Video: Playback
Priority: -- → P5
In this case, the issue happens in [1]: > 1576: if (needDiscontinuityCheck && trackBuffer.mLastDecodeTimestamp.isSome() && > 1577: (decodeTimestamp < trackBuffer.mLastDecodeTimestamp.ref() || > 1578: (decodeTimestamp - trackBuffer.mLastDecodeTimestamp.ref() > 1579: > trackBuffer.mLongestFrameDuration * 2))) { decodeTimestamp = 9898666 mLastDecodeTimestamp = -9223372036844877142 (which is close to -(2^63)) The difference overflows int64, so it's an invalid CheckedInt64, which triggers the assertion in `operator >`. That's as far as I got. Not sure if the solution should be to check the difference at line 1578 before going further, or somehow notice that mLastDecodeTimestamp is just bad. Maybe `TimeUnit::operator >` should accept invalid numbers, and maybe return something like a `Maybe<bool>`? [1] http://searchfox.org/mozilla-central/rev/6326724982c66aaeaf70bb7c7ee170f7a38ca226/dom/media/mediasource/TrackBuffersManager.cpp#1576-1579
Updated•2 years ago
|
Severity: normal → S3
You need to log in
before you can comment on or make changes to this bug.
Description
•