mirror of
https://github.com/yattee/yattee.git
synced 2025-11-20 17:02:21 +00:00
Fix array index out of bounds crash in audio track handling
This commit addresses crashes caused by race conditions when accessing audio track arrays: - MPVBackend.swift: Use safe index clamping to prevent array out of bounds crashes when selecting audio tracks - PlayerModel.swift: Add selectedAudioTrack computed property for thread-safe audio track access - ControlsOverlay.swift: Use safe accessor with "Original" fallback label - PlaybackSettings.swift: Use safe accessor with "Original" fallback label This fix resolves approximately 37% of crashes (23 out of 62 crash logs) that were caused by index out of range errors in MPVBackend.playStream at line 345.
This commit is contained in:
@@ -1575,4 +1575,11 @@ final class PlayerModel: ObservableObject {
|
||||
var availableAudioTracks: [Stream.AudioTrack] {
|
||||
(backend as? MPVBackend)?.availableAudioTracks ?? []
|
||||
}
|
||||
|
||||
var selectedAudioTrack: Stream.AudioTrack? {
|
||||
let tracks = availableAudioTracks
|
||||
guard !tracks.isEmpty else { return nil }
|
||||
let safeIndex = min(max(0, selectedAudioTrackIndex), tracks.count - 1)
|
||||
return tracks[safeIndex]
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user