Skip to main content

Release Notes

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;