Closed Bug 1548113 Opened 8 months ago Closed 8 months ago

mochitest dom/media/test/test_playback.html fails to decode spacestorm-1000Hz-100ms.ogg on RDD

Categories

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

defect

Tracking

()

RESOLVED FIXED
mozilla68
Tracking Status
firefox68 --- fixed

People

(Reporter: mjf, Assigned: mjf)

References

(Blocks 1 open bug)

Details

Attachments

(2 files)

When enabling Vorbis decoding on the RDD process, one file in test_playback.html fails: spacestorm-1000Hz-100ms.ogg. In checkEnded[1], checkMetadata fails with a reported duration of 0.256 and the test is looking for 0.099.

I tried loading spacestorm-1000Hz-100ms.ogg into Audacity on macOS, but Audacity fails to open the file. I trimmed small-shot.ogg down to 0.099 length, and it reports the correct length under RDD, so it seems to be specific to spacestorm-1000Hz-100ms.ogg.

The patch to limit the mochitest to only spacestorm-1000Hz-100ms.ogg and pref-on Vorbis on RDD is included for easier debugging.

[1] https://searchfox.org/mozilla-central/source/dom/media/test/test_playback.html#62

After some debugging w/ rr, in MediaDecoderStateMachine::UpdatePlaybackPositionPeriodically the call to AudioEndTime() here[1] returns different values depending on whether the decoding the file spacestorm-1000Hz-100ms.ogg is happening on the RDD process or the content process.
Under RDD process, AudioEndTime() returns 256000.
Under content process, AudioEndTime() returns 99000, as the test expects.

[1] https://searchfox.org/mozilla-central/source/dom/media/MediaDecoderStateMachine.cpp#3423

Adding a priority to remove from triage queue. Please adjust as appropriate.

Priority: -- → P2
Blocks: RDD

More progress - VorbisDataDecoder::ProcessDecode is getting different frame counts here[1].

Under RDD process, vorbis_synthesis_pcmout returns 256 frames on the second call.
Under content process, vorbis_synthesis_pcmout returns 99 frames on the second call.

[1] https://searchfox.org/mozilla-central/source/dom/media/platforms/agnostic/VorbisDecoder.cpp#178

More progress - the difference is because VorbisDataDecoder::ProcessDecode is always sending a false here[1]. I believe we're missing initializing mEOS on MediaRawData.

[1] https://searchfox.org/mozilla-central/source/dom/media/platforms/agnostic/VorbisDecoder.cpp#158

Assignee: nobody → mfroman

Lack of mEOS for decoding Vorbis on RDD was causing a mochitest failure
with file spacestorm-1000Hz-100ms.ogg in dom/media/test/test_playback.html.
The symptom was an incorrect frame count here[1].

[1] https://searchfox.org/mozilla-central/rev/b59a99943de4dd314bae4e44ab43ce7687ccbbec/dom/media/platforms/agnostic/VorbisDecoder.cpp#178

Pushed by mfroman@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/f00e36d2011f
pass mEOS from MediaRawData to remote decoder. r=jya
Status: NEW → RESOLVED
Closed: 8 months ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla68
You need to log in before you can comment on or make changes to this bug.