Skip to main content

Release Notes

Notice

This document is a machine-translated draft and is currently undergoing review. Some content may be inaccurate or differ from the original Korean version. For the most precise information, refer to the Korean documentation.

2.3.37

Release date: 2026-07-21

Fixed

  • Fixed frame drop issue when playing at 4x speed on HW/SW player
    • Reason for change: Addressed an issue where the screen did not play back smoothly at 4x playback speed
    • Impact scope: None
    • App change required: None

2.3.36

Release date: 2026-06-11

Fixed

  • Improved failure handling logic when file path is missing after content download completion
    • Reason for change: After content download is complete, if the file save path cannot be retrieved, the download is treated as failed
    • Impact scope: None
    • App change required: None

2.3.35

Release date: 2026-04-14

Added APIs

  • Use the server-configured maximum playback speed for content
    /// KollusPlayerView.h
    /// Max playback Rate
    @property (nonatomic, unsafe_unretained, readonly) NSInteger maxPlaybackRate;
    • Reason for change: Use the server-configured maximum value for content playback speed
    • Impact scope: None
    • App change required: None

2.3.34

Release date: 2026-03-17

Added features

  • Live concurrent viewers count reporting transmission

    • Reason for change: To collect detailed statistics on live concurrent viewers
    • Impact scope: None
    • App change required: None
  • Live unauthorized IP playback blocking

    • Reason for change: Prevent playback by applying 'IP restriction'
    • Impact scope: None
    • App change required: None

2.3.33

Release date: 2026-01-26

Added APIs

  • Block playback after a certain time has passed since content started playing
    /// KollusPlayerView.h
    /// Playback Limit Duration
    @property (nonatomic, unsafe_unretained, readonly) NSInteger nPlaybackLimitDuration;

    /// Playback Limit Message
    @property (nonatomic, copy) NSString *strPlaybackLimitMessage;
    • Reason for change: Block playback after a certain time has passed since content started playing
    • Impact scope: None
    • App change required: None

2.3.32

Release date: 2025-12-30

Added features

  • Content download event data transmission
    • Reason for change: QoE data collection
    • Impact scope: None
    • App change required: None

2.3.31

Release date: 2025-12-10

Added APIs

  • Added chapter class (Chapter.h)

    /// Chapter Dictionary
    @interface ChapterDict : NSObject
    /// Language code for the chapter
    @property (nonatomic, retain) NSString* strLanguage;
    /// A list of Chapter objects
    @property (nonatomic, retain) NSMutableArray* listChapter;

    /// Chapter Information Object
    @interface Chapter : NSObject
    /// Start position of the chapter
    @property (nonatomic, unsafe_unretained) NSTimeInterval position;
    /// The display title or text content of the chapter
    @property (nonatomic, retain) NSString *value;
    • Reason for change: Enable easy video navigation using chapter information
    • Impact scope: None
    • App change required: None
  • Added chapter information query property

    • Added a property to KollusPlayerView.h to query the chapter list of a video
    @property (nonatomic, readonly) NSMutableDictionary* chapterInfo;
    • Reason for change: Enable easy video navigation using chapter information
    • Impact scope: None
    • App change required: None
    • Usage example
      • When to call: Chapter information should be referenced after the player's playback preparation is complete (prepareToPlayWithError) to obtain accurate data.
        func kollusPlayerView(_ kollusPlayerView: KollusPlayerView!, prepareToPlayWithError error: Error!)
      • Reference: func setChapterInfo()
        if let chapterInfo = playerView.chapterInfo as? [String: ChapterDict] {
        if chapterInfo.keys.contains("default_language_code") {
        NLog("The value \(String(describing: "default")) exists in the chapter language.")
        chapterList = chapterInfo["default_language_code"]?.listChapter as! [Chapter]
        } else {
        NLog("No default value in chapter language.")
        }
        NLog("chapterList : \(chapterList)")
        for chapter in chapterList {
        let value = (Float(chapter.position))/Float(data!.duration)
        controlView.sliderView.addChapter(value: value)
        }
        }

Fixed

  • Fixed tv out setting error via playback callback during live playback
    • Reason for change: Bug fix
    • Impact scope: None
    • App change required: None

2.3.30

Release date: 2025-11-10

Added APIs

  • Added content provider identification information to KollusPlayerView.h
    @property (nonatomic) NSString *contentProviderKey;
    • Reason for change: Utilize data in user behavior analytics action stats
    • Impact scope: None
    • App change required: None

Added features

  • Applied keep-alive when downloading from Kollus Edge

    • Reason for change: Reduce time and resources consumed by network connections
    • Impact scope: None
    • App change required: None
  • Added new fields and changed timestamp in network API

    • Reason for change: Utilize collected QoE data
    • Impact scope: None
    • App change required: None
  • Added cpk field to action stats API

    • Reason for change: Improve data usability in user behavior analytics action stats
    • Impact scope: None
    • App change required: None

2.3.29

Release date: 2025-10-27

Added features

  • Toggle user behavior analytics data transmission on/off (Kollus Player only)

    • Reason for change: Not applicable to SDK customers; added a scenario to toggle user behavior analytics data transmission on/off per customer
    • Impact scope: None
    • App change required: None
  • Detailed device type classification in User-Agent

    • Reason for change: Distinguish hits by device
    • Impact scope: None
    • App change required: None
  • Fixed issue where customer-configured message in DRM Callback response was not displayed during download request

    • Reason for change: When a content download request is made and the DRM Callback response is set to false, the configured message should be displayed
    • Impact scope: None
    • App change required: None

2.3.28

Release date: 2025-08-12

Added features

  • Recording prevention during PIP mode playback
    • Reason for change: Prevent recording during PIP mode playback
    • Impact scope: None
    • App change required: None

2.3.27

Release date: 2025-08-06

Added features

  • Error code and error report when a known black screen occurs during live playback
    • Reason for change: Identify black screen occurrences
    • Impact scope: None
    • App change required: None

2.3.26

Release date: 2025-06-24

Added features

  • Network quality monitoring
    • Reason for change: Collect network quality data
    • Impact scope: None
    • App change required: None

2.3.25

Release date: 2025-06-05

Added APIs

  • In "KollusStorage.h"
    • /// Set Kollus SDK storage folder: creates a kollus subfolder
      @property (nonatomic, copy, readonly) NSString *storagePath;
    • (BOOL)setKollusPath:(NSString *)path;
    • Reason for change: Added API for specifying SDK storage folder
    • Impact scope: None
    • App change required: None
    • Usage example
      • Use before calling (BOOL)startStorage:(NSError**)error;
        storage = KollusStorage()
        let dateString = "2025/12/31"
        storage.applicationKey = "4172322ee271bxxxxxxxxxxx…..2880b2411"
        storage.applicationBundleID = "com.example.KollusPlayer"
        let paths = NSSearchPathForDirectoriesInDomains(.libraryDirectory, .userDomainMask, true)
        storage.setKollusPath(paths.first)
        try storage.start()
      • This method should only be used in new apps. Otherwise, previously downloaded content will not be accessible.
      • Must be used before calling the startStorage function. Uses the Document folder as the default path.

2.3.24

Release date: 2025-05-15

Added APIs

  • In "SubTitleInfo.h"
    • /// Whether AI Subtitle
      @property (nonatomic) BOOL isAISubtitles;
    • Reason for change: Added API to check whether AI Subtitle is applied
    • Impact scope: None
    • App change required: None

2.3.23

Release date: 2025-03-25

Added APIs

  • In "KollusPlayerView.h"
    • /// Content Provider Name
      @property (nonatomic) NSString *contentProviderName;
    • Reason for change: Provide customer name
    • Impact scope: None
    • App change required: None
    • /// Whether background playback is enabled
      @property (nonatomic, unsafe_unretained, readonly) BOOL disableBackgroundAudio;
    • Reason for change: Whether content playback is allowed in the background state
    • Impact scope: None
    • App change required: None

2.3.22

Release date: 2025-02-25

Added features

  • Enhanced KollusSDK error collection
    • Reason for change: To collect errors that occur before player initialization
    • Impact scope: None
    • App change required: None

Fixed

  • Fixed currentPlaybackTime error when switching from background paused state to foreground while using HW Decoder

    • Reason for change: Bug fix
    • Impact scope: None
    • App change required: None
  • Fixed app crash when entering background while stopping playback with HW Decoder

    • Reason for change: Bug fix
    • Impact scope: None
    • App change required: None

2.3.21

Release date: 2025-02-06

Added features

  • Minimum supported OS for iOS Kollus Player SDK: iOS 15.0 and above
    • Reason for change: Xcode 16 supports on-device debugging from iOS 15
    • Impact scope: YES (not supported on devices running below iOS 15)
    • App change required: YES (Minimum Deployments must be changed to at least 15.0 in Xcode settings)

Fixed

  • Removed Last-modified check in m3u8 header during iOS HLS streaming playback
    • Reason for change: When streaming HLS on-the-fly, the Last-modified information is not included in the header, causing playback failure
    • Impact scope: None
    • App change required: None

2.3.20

Release date: 2025-01-14

Added APIs

  • In "KollusPlayerView.h"
    • /// Next episode playback Show Button
      @property (nonatomic, unsafe_unretained, readonly) BOOL nextEpisodeShowButton;
    • Reason for change: Show/hide the [Next Episode] button based on the media_info option even when the auto-play next episode setting is On
    • Impact scope: None (only applicable to customers who require this flag value)
    • App change required: None (only applicable to customers who require this flag value)

Deleted APIs

  • In "KollusPlayerView.h"
    • /// Whether audio watermark is applied
      @property (nonatomic, unsafe_unretained, readonly) BOOL isWaterMark;
    • Reason for change: AWT (Audio watermark) EOL declared & no current users
    • Impact scope: None
    • App change required: None

Added features

  • UI distinction when using debug SDK

    • When an app is built using the debug SDK, a UI element is added to notify users. (Displays "Debug" text at the top of the video)
    • Reason for change: Prevent the debug SDK from being applied to production apps
    • Impact scope: None
    • App change required: None
  • Apply per-content media info decryption key

    • Apply per-content media info encryption key
    • Reason for change: Security enhancement
    • Impact scope: None
    • App change required: None

2.3.19

Release date: 2024-12-17

Changed APIs

  • In "KollusPlayerLMSDelegate.h"
    • @param json JSON object sent as request
      @param error Network error (nil: success)
    • (void)kollusPlayerView:(KollusPlayerView *)kollusPlayerView json:(NSDictionary *)json error:(NSError *)error;
    • =>
    • @param lmsData lms data information
      @param resultJson lms result information
    • (void)kollusPlayerView:(KollusPlayerView *)kollusPlayerView lmsData:(NSString *)lmsData resultJson:(NSDictionary *)resultJson;
    • Reason for change: API changed due to request to add the received URL to LMS data information
    • Impact scope: Yes (app must apply the changed API as build errors will occur)
    • App change required: Yes (app must apply the changed API as build errors will occur)

Added features

  • Prevent auto-play when setting playback speed

    • Paused state → playback speed event → SDK stores the set value, then applies the playback speed value at the time of the Play event
    • Reason for change: Prevent the content from playing when playback speed is set in a paused state
    • Impact scope: None
    • App change required: None
  • Skip Pause event while seeking

    • When seeking during content playback, if a pause event occurs before the seek is complete, the pause result is inconsistent
    • Reason for change: Pause event during seeking may affect the seek operation, so it is ignored
    • Impact scope: None
    • App change required: None

2.3.18

Release date: 2024-11-07

Added APIs

  • Added ignoreZero in "KollusPlayerView.h"
    • /// Resume is valid even when the resume time value is small
      @property (nonatomic, unsafe_unretained, readonly) BOOL ignoreZero;
    • Returns the value of the ign_z flag passed as a query parameter in the playback URL. (default: false)
    • Reason for change: Added at the request of customers who want to resume playback even when the resume time is within a certain duration from the beginning or end (less than 10 seconds for Kollus Player), ignoring the scenario of playing from the start
    • Impact scope: None (only applicable to customers who require this flag value)
    • App change required: None (only applicable to customers who require this flag value)

Added features

  • Resume valid flag even when resume time value is small

    • Returns the value of the ign_z flag passed as a query parameter in the playback URL. (default: false)
    • Reason for change: Added at the request of customers who want to resume playback even when the resume time is within a certain duration from the beginning or end (less than 10 seconds for Kollus Player), ignoring the scenario of playing from the start
    • Impact scope: None (only applicable to customers who require this flag value)
    • App change required: None (only applicable to customers who require this flag value)
  • Kollus DRM and content security enhancement

    • Reason for change: Kollus security enhancement
    • Impact scope: Kollus customers (V/G encryption version upgrade and DRM encryption/decryption module update)
    • App change required: None

2.3.17

Release date: 2024-09-11

Added features

  • Added LMS Callback delivery items (background and foreground timestamp values)
    • After change: Added feature to calculate the time a user spends in the background
    • Impact scope: No impact as this is a new API
    • App change required: Not required

2.3.16

Release date: 2024-08-29

Added features

  • Applied on-the-fly DRM: Apply Kollus DRM per content

2.3.15

Release date: 2024-08-13

  1. Applied PallyConFPSSDK.framework 2.3.0: must be replaced in the app
  2. Exception handling for missing newline characters in SRT subtitles
  3. ERROR_KOLLUS_STORAGE_IS_EMPTY error handling when StorageManager is nil

2.3.14

Release date: 2024-06-25

  1. Applied PallyConFPSSDK.framework 2.1.0: must be replaced in the app

2.3.13

Release date: 2024-06-19

  1. Supplemented exception handling for [KollusAVPlayerView checkOutPut] crash

2.3.12

Release date: 2024-05-09

  1. Improved choppy playback issue with AI Speed on iPhone

2.3.11

Release date: 2024-04-15

  1. AI Speed content plays according to ios_player_type
  2. Added AI Speed content information to N-screen
  3. Added privacy manifest file
    /// Player type: hw, sw, native
    @property (nonatomic, copy, readonly) NSString *iosPlayerType;

2.3.10

Release date: 2024-03-28

  1. Exception handling for [KollusProxyPlayerView checkOutPut] crash
  2. Background sound playback support during H/W Decoder playback
  3. Applied next episode playback scenario
  4. Added next episode APIs
    /// Next episode playback Show Time
    @property (nonatomic, unsafe_unretained, readonly) NSInteger nextEpisodeShowTime;
    /// Next episode playback URL
    @property (nonatomic, copy, readonly) NSString *nextEpisodeCallbackURL;
    /// Next episode playback Params
    @property (nonatomic, readonly) NSMutableDictionary *nextEpisodeCallbackParams;

2.3.9

Release date: 2024-03-04

  1. Added AI Speed playback time in LMS callback: at_playtime
  2. iOS support: iOS 12 and above
  3. Fixed issue where subtitles from a previous timing were briefly displayed when seeking multiple times consecutively

2.3.8

Release date: 2024-02-05

  1. Backup storage to prevent player ID from changing
  2. AI Speed information is also passed in the Native player

2.3.7

Release date: 2024-01-12

  1. Fixed abnormal display issue when seeking H.265 video with iOS Player sw decoder setting
  2. AI Speed feature
  3. Added section playback parameters
    Added AI Speed related APIs
    In KollusPlayerView.h
    /// Whether AI Speed is supported
    @property(nonatomic, unsafe_unretained) BOOL AIRateEnable;

    /// AI Speed usage setting (YES: AI Speed, NO: normal playback speed)
    @param YES(default);

    (void) setAIRate:(bool)bAIRate;

    /// Repeat Start Time
    @property (nonatomic, unsafe_unretained, readonly) NSInteger nRepeatStartTime;
    /// Repeat End Time
    @property (nonatomic, unsafe_unretained, readonly) NSInteger nRepeatEndTime;