Closed Bug 1255869 Opened 8 years ago Closed 8 years ago

stagefright: Don't call into rust on machines without sse2

Categories

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

defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla48
Tracking Status
firefox48 --- fixed

People

(Reporter: rillian, Assigned: rillian)

References

Details

Attachments

(1 file)

Bug 1253202 is caused by the rust standard library being built with sse2 instructions for the i686 target. Some 32-bit x86 users don't have support for that extension, so while we don't use it for our own code, calls into rust-std still crash with an illegal instruction.

The proper fix is to build rust-std for the target we need to support, but in the meantime, work around the issue by not calling into the rust mp4parse module if sse2 isn't available at runtime
Move MP4MetadataRust ctor into the MP4Metadata ctor body and make it conditional on sse2 detection. Without this the mRust pointer will be null and we won't call any of the methods elsewhere in the class.

Matthew, I assume you won't get to this until next week when I'm away. Do you mind taking over getting this landed and watching for re-occurance of the crashes in the parent bug? I don't have hardware to verify this, although I did test on my local linux machine by flipping the conditional and running `./mach gtest stagefright_MPEG4Metadata.*`
Attachment #8729666 - Flags: review?(kinetik)
Attachment #8729666 - Flags: review?(kinetik) → review+
https://hg.mozilla.org/mozilla-central/rev/7c53fd9ec1fe
Status: NEW → RESOLVED
Closed: 8 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla48
Blocks: 1258796
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: