Commit Graph

51 Commits

Author SHA1 Message Date
shogo4405 fe04d3ec6f Enhanced interoperability with other platforms. 2026-02-17 01:33:58 +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 1f5dc201b0 Make AudioMixerSettings for Codable. 2026-01-06 02:13:42 +09:00
shogo4405 5b7495a14e fix a crash caused by an AudioRingBuffer buffer overrun (#1867) 2026-01-05 20:16:09 +09:00
shogo4405 94d01a34be refactor: MediaMixer. 2026-01-02 22:41:52 +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 2466855e18 reflects the actual capture state. (#1851) 2025-12-07 22:32:14 +09:00
shogo4405 e923fe982c fixed AVCaptureSession stop reconnected when USB Audio interface. (#1850) 2025-12-07 16:49:20 +09:00
shogo4405 a16ad85480 fixed an issue where MediaMixer.frameRate would not update. (#1837) 2025-11-21 23:33:54 +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 1586e5ff76 fixed an issue where the colorSpace was not applied in SDR mode. 2025-11-08 02:42:07 +09:00
shogo4405 81f804261a fixed an issue where the Screen was active in passthrough mode. 2025-11-08 01:05:31 +09:00
shogo4405 a153096672 fixed MediaMixer memory-leak. 2025-11-07 22:31:18 +09:00
shogo4405 e51997d157 fix can't compile visionOS. 2025-11-03 15:57:45 +09:00
shogo4405 fd72ee0f35 fix can't compile tvOS 2025-11-03 15:52:59 +09:00
shogo4405 82754b7061 Support HighDynamicRange mode. 2025-11-03 14:59:40 +09:00
shogo4405 cb6284a39e refs #1824 fixed an issue where the camera could not be switched in single mode. 2025-10-28 22:51:36 +09:00
shogo4405 2f13802b47 fix memory-leak mediamixer. 2025-10-26 23:37:29 +09:00
shogo4405 5aa4753af2 fixed an issue where configuration could fail in some cases. 2025-10-26 22:41:20 +09:00
shogo4405 3f5bd01009 Modified AudioMixerTrackSettings to apply only the differences when updating settings. 2025-10-20 23:38:51 +09:00
shogo4405 d4d8ae3583 Update documents. 2025-10-07 22:51:11 +09:00
shogo4405 9a24b83b7d Add synchronizationClock. 2025-10-01 23:30:06 +09:00
shogo4405 d94be3b238 fixed a bug where isMultiCamSessionEnabled could not be set. 2025-10-01 23:09:41 +09:00
shogo4405 32da819725 Refactor CaptureSession. 2025-09-30 03:23:20 +09:00
shogo4405 f52b9a07bf Update MediaMixer.swift 2025-08-17 14:10:14 +09:00
shogo4405 26f40ced7c Add CaptureSessionMode feature. 2025-08-17 06:23:07 +09:00
shogo4405 d04d42f6ac fix can't compile tvOS 2025-08-12 00:44:49 +09:00
shogo4405 3d8518fd5f The concept of frameRate has been separated into input and output. 2025-08-07 22:45:54 +09:00
shogo4405 6b61327278 Remove start capture manually option. 2025-08-05 20:54:08 +09:00
shogo4405 1d740a458f Merge pull request #1718 from detail-co/main
Fix: heap-use-after-free in AudioMixerByMultiTrack
2025-07-08 23:50:43 +09:00
shogo4405 34dd3bf50a swiftlint --fix --format 2025-06-22 15:26:55 +09:00
Finn Voorhees 09b7e2a095 Fix heap-use-after-free in AudioMixerByMultiTrack 2025-05-21 17:06:03 +01:00
JYP in MBP 16 f5ca8e029d fixed for multi channel mixer works well with Xcode16.3 2025-05-02 15:39:00 +09:00
shogo4405 2504641851 fixed an AudioCodec did not work after the second time. 2025-02-11 20:20:21 +09:00
shogo4405 fdd1b26f28 allow changing the sampleRate for each stream. 2025-02-01 16:27:02 +09:00
shogo4405 fd8103161a Suppressing warnings. 2025-01-17 23:14:26 +09:00
shogo4405 37a4ad7d11 Suppressing warnings. 2025-01-17 22:53:19 +09:00
shogo4405 3476494aa0 refs #1663 2025-01-11 00:27:44 +09:00
shogo4405 fc99fee85f Migration CaptureSessionDelegate to 2.0.x. 2025-01-03 02:53:51 +09:00
shogo4405 23eb0ddfe0 fixed an issue where the screen might not render. 2025-01-02 16:44:07 +09:00
shogo4405 96d6ff78b9 fix memory-leak a MediaMixer instance. 2025-01-01 18:30:35 +09:00
shogo4405 12671a5d56 fixes for build errors related to Swift 6.0 compatibility 2024-12-16 01:33:30 +09:00
shogo4405 9308ed18e6 fixed an issue where multiCamSessionEnabled was not carried over. 2024-12-15 18:52:03 +09:00
shogo4405 c8ba890fa3 Add an option to start capture manually. 2024-12-15 16:13:38 +09:00
shogo4405 54785cf9eb Updating the api documentation. 2024-12-02 00:54:42 +09:00
shogo4405 fdf193c48b Take timestamps into consideration VideoTrackScreenObject. 2024-11-26 22:12:44 +09:00
shogo4405 a6f4a021b2 refs #1629 2024-11-22 21:22:34 +09:00
shogo4405 b17158fcb5 warning suppression 2024-11-22 08:16:48 +09:00