<!--
{
  "availability" : [
    "iOS: 27.0.0 -",
    "iPadOS: 27.0.0 -",
    "macCatalyst: 27.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "MediaDevice",
  "identifier" : "/documentation/MediaDevice/RealtimeSampleHandling",
  "metadataVersion" : "0.1.0",
  "role" : "Protocol",
  "symbol" : {
    "kind" : "Protocol",
    "modules" : [
      "Media Device"
    ],
    "preciseIdentifier" : "s:11MediaDevice22RealtimeSampleHandlingP"
  },
  "title" : "RealtimeSampleHandling"
}
-->

# RealtimeSampleHandling

A protocol that extends a media device extension to support realtime sample delivery.

```
@MainActor protocol RealtimeSampleHandling : MediaDeviceExtension
```

## Realtime Video Processing

Use `ScreenCaptureKit` to receive system video samples,
then use `VideoToolbox` for video sample encoding.

1. Provide an implementation of [`startRealtimeSampleDelivery(session:)`](/documentation/MediaDevice/RealtimeSampleHandling/startRealtimeSampleDelivery(session:)).
2. Set up ScreenCaptureKit for a media device extension:

```swift
let picker = SCContentSharingPicker.shared()
picker.addObserver(self)
picker.active = true
```

1. Receive an `SCContentFilter` from the `SCContentSharingPicker` observer.
2. Create an `SCStream`. Call `addStreamOutput(_:type:sampleHandlerQueue:)`, and start with `startCapture()`.
3. Receive and process real time screen samples via the `SCStreamOutput` protocol.

## Realtime Audio Processing

Use `AudioServerDriver` to receive system audio samples,
then use `AudioToolbox` for audio sample encoding.

## Topics

### Instance Methods

[`func startRealtimeSampleDelivery(session: MediaOutputSession)`](/documentation/MediaDevice/RealtimeSampleHandling/startRealtimeSampleDelivery(session:))

Called when the extension can receive realtime samples.

[`func stopRealtimeSampleDelivery(session: MediaOutputSession)`](/documentation/MediaDevice/RealtimeSampleHandling/stopRealtimeSampleDelivery(session:))

Called when the extension should stop realtime sample delivery.

## Relationships

### Inherits From

[`AppExtension`](/documentation/ExtensionFoundation/AppExtension)

[`MediaDeviceExtension`](/documentation/MediaDevice/MediaDeviceExtension)

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)