Commit Graph

332 Commits

Author SHA1 Message Date
shogo4405 de6def6aae Align file names and interfaces with the other platforms for ScreenObject. (#1880)
* Rename VideoTrackScreenObject -> VideoScreenObject.

* ScreenObjectSnapshot.frame -> ScreenObjectSnapshot.size

* Support data scheme image source for ImageScreenObject.

* Add Test.
2026-02-16 00:44:28 +09:00
shogo4405 30f31b466d Rename Session -> StreamSesison. (#1879) 2026-02-11 17:51:48 +09:00
shogo4405 ae66a8e01f Remove ScreenRendererByCPU. (#1854) 2026-02-07 16:16:14 +09:00
shogo4405 80f8ae0020 Supports using the camera while multitasking. (#1870) 2026-01-14 20:15:16 +09:00
shogo4405 7276acd5e6 swiftlint --fix --format 2026-01-14 00:16:06 +09:00
shogo4405 d31ca93a23 Fix the build to support tvOS and macOS. 2026-01-13 21:34:02 +09:00
Peyt Spencer Dewar f342a6d280 iOS example app UX improvements (#1868) 2026-01-05 20:38:06 +09:00
shogo4405 d351fb1411 fixed #1863 video capture continues even while an incoming call is ringing. (#1865) 2026-01-02 16:48:38 +09:00
shogo4405 2d26e79e3e refs #1863 I fixed a crash that occurred when using AVAudioEngine in the example. 2026-01-01 15:56:32 +09:00
shogo4405 4aa3b8bfa9 Add AVAudioEngine mode. (#1858) 2025-12-21 16:49:40 +09:00
shogo4405 3626907b99 Add backgroundModes. 2025-12-05 23:18:41 +09:00
shogo4405 2e07224d16 Add UVCCamera support for Example. 2025-12-05 22:16:55 +09:00
shogo4405 b718080c4a Made expectedFrameRate optional. (#1841) 2025-11-24 20:43:05 +09:00
shogo4405 3c234d20e5 Rename #1832 2025-11-21 23:30:18 +09:00
Tabber (인병윤) b119b56969 Add framerate to RTMP onMetaData (#1832)
* feat: Add framerate to RTMP onMetaData

Adds framerate field to RTMP onMetaData for RTMP servers like
nginx-rtmp-module to correctly parse stream frame rate statistics.

The framerate value is synchronized from VideoCodec.expectedFrameRate
when MediaMixer.setFrameRate() is called.

* feat: Move expectedFrameRate to VideoCodecSettings and add framerate to RTMP metadata

- Move expectedFrameRate from VideoCodec to VideoCodecSettings
- Remove setExpectedFrameRate() method from OutgoingStream and StreamConvertible
- Add framerate field to RTMP onMetaData message
- Synchronize expectedFrameRate in MediaMixer.setFrameRate() and addOutput()
- Add helper methods for frame rate synchronization
- Make MediaMixer.defaultFrameRate public

* feat: Rename expectedFrameRate to defaultFrameRate and add framerate to RTMP metadata

- Rename VideoCodecSettings.expectedFrameRate to defaultFrameRate to represent
  a different concept from MediaMixer.frameRate
- Remove synchronization code from MediaMixer.setFrameRate() and addOutput()
  to allow independent frame rate management per stream
- Remove VideoCodec.expectedFrameRate and OutgoingStream.expectedFrameRate properties
- Add framerate field to RTMP onMetaData message for RTMP servers like
  nginx-rtmp-module to correctly parse stream frame rate statistics
- Make MediaMixer.defaultFrameRate public

This change allows each stream to have its own independent defaultFrameRate
(e.g., Service A at 30 FPS, Service B at 60 FPS) while MediaMixer can output
at a different frame rate. The defaultFrameRate is used both for VideoToolbox
encoder configuration and RTMP metadata.

Breaking changes:
- VideoCodecSettings.expectedFrameRate renamed to defaultFrameRate
- MediaMixer.addOutput() no longer synchronizes frame rate (streams must
  explicitly set defaultFrameRate via VideoCodecSettings init or setVideoSettings())
2025-11-21 23:17:23 +09:00
shogo4405 6d527ef0d5 add logging setting SampleHandler.swift 2025-11-18 22:26:25 +09:00
shogo4405 81f804261a fixed an issue where the Screen was active in passthrough mode. 2025-11-08 01:05:31 +09:00
shogo4405 8d374741b6 remove NSView+Extension.swift 2025-11-07 22:42:32 +09:00
shogo4405 6427565693 Update Example tvOS. 2025-11-04 00:33:40 +09:00
shogo4405 82754b7061 Support HighDynamicRange mode. 2025-11-03 14:59:40 +09:00
shogo4405 9ca05352d0 add variableBitRate mode. 2025-10-25 13:41:06 +09:00
shogo4405 3f5bd01009 Modified AudioMixerTrackSettings to apply only the differences when updating settings. 2025-10-20 23:38:51 +09:00
shogo4405 d11d43b7cc Add ScreenRendererByGPU. 2025-10-15 23:21:18 +09:00
shogo4405 33818def8b SuppressWarnings. 2025-10-14 01:38:01 +09:00
shogo4405 cfbe2a61c4 fixed the way errors are printed. 2025-10-14 01:34:16 +09:00
shogo4405 26c222fb77 fixed to allow error handling during recording. 2025-10-14 01:05:28 +09:00
shogo4405 c8d6e58ef3 Add recording feature for iOS Example. 2025-10-14 00:39:22 +09:00
shogo4405 c832c82189 Remove VideoRotator. 2025-10-07 01:14:38 +09:00
shogo4405 32da819725 Refactor CaptureSession. 2025-09-30 03:23:20 +09:00
shogo4405 f85da67dab fixed an issue caused by incorrect log settings. 2025-09-26 23:11:33 +09:00
shogo4405 7269d17862 add PublishView PiPView mode. 2025-09-25 00:09:56 +09:00
shogo4405 4245609541 Add SessionConfiguration protocols. 2025-09-20 00:05:17 +09:00
shogo4405 bcf6604b18 Add UIViewRepresentable for SwiftUI. 2025-09-14 20:08:03 +09:00
shogo4405 809711f7d3 Rename ViewRepresentable. 2025-09-14 14:52:37 +09:00
shogo4405 8bfd42154a Use Publish/Playback consistently as the terminology. 2025-09-14 14:07:04 +09:00
shogo4405 e4cc42f61d add WHIP Support. 2025-09-08 00:33:41 +09:00
shogo4405 40323fef1f add RTCConnection skelton. 2025-09-03 21:58:47 +09:00
shogo4405 5a48dbd7fe Stereo recording feature. 2025-08-27 00:42:58 +09:00
shogo4405 87e14fd194 Add AudioCodecSettings.Format option. 2025-08-17 21:26:44 +09:00
shogo4405 8aac9c7be1 Add Memory release test for IngestView 2025-08-17 19:33:01 +09:00
shogo4405 26f40ced7c Add CaptureSessionMode feature. 2025-08-17 06:23:07 +09:00
shogo4405 0695e28a01 Redesign of the Session API. 2025-08-16 17:23:44 +09:00
shogo4405 36f0e46f8d Modified it to configure the streaming settings using the preference information. 2025-08-15 21:56:08 +09:00
shogo4405 f6fc447a1c Add LowLatencyRateControlEnabled option. 2025-08-15 21:15:04 +09:00
shogo4405 23ae674595 Update PreferenceView.swift 2025-08-15 14:43:41 +09:00
shogo4405 e1fe4b6b59 Refactoring of the IngestViewModel. 2025-08-11 01:03:16 +09:00
shogo4405 e88287a8fa Refactoring of the ViewModel. 2025-08-10 22:51:53 +09:00
shogo4405 eb40fd95a4 Revised the reconnection process for the Session API. 2025-08-10 19:19:54 +09:00
shogo4405 3d8518fd5f The concept of frameRate has been separated into input and output. 2025-08-07 22:45:54 +09:00
shogo4405 fde65ed6a8 Update PreferenceView. 2025-08-07 08:09:48 +09:00