Description

Licensee reported crash when playing HLS video with ElectraPlayer on iOS16.
According to their research, we can avoid the fix by doing the following:

Delete check() in the corresponding line
Engine/Plugins/Media/ElectraPlayer/Source/ElectraPlayerRuntime/Private/Runtime/Decoder/Apple/AudioDecoderAAC_Apple.cpp::689

  • Modification place
    check(*OutDataPacketDescription == nullptr);

Changed the conditions for updating the buffer in ElectraPlayer
Engine/Plugins/Media/ElectraPlayer/Source/ElectraPlayerRuntime/Private/Runtime/Decoder/Apple/AudioDecoderAAC_Apple.cpp::680

  • Fixes
  • if (InOutNumberDataPackets && *InOutNumberDataPackets)
    +if (InOutNumberDataPackets)

The former has been resolved with [Link Removed], but the latter is unregistered, probably because the specifications have changed in iOS16.
They speculate that when *InOutNumberDataPackets is 0, the audio data continues to accumulate because the buffer is not updated, and is killed by the OS due to memory usage.

Steps to Reproduce
  1. Open attached project
  2. Open HLS_iOS16 level
  3. Edit the video settings to loop ( maybe optional )
  4. PIE

result : crash

 

Have Comments or More Details?

There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-180224 in the post.

1
Login to Vote

Cannot Reproduce
ComponentMedia Framework
Affects Versions5.1
Target Fix5.2
CreatedMar 15, 2023
ResolvedApr 11, 2023
UpdatedApr 12, 2023