avplayer 0.3.2

Safe Rust bindings for Apple's AVPlayer + AVAssetReader — playback and frame-by-frame asset reading on macOS
Documentation
# AVPlayer 0.2.2 coverage

This release closes the remaining audited AVPlayer / AVPlayerItem gaps and brings the crate to 100% coverage of the audited macOS AVFoundation playback surface.

| Area | Swift bridge | Rust module | Example | Test | Notes |
| --- | --- | --- | --- | --- | --- |
| `AVPlayer` | `swift-bridge/Sources/AVPlayerBridge/Player.swift` | `src/player.rs`, `src/player_media_selection_criteria.rs` | `examples/04_avplayer.rs` | `tests/avplayer.rs` | Core playback, time observers, time-control/waiting reasons, rate-change observation, HDR/background/network availability-gated access, and action-at-item-end. |
| `AVPlayerItem` | `swift-bridge/Sources/AVPlayerBridge/PlayerItem.swift` | `src/player.rs`, `src/player_item.rs` | `examples/05_avplayer_item.rs` | `tests/avplayer_item.rs` | Observation (status, size, time-jumped, failed-to-end, recommended-live-offset), buffering/bit-rate/resolution preferences, variant preferences, protected-content authorization status, and custom compositor info. |
| `AVPlayerLayer` | `swift-bridge/Sources/AVPlayerBridge/PlayerLayer.swift` | `src/player_layer.rs` | `examples/06_avplayer_layer.rs` | `tests/avplayer_layer.rs` | Layer/player attachment, gravity, video rect, displayed pixel buffer. |
| `AVQueuePlayer` | `swift-bridge/Sources/AVPlayerBridge/QueuePlayer.swift` | `src/queue_player.rs` | `examples/07_avqueue_player.rs` | `tests/avqueue_player.rs` | Queue mutation, item enumeration, action-at-item-end. |
| `AVPlayerLooper` | `swift-bridge/Sources/AVPlayerBridge/PlayerLooper.swift` | `src/player_looper.rs` | `examples/08_avplayer_looper.rs` | `tests/avplayer_looper.rs` | Loop creation, status, loop count, looping items, disable looping. |
| `AVAsset` | `swift-bridge/Sources/AVPlayerBridge/Asset.swift` | `src/asset.rs` | `examples/02_avasset.rs` | `tests/avasset.rs` | Duration, metadata, tracks, async key loading. |
| `AVURLAsset` | `swift-bridge/Sources/AVPlayerBridge/UrlAsset.swift` | `src/asset.rs`, `src/url_asset.rs` | `examples/03_avurlasset.rs` | `tests/avurlasset.rs` | File/remote URL creation plus `UrlAssetOptions`. |
| `AVPlayerItemAccessLog` | `swift-bridge/Sources/AVPlayerBridge/PlayerItemLogs.swift` | `src/player_item_access_log.rs` | `examples/09_avplayer_item_access_log.rs` | `tests/avplayer_item_access_log.rs` | Access-log presence, extended log, event decoding. |
| `AVPlayerItemErrorLog` | `swift-bridge/Sources/AVPlayerBridge/PlayerItemLogs.swift` | `src/player_item_error_log.rs` | `examples/10_avplayer_item_error_log.rs` | `tests/avplayer_item_error_log.rs` | Error-log presence, extended log, event decoding. |
| `AVPlayerItemOutput` | `swift-bridge/Sources/AVPlayerBridge/PlayerItemOutputs.swift`, `swift-bridge/Sources/AVPlayerBridge/PlayerItemOutputObservers.swift` | `src/player_item_output.rs`, `src/player_item_video_output.rs`, `src/player_item_metadata_output.rs`, `src/player_item_legible_output.rs` | `examples/11_avplayer_item_metadata_output.rs`, `examples/12_avplayer_item_video_output.rs`, `examples/13_avplayer_item_legible_output.rs` | `tests/avplayer_item_metadata_output.rs`, `tests/avplayer_item_video_output.rs`, `tests/avplayer_item_legible_output.rs` | Abstract base-output timing/suppression helpers plus delegate observation for video, metadata, and legible outputs. |
| `AVPlayerItemMetadataOutput` | `swift-bridge/Sources/AVPlayerBridge/PlayerItemOutputs.swift`, `PlayerItemOutputObservers.swift` | `src/player_item_metadata_output.rs` | `examples/11_avplayer_item_metadata_output.rs` | `tests/avplayer_item_metadata_output.rs` | Output construction, attach/detach, identifiers, advance interval, delegate observation, and base-output access. |
| `AVPlayerItemVideoOutput` | `swift-bridge/Sources/AVPlayerBridge/PlayerItemOutputs.swift`, `PlayerItemOutputObservers.swift` | `src/player_item_video_output.rs` | `examples/12_avplayer_item_video_output.rs` | `tests/avplayer_item_video_output.rs` | Output construction, attach/detach, suppresses-player-rendering, delegate observation, base-output timing, and pixel-buffer queries. |
| `AVPlayerItemLegibleOutput` | `swift-bridge/Sources/AVPlayerBridge/PlayerItemOutputs.swift`, `PlayerItemOutputObservers.swift` | `src/player_item_legible_output.rs` | `examples/13_avplayer_item_legible_output.rs` | `tests/avplayer_item_legible_output.rs` | Output construction, attach/detach, native subtype filtering, delegate observation, text-styling resolution, and base-output access. |
| `AVPlayerItemTrack` | `swift-bridge/Sources/AVPlayerBridge/PlayerItemTrack.swift`, `PlayerItem.swift` | `src/player_item_track.rs` | `examples/14_avplayer_item_track.rs` | `tests/avplayer_item_track.rs` | Availability depends on AVFoundation materialization; examples/tests handle zero-track cases on synthesized AIFFs and expose typed video-field-mode access. |
| `AVPlayerMediaSelectionCriteria` | `swift-bridge/Sources/AVPlayerBridge/PlayerMediaSelectionCriteria.swift` | `src/player_media_selection_criteria.rs` | `examples/15_avplayer_media_selection_criteria.rs` | `tests/avplayer_media_selection_criteria.rs` | Preferred languages, preferred/principal characteristics, per-player application, and typed waiting/rate/background/network helpers. |
| `AVPlayerVideoOutput` | `swift-bridge/Sources/AVPlayerBridge/PlayerVideoOutput.swift` | `src/player_video_output.rs` | `examples/16_avplayer_video_output.rs` | `tests/avplayer_video_output.rs` | Tag-collection presets, output specification/configuration, player attachment, tagged-buffer inspection. |
| `AVPlayerItemRenderedLegibleOutput` | `swift-bridge/Sources/AVPlayerBridge/PlayerItemRenderedLegibleOutput.swift` | `src/player_item_rendered_legible_output.rs` | `examples/17_avplayer_item_rendered_legible_output.rs` | `tests/avplayer_item_rendered_legible_output.rs` | Rendered caption image metadata, delegate callbacks, attach/detach, video-display sizing. |
| `AVPlayerItemMetadataCollector` / `AVPlayerItemMediaDataCollector` | `swift-bridge/Sources/AVPlayerBridge/PlayerItemMetadataCollector.swift` | `src/player_item_metadata_collector.rs` | `examples/18_avplayer_item_metadata_collector.rs` | `tests/avplayer_item_metadata_collector.rs` | Collector construction, delegate callbacks, add/remove on items, and collector introspection. |
| `AVPlayerInterstitialEventController` / `AVPlayerInterstitialEventMonitor` | `swift-bridge/Sources/AVPlayerBridge/PlayerInterstitial.swift` | `src/player_interstitial_event.rs` | `examples/19_avplayer_interstitial_event.rs` | `tests/avplayer_interstitial_event.rs` | Interstitial event creation, controller scheduling, monitor state/notifications, and waiting-reason access. |
| `AVPlayerItemIntegratedTimeline` | `swift-bridge/Sources/AVPlayerBridge/PlayerItemIntegratedTimeline.swift` | `src/player_item_integrated_timeline.rs` | `examples/20_avplayer_item_integrated_timeline.rs` | `tests/avplayer_item_integrated_timeline.rs` | Current snapshot/segment inspection, periodic/boundary observers, out-of-sync notifications, and seek helpers. |

All macOS-available top-level symbols listed in `COVERAGE_AUDIT.md` are now wrapped.