Skip to content

Releases: HaishinKit/HaishinKit.swift

2.2.4

09 Jan 12:28

Choose a tag to compare

What's Changed

  • Video capture continues even while an incoming call is ringing. by @shogo4405 in #1865
  • fix a crash caused by an AudioRingBuffer buffer overrun by @shogo4405 in #1867
  • iOS example app UX improvements by @psdewar in #1868

New Contributors

Full Changelog: 2.2.3...2.2.4

2.2.3

10 Dec 23:31

Choose a tag to compare

What's Changed

Full Changelog: 2.2.2...2.2.3

2.2.2

24 Nov 11:54

Choose a tag to compare

What's Changed

Notes

New Contributors

Full Changelog: 2.2.1...2.2.2

2.2.1

08 Nov 07:10
1f144f5

Choose a tag to compare

  • GPU (CIContext) rendering is now supported for ScreenObject. As a result, CPU usage has decreased by approximately 15% on iPhone SE2. In future versions, we plan to switch to GPU-only support.
  • HDR mode support has been added. However, it has not yet been applied to the live streaming feature.

What's Changed

  • Add recording feature for iOS Example. by @shogo4405 in #1813
  • Added GPU rendering support for ScreenObject. by @shogo4405 in #1816
  • Fixed an issue where the properties of AudioMixerTrackSettings were unintentionally applied to AVAudioConverter each time. by @shogo4405 in #1819
  • Supported the kVTCompressionPropertyKey_VariableBitRate option in VideoToolbox. by @shogo4405 in #1822
  • Bump rubocop from 1.81.1 to 1.81.6 by @dependabot[bot] in #1823
  • fixed an issue where the frame rate could not be configured when attaching a video using attachVideo. by @shogo4405 in #1824
  • Bump rubocop from 1.81.6 to 1.81.7 by @dependabot[bot] in #1826
  • Support HighDynamicRange mode. by @shogo4405 in #1827

Notes

Full Changelog: 2.2.0...2.2.1

2.2.0: Bump to Xcode up 26.

12 Oct 19:23
ba1f548

Choose a tag to compare

The development environment has been updated to Xcode 26. Accordingly, the minimum OS requirements for each platform have been updated. Several bugs have been fixed, and deprecated methods have been removed.

What's Changed

Full Changelog: 2.1.2...2.2.0

2.1.2

18 Sep 14:42

Choose a tag to compare

  • Fixed a bug that caused streaming errors in RTMP FMLE compatibility mode.
  • Initial support for WHEP/WHIP has been added. It’s not yet production-ready, but feel free to try it out if you’re interested.

Notes

What's Changed

Full Changelog: 2.1.1...2.1.2

2.1.1

03 Sep 12:43

Choose a tag to compare

Notes

What's Changed

Full Changelog: 2.1.0...2.1.1

2.1.0

17 Aug 05:27

Choose a tag to compare

HaishinKit has reached its 10th anniversary on August 2, 2025.

We are deeply grateful for the contributions from the OSS community and the continued support from our generous sponsors. Thank you all!
In this version, I have restructured the module configuration. The RTMP-related features that were previously in HaishinKit have been moved to RTMPHaishinKit.

Features

Session

This is an API that consolidates the connection handling of RTMP and SRT into a unified interface. It encapsulates retry logic and best practices for establishing connections

Prerequisites

import HaishinKit
import RTMPHaishinKit
import SRTHaishinKit

Task {
  await SessionBuilderFactory.shared.register(RTMPSessionFactory())
  await SessionBuilderFactory.shared.register(SRTSessionFactory())
}

Make session

let session = try await SessionBuilderFactory.shared.make(URL(string: "rtmp://hostname/live/live"))
  .setMode(.ingest)
  .build()
let session = try await SessionBuilderFactory.shared.make(URL(string: "srt://hostname:448?stream=xxxxx"))
  .setMode(.playback)
  .build()

Connect

Playback or ingest will be performed according to the selected mode setting.

try session.connect {
  print("on disconnected")
}

Notes

What's Changed

New Contributors

Full Changelog: 2.0.9...2.1.0

2.0.9

04 Jul 13:35

Choose a tag to compare

What's Changed

New Contributors

Full Changelog: 2.0.8...2.0.9

1.9.9

21 Jun 06:09

Choose a tag to compare

What's Changed

New Contributors

Full Changelog: 1.9.8...1.9.9