AVAssetReaderTrackOutput.copyNextSampleBuffer hangs in iOS11.

In iOS11 AVAssetReaderTrackOutput.copyNextSampleBuffer() hangs after calling reset(forReadingTimeRanges:).


We loop a subset of a media file using AVAssetReader and Audio Queue Services. It works great in iOS10, however in iOS11 it plays the media once and hangs when it reaches the end.


Sample project: github.com/vadims/AudioBugSample compare deployment to an iOS10 and iOS11 devices. In iOS11 I see it hanging here:


    frame #0: 0x000000010cb65bf2 libsystem_kernel.dylib`__psynch_cvwait + 10
    frame #1: 0x000000010cb9b7fa libsystem_pthread.dylib`_pthread_cond_wait + 712
    frame #2: 0x0000000107a459fd CoreMedia`WaitOnCondition + 14
    frame #3: 0x0000000107a45594 CoreMedia`FigSemaphoreWaitRelative + 160
    frame #4: 0x000000010dae6ce0 MediaToolbox`assetReader_ExtractAndRetainNextSampleBuffer + 501
    frame #5: 0x0000000107622af8 AVFoundation`-[AVAssetReaderOutput copyNextSampleBuffer] + 165
    frame #6: 0x0000000107623e1e AVFoundation`-[AVAssetReaderTrackOutput copyNextSampleBuffer] + 68


Is there a problem with how we're using AVAssetReader or is this an iOS11 regression?


Thank you,

Vadim

Replies

Having the same issue when switching to iOS 11, interested if you ever found a solution?

No, I filed a bug report and hoping it will be fixed before iOS 11 ships.