Commit Graph

16 Commits

Author SHA1 Message Date
shogo4405 ae66a8e01f Remove ScreenRendererByCPU. (#1854) 2026-02-07 16:16:14 +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 4aa3b8bfa9 Add AVAudioEngine mode. (#1858) 2025-12-21 16:49:40 +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 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 9ca05352d0 add variableBitRate mode. 2025-10-25 13:41:06 +09:00
shogo4405 d11d43b7cc Add ScreenRendererByGPU. 2025-10-15 23:21:18 +09:00
shogo4405 7269d17862 add PublishView PiPView mode. 2025-09-25 00:09:56 +09:00
shogo4405 8bfd42154a Use Publish/Playback consistently as the terminology. 2025-09-14 14:07:04 +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 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