ExpressPlay SDK Release Notes


Listed in reverse chronological order are key differences and incremental changes introduced from one version to the next, as well as a list of known issues that did not get resolved in the release.

Note: Starting with 1.4, ExpressPlay is available as a source SDK suitable for embedded platform development as well as a binary SDK suitable for media player/ebook player development on desktop and mobile (iOS and Android) platforms. For the binary SDK please consult www.expressplay.com/developer for information.

These release notes cover all platform variants of the ExpressPlay SDK, including the ExpressPlay Source SDK.


07/28/2018: Wasabi And ExpressPlay SDK 1.23.0


Contents:
  1. Changes since the last release 1.22.0
  2. Known Issues
  3. Notes
Changes since the last release 1.22.0
  • Enhanced Playlist proxy to include resolution information from DASH mpd to the generated HLS playlist.
  • Added support for VS2015 target build.
  • Added support for audio-only DASH streaming with Demuxed HLS playlist of PlaylistProxy.
  • Enhanced Playlist Proxy support to transform DASH CENC input media to clear Demuxed HLS media for encrypted HLS content, fast start feature and Desktop Proxy packages.
  • Added Beta version of MediaCrypto module, currently supports only BBTS 2.0 decryption.
  • Added new Wasabi Runtime properties “WSB_PROPERTY_NAME_DEVICE_MANUFACTURER_ID” and “WSB_PROPERTY_NAME_SHORT_DEVICE_ID” supported only in ExpressPlay CA device.
  • Introduced WSB_RevocationState_Get API supported only in ExpressPlay CA device.
  • Enhanced Ecm Decrypter module to handle XPCA Broadcast Delivery spec.
  • Added support for BBTS 1.x version has been removed.
  • Bug Fixes :
    • – #WAS-874 PlaylistProxy response should not include #EXT-X-ENDLIST in the master playlist
    • – #2268: FairPlay : No Audio/Video synchronization while playing ‘Single Fragmented MP4’ with ac3 audio codec only on iPhon6s(10.1.1)
    • – #2272: PlaylistProxy(DASH To Demuxed HLS): Unable to Play DASH Audio only content on all PlaylistProxy platforms(Android, iOS, MAC, Windows)
    • – #2284: PlaylistProxy(DASH To Demuxed HLS): Playback stops abruptly while playing “Dash_MultipleAudioTrack_CBCS” content on iOS devices
    • – #2310: Cannot stream Demuxed hls playlist on Chromecast device
2. Known Issues
  • Wasabi build is not supported with Android NDK r5b version.
  • #1215: Landscape view of Loop Player is showing player as in portrait view in iPhone 4S and iPad 2 (iOS6). After the content played without seek first time fully in landscape view, the player starts playing in portrait view even though the device is in landscape view for the second time. This is a limitation of the sample player.
  • Audio bitrate changes might cause small temporary freezes in the rendering pipeline for the desktop platforms.
  • Bento4 does not implement Fragmented Sample Table seek operations completely, and produced HLS TS fragments may have grossly audio and video non-interleaved fragments that the Android HLS media stack does not handle gracefully.
  • #1567: SamplePlayer: On desktop, the playback freezes for a second after 2-3 seconds. of the start of the playback for few of the test HLS static contents.
  • #1581: Playing Live DASH can get player and server out of sync after about 1h30m of playing. It is recommended the player implement some server time sync mechanism.
  • #1656 – On Windows, Wasabi does not accept “file:///c:/” as file URL in personalization token. Use “file://c:/” instead.
  • #1820: LoopPlayer: Application controls are not visible in landscape view in iOS8
  • #2117: iOS: Green patch occurs during video playback when playlistProxy started with WSB_PP_FLAG_ALLOW_EXTERNAL_CLIENT flag for “w0011fa3h02.p229.mlv” large PDCF content. Without this Flag, no issues.
  • Unplugging USB headset during content playback causes the minor delay in video in Windows Platform. The cause was traced down to an issue in the Microsoft API which returns bogus position occasionally and caused wrong computation of the CTS (Composition Time Stamp) for audio and video presentation.
  • #2145: MS3 HTTP header version in Client is not correct, it is 1.0 instead of 1.2.
  • #2161: WasabiAospPlayer: Unable to play local fragmented mp4 content present in /data/local/tmp. SELinux in AOSP potentially needs adjustment based on the android version.
  • #2168: DASH FairPlay: Unable to play the proxy response of Multi CID DASH contents on FairPlay application when proxy started with “-fairplay-encrypted-hls”
  • #2226: Multi DRM: Unable to play Encrypted segments of Fast Start content with iOS FairPlay application only on iOS 11 beta and iOS 10.3.3
  • #2267: iOS FairPlay : Playback stops in the middle and application(FPS_Sample_Client) pops up with “Cannot Complete Action” error only on iPhone 6s(10.1.1) when playing Single Fragmented MP4 content with ac3 audio codec type.
  • #2260: JNI: WSB_MediaType doesn’t implement “SUBTITLE” type in JNI layer similar to “WSB_MEDIA_TYPE_SUBTITLE” type in C level
  • #2295: JNI: MediaFile returns null value for Track info when Dash clear content and also a mixture of tracks where some are clear and some are encrypted is given as input
  • WAS-897: ExpressPlayer application shows blank screen from iOS 11.1 or greater version.
  • WAS-977: Wasabi build fails with gcc 8.1
  • WAS-984: A Subtle issue with -program-number command line switch in TS2 and few Wasabi programs where the program number of “1” is handled as a special value that indicates the first program in PAT.
  • Demux HLS playlist from playlist proxy known to cause playback issues of few contents only in NU Player but those seems to play fine with latest exoplayer.
3. Notes:
  • ExpressPlaySDK 1.16 or later for iOS supports “bitcode” feature introduced in iOS 9 and later. And hence it is mandatory to build iOS app with ExpressPlaySDK 1.16 or later using Xcode7 or later. Bitcode is enabled by default in Xcode7. To disable, go to Project Settings -> Build Settings -> Build Options and change “Enable Bitcode” to No.
  • A new iOS9 feature disallows clear HTTP transfers by default. To work around this, an application using Playlist Proxy needs to add an App Transport Security exception to the application’s Info.plist file. The exception could be specific to a domain, or could be an overall exception for any HTTP access in case application accesses many media contents over HTTP.
  • Support for MIPS 64-bit architecture android library is only available in evaluation SDK package.
  • In AOSP, our testing has been limited to AOSP-O version and that there might be problems on specific devices.
  • ExpressPlaySDK for MAC Proxy can be compiled using libc++ compiler.
  • Updated Readme-iOS.txt regarding new App Transport Security exception for iOS 10 and backward compatibility.
  • Starting from 1.19.0 release, building ExpressPlayExample requires iOS 8 SDK or above since it is now using AVKit framework which is supported from iOS 8 version onwards.
  • When integrating the source SDK with a 3rd party provided implementation of SKB, please note that:
    • – The SKB (Secure Key Box) API has been changed from 1.0 to 1.1.
    • – New SKB 1.1 interface is backwards compatible with 1.0, at source level (alternate SKB implementation requires recompilation with the new SkbSecureKeyBox.h v1.1 header), except for requiring two new functions to be provided by the SKB implementation: SKB_Cipher_ProcessAad and SKB_Cipher_ProcessFinal
    • – As the simplest upgrade from SKB 1.0 to SKB 1.1, a proprietary SKB implementation can provide the two new functions as stubs that return SKB_ERROR_NOT_SUPPORTED. The downside to not implementing the full functionality in these new functions is that the client will not be able to negotiate any GCM based TLS cipher suite
    • – The complete implementation of the new SKB APIs is included in the Sockeye source SDK provided separately.
    • – The SKB HMAC transform must support more than 14 bytes (e.g. 20 bytes) long HMAC key (this has not been the case with Sockeye 1.0 and Sockeye 1.0-hkp2; the change is included in the new Sockeye SDKs).
    • – TThe complete set of SKB 1.1 functionality needed to support Wasabi Client includes the SKB 1.0 functionality plus support for AES-128-GCM cipher, HMAC-SHA256 transform and the two new SKB functions SKB_Cipher_ProcessAad and SKB_Cipher_ProcessFinal

02/07/2018: Wasabi And ExpressPlay SDK 1.22.0


Contents:
  1. Changes since the last release 1.21.0
  2. Known Issues
  3. Notes
Changes since the last release 1.21.0
  • Added support in Playlistproxy to transform fMP4/cenc to HLS/TS/Sample AES for playback with FairPlay license on iOS.
  • Playlist Proxy can now be configured to transform DASH CENC input media to clear Demuxed HLS media. This option is supported on iOS/Android only.
  • Added a new ‘x-ms3-mediatransform’ HTTP header to mark Marlin license acquisitions used in content transformation where the actual playback will happen via a second license.
  • Enhanced Media Downloader robustness to deal with high-level atom types.
  • MediaAdapter Enhancements:
    • – Enhanced MediaAdapter detection of HD playback capability on Android devices (if Native DRM is preferred, check if Widevine is supported and at Level L1 or L2. If so, don’t fallback to Marlin. If L3 or no Widevine, fallback to Marlin).
    • – Enhanced MediaAdapter to use Marlin BB license when desired.
  • Added new WSB_TrackInfo_GetContentProtection() API for both native and Java/JNI API to return ContentProtection element for the corresponding track.
  • ExpressPlay SDK related changes:
    • – Added MediaAdapter multidrm functionality support for tvOS platform.
    • – Added ExpressPlayMediaAdapterExample sample application to illustrate the usage of MediaAdapter multidrm api feature on tvOS platform.
    • – ExpressPlay Windows and MAC Desktop proxy SDK packages doesn’t require separate add-on packages from now.
    • – ExpressPlay Windows and MAC Regular Desktop SDKs are deprecated from this release.
  • Bug Fixes :
    • – #2253: Android scons build fails with the latest NDK r16-beta1
    • – #2264: Don’t fail on bandwidth=0 in dash mpd representation
    • – #2271: Fairplay Transcription must use Video track encryption key to re-encrypt the DASH CENC stream
    • – WSB_MediaSegmentDecrypter_Init() depicts memory leak when decrypter re-intiated with WSB_MediaSegmentDecrypter_HlsInitData(Zendesk#1899)
    • – #​2314: JNI: MediaAdapter_Close() API does not stop PlaylistProxy instance at JNI level.
2. Known Issues
  • Wasabi build is not supported with Android NDK r5b version.
  • #1215: Landscape view of Loop Player is showing player as in portrait view in iPhone 4S and iPad 2 (iOS6). After the content played without seek first time fully in landscape view, the player starts playing in portrait view even though the device is in landscape view for the second time. This is a limitation of the sample player.
  • Audio bitrate changes might cause small temporary freezes in the rendering pipeline for the desktop platforms.
  • Bento4 does not implement Fragmented Sample Table seek operations completely, and produced HLS TS fragments may have grossly audio and video non-interleaved fragments that the Android HLS media stack does not handle gracefully.
  • #1567: SamplePlayer: On desktop, the playback freezes for a second after 2-3 seconds. of the start of the playback for few of the test HLS static contents.
  • #1581: Playing Live DASH can get player and server out of sync after about 1h30m of playing. It is recommended the player implement some server time sync mechanism.
  • #1656 – On Windows, Wasabi does not accept “file:///c:/>path<” as file URL in personalization token. Use “file://c:/>path<” instead.
  • #1820: LoopPlayer: Application controls are not visible in landscape view in iOS8
  • #2117: iOS: Green patch occurs during video playback when playlistProxy started with WSB_PP_FLAG_ALLOW_EXTERNAL_CLIENT flag for “w0011fa3h02.p229.mlv” large PDCF content. Without this Flag, no issues.
  • Unplugging USB headset during content playback causes the minor delay in video in Windows Platform. The cause was traced down to an issue in the Microsoft API which returns bogus position occasionally and caused wrong computation of the CTS (Composition Time Stamp) for audio and video presentation.
  • #2145: MS3 HTTP header version in Client is not correct, it is 1.0 instead of 1.2.
  • #2161: WasabiAospPlayer: Unable to play local fragmented mp4 content present in /data/local/tmp. SELinux in AOSP potentially needs adjustment based on the android version.
  • #2168: DASH FairPlay: Unable to play the proxy response of Multi CID DASH contents on FairPlay application when proxy started with “-fairplay-encrypted-hls”
  • #2226: Multi DRM: Unable to play Encrypted segments of Fast Start content with iOS FairPlay application only on iOS 11 beta and iOS 10.3.3
  • #2267: iOS FairPlay : Playback stops in the middle and application(FPS_Sample_Client) pops up with “Cannot Complete Action” error only on iPhone 6s(10.1.1) when playing Single Fragmented MP4 content with ac3 audio codec type.
  • #2268: FairPlay : No Audio/Video synchronization while playing ‘Single Fragmented MP4’ with ac3 audio codec only on iPhon6s(10.1.1)
  • #2260: JNI: WSB_MediaType doesn’t implement “SUBTITLE” type in JNI layer similar to “WSB_MEDIA_TYPE_SUBTITLE” type in C level
  • #2295: JNI: MediaFile returns null value for Track info when Dash clear content and also a mixture of tracks where some are clear and some are encrypted is given as input
  • Dash to Demuxed Clear HLS Issues:
    • – Playback issues of few contents only in NU Player but those seems to play fine with latest exoplayer.
    • – #2272: PlaylistProxy(DASH To Demuxed HLS): Unable to Play DASH Audio only content on all PlaylistProxy platforms(Android, iOS, MAC, Windows)
    • – #2284: PlaylistProxy(DASH To Demuxed HLS): Playback stops abruptly while playing “Dash_MultipleAudioTrack_CBCS” content on iOS devices
    • – #2310: Cannot stream Demuxed hls playlist on Chromecast device
3. Notes:
  • ExpressPlaySDK 1.16 or later for iOS supports the “bitcode” feature introduced in iOS 9 and later. Hence it is mandatory to build the iOS app with ExpressPlaySDK 1.16 or later using Xcode7 or later. Bitcode is enabled by default in Xcode7. To disable, go to Project Settings -> Build Settings -> Build Options and change “Enable Bitcode” to No.
  • A new iOS9 feature disallows clear HTTP transfers by default. To work around this, an application using Playlist Proxy needs to add an App Transport Security exception to the application’s Info.plist file. The exception could be specific to a domain, or could be an overall exception for any HTTP access in case the application accesses media contents over HTTP.
  • Support for the MIPS 64-bit architecture Android library is only available in the evaluation SDK package.
  • In AOSP, our testing has been limited to the AOSP-M version, so there might be problems on specific devices.
  • ExpressPlaySDK for MAC Proxy can be compiled using libc++ compiler.
  • Updated the Readme-iOS.txt regarding new App Transport Security exception for iOS 10 and backward compatibility.
  • Starting from the 1.19.0 release, building the ExpressPlayExample requires the iOS 8 SDK or above since it is now using AVKit framework which is supported from iOS 8 version onwards.
  • When integrating the source SDK with a 3rd party provided implementation of SKB, please note that:
    • – The SKB (Secure Key Box) API has been changed from 1.0 to 1.1.
    • – The new SKB 1.1 interface is backwards compatible with 1.0, at the source level (alternate SKB implementation requires recompilation with the new SkbSecureKeyBox.h v1.1 header), except for requiring two new functions to be provided by the SKB implementation: the SKB_Cipher_ProcessAad and the SKB_Cipher_ProcessFinal
    • – To upgrade a proprietary SKB implementation from SKB 1.0 to SKB 1.1, provide the two new functions as stubs that return SKB_ERROR_NOT_SUPPORTED. The downside to not implementing the full functionality in these new functions is that the client will not be able to negotiate any GCM based TLS cipher suite.
    • – The complete implementation of the new SKB APIs is included in the Sockeye source SDK provided separately.
    • – The SKB HMAC transform must support more than 14 bytes (e.g. 20 bytes) long HMAC key (this has not been the case with Sockeye 1.0 and Sockeye 1.0-hkp2; the change is included in the new Sockeye SDKs).
    • – The complete set of SKB 1.1 functionality needed to support Wasabi Client includes the SKB 1.0 functionality plus support for AES-128-GCM cipher, HMAC-SHA256 transform and the two new SKB functions SKB_Cipher_ProcessAad and SKB_Cipher_ProcessFinal.
  • PlaylistProxy(DASH to Demuxed HLS): Support for encrypted HLS content, Fast Start feature and Desktop Proxy is under consideration for the future releases.

10/05/2017: Wasabi And ExpressPlay SDK 1.21.0


Contents:
  1. Changes since the last release 1.20.0
  2. Known Issues
  3. Notes
Changes since the last release 1.20.0
  • Added support for DASH profile ‘urn:mpeg:dash:profile:isoff-on-demand:2011’.
  • Added support in iOS/Android to download/create a single media file from a DASH single period manifest with on-demand profile, as well as from a static representation with live profile. The latter is supported for content packaged with Bento4 tools.
  • Added a new Wasabi Multi-DRM API (WSB_MediaAdapter_* APIs) in iOS/Android, which accepts the new ExpressPlay Universal License Token and a DASH streaming manifest.
    • The new API enables the app to use either Native or Marlin DRM.
    • Both DRMs can also be used with Marlin as fallback if the Native DRM is not available for content decryption.
      1. In the case of iOS, the selection of Native DRM results in the use of Marlin to transform of the DASH media to HLS/SAMPLE-AES/TS2/AppleSpec media and the Universal Token is used to acquire a FairPlay license.
      2. In the case of Android, Marlin may be requested as an alternate to Widevine if it is not available.
  • Enhanced the MediaFile API implementation to extract representation IDs from the DASH manifest. In addition, the semantic of track count for DASH has changed from # of AdaptationSet to # of Representation.
  • Enhanced AOSP implementation to play H265 content via Nuplayer.
  • Re-enabled support for “WASABI_PROPERTY_KEY_SPACE” runtime property.
  • PlaylistProxy Enhancements:
    • – Added support for Subtitles in Playlist Proxy when playing back m4f and PDCF content.
    • – Enhanced Playlist Proxy to not filter out HD representations for DASH and fragmented m4f content when transforming input to FairPlay protected content via the new MediaAdapter API or a new PlaylistProxy flag.
    • – Improved Bandwidth computation for Fragmented mp4 and PDCF contents.
  • ExpressPlay SDK related changes:
    • – Added ExpressPlayDownloadExampleBB sample application to illustrate the use of the MediaDownload feature on Android and iOS platforms.
    • – Added the ExpressPlayMediaAdapterExample sample application to illustrate the use of the MediaAdapter multidrm api feature on Android and iOS platforms.
    • – Added ExpressPlayExampleSwift sample application in iOS.
  • Bug Fixes :
    • – #2134: TLS: TLSTest crashes while processing server_certificate with a very large RSA key.
    • – #2179: PlaylistProxy: Unable to do track selection for fragmented mp4 content with multi-audio tracks encrypted with the CBCS method.
    • – #2183: WSB_Runtime_ProcessServiceToken only save the last license if the token includes multiple License Acquisition directives.
    • – Fixed various crashes reported by the American Fuzzy Lop tool for major public APIs.
2. Known Issues
  • Wasabi build is not supported with Android NDK r5b version.
  • #1215: Landscape view of Loop Player is showing player as in portrait view in iPhone 4S and iPad 2 (iOS6). After the content played without seek first time fully in landscape view, the player starts playing in portrait view even though the device is in landscape view for the second time. This is a limitation of the sample player.
  • Audio bitrate changes might cause small temporary freezes in the rendering pipeline for the desktop platforms.
  • Bento4 does not implement Fragmented Sample Table seek operations completely, and produced HLS TS fragments may have audio and video non-interleaved fragments that the Android HLS media stack does not handle gracefully.
  • #1567: SamplePlayer: On desktop, the playback freezes for a second after 2-3 seconds of the start of the playback for few of the test HLS static contents.
  • #1581: Playing Live DASH can get player and server out of sync after about 1h30m of playing. It is recommended the player implement some server time sync mechanism.
  • #1656 – On Windows, Wasabi does not accept “file:///c:/” as file URL in personalization token. Use “file://c:/” instead.
  • #1820: LoopPlayer: Application controls are not visible in landscape view in iOS8
  • #2117: iOS: Green patch occurs during video playback when playlistProxy started with WSB_PP_FLAG_ALLOW_EXTERNAL_CLIENT flag for “w0011fa3h02.p229.mlv” large PDCF content. Without this Flag, no issues.
  • Unplugging USB headset during content playback causes the minor delay in video in Windows Platform. The cause was traced down to an issue in the Microsoft API which returns bogus position occasionally and caused wrong computation of the CTS (Composition Time Stamp) for audio and video presentation.
  • #2145: MS3 HTTP header version in Client is not correct, it is 1.0 instead of 1.2
  • #2161: WasabiAospPlayer: Unable to play local fragmented mp4 content present in /data/local/tmp. SELinux in AOSP potentially needs adjustment based on the android version.
  • #2168: DASH FairPlay: Unable to play the proxy response of Multi CID DASH contents on FairPlay application when proxy started with “-fairplay-encrypted-hls”
  • #2226: Multi DRM: Unable to play Encrypted segments of Fast Start content with iOS FairPlay application only on iOS 11 beta and iOS 10.3.3
  • #2251: MediaDownload: Unable to play the Downloaded Dash Faststart contents on Mac and Windows
  • #2252: FairPlay : PlaylistProxy should throw ‘100009 ==> WSB_ERROR_NOT_SUPPORTED’ error for BBTS/PDCF/DCF contents when proxy created with ‘WSB_PP_FLAG_FAIRPLAY_ENCRYPTED_HLS’ flag
  • ​#2253: Android scons builds fail with the latest NDK r16-beta1
  • #2256: Playlist Proxy errors on playing hosted (single fragment) m4f files. Hosted m4f files are not supported
3. Notes:
  • ExpressPlaySDK 1.16 or later for iOS supports the “bitcode” feature introduced in iOS 9 and later. Hence it is mandatory to build the iOS app with ExpressPlaySDK 1.16 or later using Xcode7 or later. Bitcode is enabled by default in Xcode7. To disable, go to Project Settings -> Build Settings -> Build Options and change “Enable Bitcode” to No.
  • A new iOS9 feature disallows clear HTTP transfers by default. To work around this, an application using Playlist Proxy needs to add an App Transport Security exception to the application’s Info.plist file. The exception could be specific to a domain, or could be an overall exception for any HTTP access in case the application accesses media contents over HTTP.
  • Support for the MIPS 64-bit architecture Android library is only available in the evaluation SDK package.
  • In AOSP, our testing has been limited to the AOSP-M version, so there might be problems on specific devices.
  • ExpressPlaySDK for MAC Proxy can be compiled using libc++ compiler.
  • Updated the Readme-iOS.txt regarding new App Transport Security exception for iOS 10 and backward compatibility.
  • Starting from the 1.19.0 release, building the ExpressPlayExample requires the iOS 8 SDK or above since it is now using AVKit framework which is supported from iOS 8 version onwards.
  • When integrating the source SDK with a 3rd party provided implementation of SKB, please note that:
    • – The SKB (Secure Key Box) API has been changed from 1.0 to 1.1.
    • – The new SKB 1.1 interface is backwards compatible with 1.0, at the source level (alternate SKB implementation requires recompilation with the new SkbSecureKeyBox.h v1.1 header), except for requiring two new functions to be provided by the SKB implementation: the SKB_Cipher_ProcessAad and the SKB_Cipher_ProcessFinal
    • – To upgrade a proprietary SKB implementation from SKB 1.0 to SKB 1.1, provide the two new functions as stubs that return SKB_ERROR_NOT_SUPPORTED. The downside to not implementing the full functionality in these new functions is that the client will not be able to negotiate any GCM based TLS cipher suite.
    • – The complete implementation of the new SKB APIs is included in the Sockeye source SDK provided separately.
    • – The SKB HMAC transform must support more than 14 bytes (e.g. 20 bytes) long HMAC key (this has not been the case with Sockeye 1.0 and Sockeye 1.0-hkp2; the change is included in the new Sockeye SDKs).
    • – The complete set of SKB 1.1 functionality needed to support Wasabi Client includes the SKB 1.0 functionality plus support for AES-128-GCM cipher, HMAC-SHA256 transform and the two new SKB functions SKB_Cipher_ProcessAad and SKB_Cipher_ProcessFinal.

04/01/2017: Wasabi And ExpressPlay SDK 1.20.0


Contents:
  1. Changes since the last release 1.19.0
  2. Known Issues
  3. Notes
Changes since the last release 1.19.0
  • Enhanced AOSP implementation with ability to play fragmented mp4 (m4f) file
  • Added Support for DASH presentations that point to media in single large fragmented mp4 using byte range access via SegmentList with mediaRange attribute
  • Added support for per-license based enforcement on rooted android device (only when using Marlin DRM)
  • Added support for Wasabi integration with AOSP7 source
  • Enhanced Playlist Proxy to support players that require CORS support from content servers
  • Added support for handling TLS-ECDHE-RSA-AES-128-GCM-SHA256 cipher suite during TLS handshake with TLS 1.2 version:
    • – TLS layer now supports the cipher suite. TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
    • – The suite will be used if the TLS “high” version configured on the client is at least 1.2 and of course if the server supports it
    • – If you are integrating the source SDK with a 3rd party implementation of SKB please read the special note further in this page
  • (Beta preview) Added support for Common Encryption CBCS scheme for fragmented MP4 and DASH content:
    • – PlaylistProxy on iOS, Android, Windows, MacOSX, tvOS now supports playback of DASH/fMP4/CBCS media packaged using Bento4
    • – PlaylistProxy on iOS, Android, Windows, MacOSX, tvOS now supports playback of DASH/fMP4/CBCS media packaged using Shaka-Packager but user must add Marlin ContentProtection element manually after packaging
  • (Beta preview) Support DASH CENC packaged content playback on iOS with FairPlay license (via Playlist Proxy):
    • – Please consult the new PlaylistProxy flag
    • – Content must be DASH-CENC protected with Marlin signaling
    • – Note you will need 2 ExpressPlay token, a Marlin token to initialize the Playlist Proxy and a FairPlay token for FairPlay to decrypted the resulting Sample AES encrypted content using the FairPlay DRM
  • Deprecated support for x86 architecture on macOS target platform
  • ExpressPlay related changes:
    • – Added MediaSegmentDecrypter API support as a part of Desktop proxy SDKs
    • – Windows Proxy SDK will now contain VS2015 target support additional to VS2010 target
    • – Introduced ExpressPlay SDK for arm-unknown-linux target
    • – Introduced ExpressPlay SDK for tvOS target as well
  • On iOS, Wasabi library no longer references dlopen and dlsym symbols
  • Deprecated “WASABI_PROPERTY_KEY_SPACE” runtime property and querying for this property results in “WSB_ERROR_OBSOLETE” error
  • Bug Fixes :
    • – #2137 – TLS: Wasabi TLS handshakes fails when Server has international domain names in certificate
    • – #2138 – WasabiSushiPersonalize tool crashes while using renewal.dat file with offline personalization token
    • – #2150 – Playlist Proxy assumes Volatile Store URL content never changes
    • – #2157 – SamplePlayer: Application crashes while seeking Hls content to non-existent end of segment
2. Known Issues
  • Wasabi build is not supported with Android NDK r5b version.
  • #1215: Landscape view of Loop Player is showing player as in portrait view in iPhone 4S and iPad 2 (iOS6). After the content played without seek first time fully in landscape view, the player starts playing in portrait view even though the device is in landscape view for the second time. This is a limitation of the sample player.
  • Audio bitrate changes might cause small temporary freezes in the rendering pipeline for the desktop platforms.
  • Bento4 does not implement Fragmented Sample Table seek operations completely, and produced HLS TS fragments may have grossly audio and video non-interleaved fragments that the Android HLS media stack does not handle gracefully.
  • #1567: SamplePlayer: On desktop, the playback freezes for a second after 2-3 seconds of the start of the playback for few of the test HLS static contents.
  • #1581: Playing Live DASH can get player and server out of sync after about 1h30m of playing. It is recommended the player implement some server time sync mechanism.
  • #1656 – On Windows, Wasabi does not accept “file:///c:/” as file URL in personalization token. Use “file://c:/” instead.
  • #1820: LoopPlayer: Application controls are not visible in landscape view in iOS8
  • #2117: iOS: Green patch occurs during video playback when playlistProxy started with WSB_PP_FLAG_ALLOW_EXTERNAL_CLIENT flag for “w0011fa3h02.p229.mlv” large PDCF content. Without this Flag, no issues.
  • Unplugging USB headset during content playback causes the minor delay in video in Windows Platform. The cause was traced down to an issue in the Microsoft API which returns bogus position occasionally and caused wrong computation of the CTS (Composition Time Stamp) for audio and video presentation.
  • #2145: MS3 HTTP header version in Client is not correct, it is 1.0 instead of 1.2
  • #2161: WasabiAospPlayer: Unable to play local fragmented mp4 content present in /data/local/tmp. SELinux in AOSP potentially needs adjustment based on the android version.
  • #2179: PlaylistProxy: Unable to do track selection for fragmented mp4 content with multi-audio tracks encrypted with CBCS method.
3. Notes:
  • ExpressPlaySDK 1.16 or later for iOS supports the “bitcode” feature introduced in iOS9. When building ExpressPlay 1.16 or later on iOS, it is now mandatory to use Xcode7 or later. Bitcode is enabled by default in Xcode7. To disable, go to Project Settings -> Build Settings -> Build Options and change “Enable Bitcode” to No
  • A new iOS9 feature disallows clear HTTP transfers by default. To work around this, an application using Playlist Proxy needs to add an App Transport Security exception to the application’s Info.plist file. The exception could be specific to a domain, or could be an overall exception for any HTTP access in case application accesses many media contents over HTTP
  • Support for MIPS 64-bit architecture android library is only available in evaluation SDK package
  • In AOSP, our testing has been limited to AOSP-M version and that there might be problems on specific devices
  • ExpressPlaySDK for MAC Proxy can be compiled using libc++ compiler
  • Updated Readme-iOS.txt regarding new App Transport Security exception for iOS 10 and backward compatibility
  • Starting from 1.19.0 release, building ExpressPlayExample requires iOS 8 SDK or above since it is now using AVKit framework which is supported from iOS 8 version onwards.
  • When integrating the source SDK with a 3rd party provided implementation of SKB, please note:
    • – The SKB (Secure Key Box) API has been changed from 1.0 to 1.1
    • – New SKB 1.1 interface is backwards compatible with 1.0, at source level (alternate SKB implementation requires recompilation with the new SkbSecureKeyBox.h v1.1 header), except for requiring two new functions to be provided by the SKB implementation: SKB_Cipher_ProcessAad and SKB_Cipher_ProcessFinal
    • – As the simplest upgrade from SKB 1.0 to SKB 1.1, a proprietary SKB implementation can provide the two new functions as stubs that return SKB_ERROR_NOT_SUPPORTED. The downside to not implementing the full functionality in these new functions is that the client will not be able to negotiate any GCM based TLS cipher suite
    • – The complete implementation of the new SKB APIs is included in the Sockeye source SDK provided separately
    • – The SKB HMAC transform must support more than 14 bytes (e.g. 20 bytes) long HMAC key (this has not been the case with Sockeye 1.0 and Sockeye 1.0-hkp2; the change is included in the new Sockeye SDKs)
    • – The complete set of SKB 1.1 functionality needed to support Wasabi Client includes the SKB 1.0 functionality plus support for AES-128-GCM cipher, HMAC-SHA256 transform and the two new SKB functions SKB_Cipher_ProcessAad and SKB_Cipher_ProcessFinal

12/27/2016: Wasabi And ExpressPlay SDK 1.19.0


Contents:
  1. Changes since the last release 1.18.0
  2. Known Issues
  3. Notes
Changes since the last release 1.18.0
  • Added Volatile Storage support in the Playlist Proxy. This makes it possible to add a data object into Volatile Storage returning a new special URL string that can be passed as a media URL to the Playlist Proxy
  • Support for HLS with AOSP source
  • Added Java bindings for the SHI_Engine_UpdatePersonality API
  • Added SHI_Engine_GetCertificateChain() API to support retrieving of NEMO signing and encryption certificate chain
  • Enhanced logic to validate the renewal of Nemo certs during the Personality update
  • Added support for TLS session resumption with server state
  • Added support for TLS 1.1 and 1.2. See the API documentation for ways to select behavior
  • Enhanced the TLS logic to detect and fail several more attacks against TLS 1.0
  • ExpressPlay SDK-related changes:
    • – ExpressPlay example applications for iOS now use the AVKit framework for handling playback
    • – Introduced ExpressPlay SDK for the tvOS platform
    • – Added support for VS2015 target in the Windows Proxy Package in addition to VS2010
  • Bug Fixes :
    • – #2107: WasabiFile reports “UNKNOWN” type for subtitle AdaptationSet in MPD
    • – #2123: configure_sushi.py should allow no BootstrapCredentials
    • – #2102: Valgrind report shows memory leak in NPT_HttpTlsConnector::Connect(..) while executing “TestActionResultInfoExports_SecureContentPathByMs3” unit testcase
    • – #2136: Invalidate TLS handshakes with server having self-signed certificates
2. Known Issues
  • Wasabi build is not supported with Android NDK r5b version.
  • #1215: Landscape view of Loop Player is showing player as in portrait view in iPhone 4S and iPad 2 (iOS6). After the content played without seek first time fully in landscape view, the player starts playing in portrait view even though the device is in landscape view for the second time. This is a limitation of the sample player.
  • Audio bitrate changes might cause small temporary freezes in the rendering pipeline for the desktop platforms.
  • Bento4 does not implement Fragmented Sample Table seek operations completely, and produced HLS TS fragments may have grossly audio and video non-interleaved fragments that the Android HLS media stack does not handle gracefully.
  • #1567: SamplePlayer: On desktop, the playback freezes for a second after 2-3 seconds of the start of the playback for few of the test HLS static contents.
  • #1581: Playing Live DASH can get player and server out of sync after about 1h30m of playing. It is recommended the player implement some server time sync mechanism.
  • #1656 – On Windows, Wasabi does not accept “file:///c:/” as file URL in personalization token. Use “file://c:/” instead.
  • #1820: LoopPlayer: Application controls are not visible in landscape view in iOS8
  • #2117: iOS: Green patch occurs during video playback when playlistProxy started with WSB_PP_FLAG_ALLOW_EXTERNAL_CLIENT flag for “w0011fa3h02.p229.mlv” large PDCF content. Without this Flag, no issues.
  • Unplugging USB headset during content playback causes the minor delay in video in Windows Platform. The cause was traced down to an issue in the Microsoft API which returns bogus position occasionally and caused wrong computation of the CTS (Composition Time Stamp) for audio and video presentation.
  • #2145: MS3 HTTP header version in Client is not correct, it is 1.0 instead of 1.2
  • #2137: Wasabi TLS handshakes fails when Server has international domain names in certificate
3. Notes:
  • ExpressPlaySDK 1.16 or later for iOS supports “bitcode” feature introduced in iOS 9 and later. Hence, it is mandatory to build the iOS app with ExpressPlaySDK 1.16 or later using Xcode7 or later. Bitcode is enabled by default in Xcode7. To disable, go to Project Settings -> Build Settings -> Build Options and change “Enable Bitcode” to No
  • A new iOS9 feature disallows clear HTTP transfers by default. To work around this, an application using Playlist Proxy needs to add an App Transport Security exception to the application’s Info.plist file. The exception could be specific to a domain, or could be an overall exception for any HTTP access in case application accesses many media contents over HTTP
  • Support for the MIPS 64-bit architecture Android library is only available in the evaluation SDK package
  • In AOSP, our testing has been limited to the AOSP-M version and that there might be problems on specific devices
  • ExpressPlaySDK for MAC Proxy can be compiled using libc++ compiler
  • Updated Readme-iOS.txt regarding new App Transport Security exception for iOS 10 and backward compatibility
  • Starting from 1.19.0 release, building ExpressPlayExample requires iOS 8 SDK or above since it is now using AVKit framework which is supported from iOS 8 version onwards

09/19/2016: Wasabi And ExpressPlay SDK 1.18.0


Contents:
  1. Changes since the last release 1.17.0
  2. Known Issues
  3. Notes
Changes since the last release 1.17.0
  • Enhanced the personalization command line utility to support offline Nemo Credential Renewal
  • Enhanced the Media Access API to handle WebVTT, TTML subtitle formats
  • Added ability to detect Dolby Vision HDR signaling on embedded platforms, in:
    • – Dual layer, single track DASH streams
    • – Dual and single layer HLS streams
    • – Single or dual Dolby Vision PIDs for TS streams
    Additonally. it is also possible for a client to obtain dynamic Dolby Vision profile/level information for DASH content
  • Enhanced the ExpressPlay iOS framework to pre-link the dependent libraries and avoid symbol collision on runtime
  • Bug Fixes :
    • – #2092: MarlinPlaylistPlayer : Playback of PDCF content of size greater than 2GB freezes around end of the content
    • – #2114: Media Segment Decrypter factory regression (WSB_MediaSegmentDecrypter_Create() API, will not accept null as an input to source_url)
    • – #2122 – CheckForHardcodedKeys() fails with production keys on Broadcom HKP1 or HKP2
2. Known Issues
  • Wasabi build is not supported with Android NDK r5b version.
  • #1215: Landscape view of Loop Player is showing player as in portrait view in iPhone 4S and iPad 2 (iOS6).
    After the content played without seek first time fully in landscape view, the player starts playing in portrait view even though the device is in landscape view for the second time. This is a limitation of the sample player.
  • MarlinPlaylistPlayer: Fragmented mp4 pdcf content playback freezes after 2 seconds of play and timeline bar starts from the beginning on playback resume.
  • #1499: MarlinPlaylistPlayer: Issues with video resolution and pause/resume with playback in Nexus 7 device having Android OS Version 4.3.
    Pause, rewind and fast forward actions are broken in Android 4.3 (http://code.google.com/p/android/issues/detail?id=59776)
  • “Audio & Subtitles” icon is not available/viewable in iPod device
  • Audio bitrate changes might cause small temporary freezes in the rendering pipeline for the desktop platforms.
  • Bento4 does not implement Fragmented Sample Table seek operations completely, and produced HLS TS fragments may have grossly audio and video non-interleaved fragments that the Android HLS media stack does not handle gracefully.
  • #1567: SamplePlayer: The playback freezes for a second after 2-3 seconds of the start of the playback for few of the test HLS static contents.
  • #1581: Playing Live DASH can get player and server out of sync after about 1h30m of playing. It is recommended the player implement some server time sync mechanism.
  • #1656 – Wasabi does not accept “file:///c:/” as file URL in personalization token. Use “file://c:/” instead.
  • Android still has a bug in the HLS fragment duration parsing: here
  • #1820: LoopPlayer: Application controls are not visible in landscape view in iOS8
  • #2107: WasabiFile reports “UNKNOWN” type for subtitle AdaptationSet in MPD
  • #2117: iOS: Green patch occurs during video playback when playlistProxy started with WSB_PP_FLAG_ALLOW_EXTERNAL_CLIENT flag for “w0011fa3h02.p229.mlv” large PDCF content. Without this Flag, no issues.
  • Unplugging USB headset during content playback causes the minor delay in video in Windows Platform. The cause was traced down to an issue in the Microsoft API which returns bogus position occasionally and caused wrong computation of the CTS (Composition Time Stamp) for audio and video presentation.
3. Notes:
  • ExpressPlaySDK 1.16 or later for iOS is “bitcode” enabled . As a result, it is mandatory to build iOS app with Xcode7 and bitcode enabled when using ExpressPlaySDK 1.16 or later. Note that bitcode is enabled by default in Xcode7. To disable, go to Project Settings -> Build Settings -> Build Options and change “Enable Bitcode” to No
  • A feature introduced with iOS9 disallows clear HTTP transfers by default. iOS10 allows clear HTTP transfers for local network traffic as used by Playlist Proxy. However, in order to be compatible with iOS9, the broader “all traffic” App Transport Security exception is still required. The exception could be specific to a domain, or could be an overall exception for any HTTP access in case application accesses many media contents over HTTP. For more details, please refere to the ReadMe in the ExpressPlay SDK package for iOS
  • Support for MIPS 64-bit architecture android library is only available in the evaluation SDK package
  • In AOSP, our testing has been limited to AOSP-M version so there might be problems on specific devices
  • ExpressPlaySDK for MAC Proxy can be compiled using libc++ compiler Updated Readme-iOS.txt regarding new App Transport Security exception for iOS 10 and backward compatibility

06/14/2016: Wasabi And ExpressPlay SDK 1.17.0


Contents:
  1. Changes since the last release 1.16.0
  2. Known Issues
  3. Notes
Changes since the last release 1.16.0
  • Enhanced PlaylistProxy to support subtitles (WebVTT format) for DASH content
  • Added support for IPv6 networks as required by Apple
  • Added support for additional arbitrary headers to be set by the Playlist Proxy in responses to the HTTP client
  • Bug Fixes :
    • – #2070: Neptune BSD socket code does not check for EINTR from system calls
    • – #2093: Playlist Proxy segment start time parameter in the encoded URL is float
    • – #2091: I/O timeout not set on Sushi TLS sockets
    • – #2095: Race condition using non-thread safe NPT_Reference
    • – #2096: WsbProxyManager.h uses bool that’s not a C type
    • – #2081: SHI_Engine creation may cause double delete / memory corruption
    • – #2087: Mac SamplePlayer: Application crashes while loading the content only in OSX 10.9.5.
2. Known Issues
  • Wasabi build is not supported with Android NDK r5b version.
  • #1215: Landscape view of Loop Player is showing player as in portrait view in iPhone 4S and iPad 2 (iOS6).
    After the content played without seek first time fully in landscape view, the player starts playing in portrait view even though the device is in landscape view for the second time. This is a limitation of the sample player.
  • MarlinPlaylistPlayer: Fragmented mp4 pdcf content playback freezes after 2 seconds of play and timeline bar starts from the beginning on playback resume.
  • #1499: MarlinPlaylistPlayer: Issues with video resolution and pause/resume with playback in Nexus 7 device having Android OS Version 4.3.
    Pause, rewind and fast forward actions are broken in Android 4.3 (http://code.google.com/p/android/issues/detail?id=59776)
  • “Audio & Subtitles” icon is not available/viewable in iPod device
  • Audio bitrate changes might cause small temporary freezes in the rendering pipeline for the desktop platforms.
  • Bento4 does not implement Fragmented Sample Table seek operations completely, and produced HLS TS fragments may have grossly audio and video non-interleaved fragments that the Android HLS media stack does not handle gracefully.
  • #1567: SamplePlayer: The playback freezes for a second after 2-3 seconds of the start of the playback for few of the test HLS static contents.
  • #1581: Playing Live DASH can get player and server out of sync after about 1h30m of playing. It is recommended the player implement some server time sync mechanism.
  • #1656 – Wasabi does not accept “file:///c:/” as file URL in personalization token. Use “file://c:/” instead.
  • Android still has a bug in the HLS fragment duration parsing: here
  • #1820: LoopPlayer: Application controls are not visible in landscape view in iOS8
  • #2092: MarlinPlaylistPlayer : Playback of PDCF content of size greater than 2GB freezes around end of the content
  • #2107: WasabiFile reports “UNKNOWN” type for subtitle AdaptationSet in MPD
3. Notes:
  • ExpressPlaySDK 1.16 for iOS supports “bitcode” feature introduced in iOS 9 and later. And hence it is mandatory to build iOS app with ExpressPlaySDK 1.16 using Xcode7 or later. Bitcode is enabled by default in Xcode7. To disable, go to Project Settings -> Build Settings -> Build Options and change “Enable Bitcode” to No
  • A new iOS9 feature disallows clear HTTP transfers by default. To work around this, an application using Playlist Proxy needs to add an App Transport Security exception to the application’s Info.plist file. The exception could be specific to a domain, or could be an overall exception for any HTTP access in case application accesses many media contents over HTTP
  • Support for MIPS architecture android library is only available in evaluation SDK package
  • For AOSP (Android Open Source Project), our tests were limited to AOSP-M version; there might be problems on specific devices

03/28/2016: Wasabi And ExpressPlay SDK 1.16.0


Contents:
  1. Changes since the last release 1.15.0
  2. Known Issues
  3. Notes
Changes since the last release 1.15.0
  • Enhancements to the security of the TLS session resumption implementation
  • Expose the WSB_PlaylistProxy_GetSessionKey at the Java level as PlaylistProxy.GetSessionKey
  • Enhance display output module on Mac OS X
  • ExpressPlaySDK for iOS supports “bitcode” feature introduced in iOS 9 and later. Starting with 1.16, building the iOS SDK requires xCode version 7, and bitcode support is enabled by default.
  • ExpressPlaySDK for Android supports MIPS 32-bit architecture
  • ExpressPlaySDK now uses SCP 2.16.0 and SKB 4.26.3
  • Added support for handling SHA224 based signature in server certs
  • Bug Fixes :
    • – #2042: Neptune socket WriteFully fails with NPT_ERROR_WOULD_BLOCK
    • – #2044: Playlist Proxy Stop may take long time
    • – #2046: iOS ExpressPlay library contains duplicate symbols
    • – #2055: MarlinPlaylistPlayer: Not able to play clear segments of fast-start DASH content on requesting playlistproxy response for second time
    • – #2067: Threaded Http Server may leak a spawned handler
    • – #2068: Fix the assumption https content URL is a ms3 url
    • – #2071: DashMediaSource should not transition to stop state when encounters timeout or no data
    • – #2081: SHI_Engine creation may cause double delete / memory corruption
    • – #2090: Clear audio, protected video, DASH, Media File reports protection type as CLEAR_TEXT” on all platforms
2. Known Issues
  • Wasabi build is not supported with Android NDK r5b version.
  • #1215: Landscape view of Loop Player is showing player as in portrait view in iPhone 4S and iPad 2 (iOS6).
    After the content played without seek first time fully in landscape view, the player starts playing in portrait view even though the device is in landscape view for the second time. This is a limitation of the sample player.
  • MarlinPlaylistPlayer: Fragmented mp4 pdcf content playback freezes after 2 seconds of play and timeline bar starts from the beginning on playback resume.
  • #1499: MarlinPlaylistPlayer: Issues with video resolution and pause/resume with playback in Nexus 7 device having Android OS Version 4.3.
    Pause, rewind and fast forward actions are broken in Android 4.3 (http://code.google.com/p/android/issues/detail?id=59776)
  • “Audio & Subtitles” icon is not available/viewable in iPod device
  • Audio bitrate changes might cause small temporary freezes in the rendering pipeline for the desktop platforms.
  • Bento4 does not implement Fragmented Sample Table seek operations completely, and produced HLS TS fragments may have grossly audio and video non-interleaved fragments that the Android HLS media stack does not handle gracefully.
  • #1567: SamplePlayer: The playback freezes for a second after 2-3 seconds of the start of the playback for few of the test HLS static contents.
  • #1581: Playing Live DASH can get player and server out of sync after about 1h30m of playing. It is recommended the player implement some server time sync mechanism.
  • #1656 – Wasabi does not accept “file:///c:/” as file URL in personalization token. Use “file://c:/” instead.
  • Android still has a bug in the HLS fragment duration parsing: here
  • #1820: LoopPlayer: Application controls are not visible in landscape view in iOS8
3. Notes:
  • ExpressPlaySDK 1.16 for iOS supports “bitcode” feature introduced in iOS 9 and later. And hence it is mandatory to build iOS app with ExpressPlaySDK 1.16 using Xcode7 or later. Bitcode is enabled by default in Xcode7. To disable, go to Project Settings -> Build Settings -> Build Options and change “Enable Bitcode” to No.
  • A new iOS9 feature disallows clear HTTP transfers by default. To work around this, an application using Playlist Proxy needs to add an App Transport Security exception to the application’s Info.plist file. The exception could be specific to a domain, or could be an overall exception for any HTTP access in case application accesses many media contents over HTTP.
  • Support for MIPS architecture android library is only available in evaluation SDK package.

01/06/2016: Wasabi And ExpressPlay SDK 1.15.0


Contents:
  1. Changes since the last release 1.14.0
  2. Known Issues
  3. Notes
Changes since the last release 1.14.0
  • Allowed app to set HTTP custom headers in HLS/DASH content requests
  • Implemented Transport Layer Security (TLS) Session Resumption without Server-Side State as per https://tools.ietf.org/html/rfc5077
  • Added support for FastStart with DASH with AOSP
  • Enhanced PlaylistProxy stop() API performance
  • Bug Fixes :
    • – #1970: Wasabi build fails on Release Mode in MAC 10.11 (EI CAPITAN) with xcode 7
    • – #2030: Player interface for Windows does not play video when windows is iconified for more than 2 hours
    • – #2032: Secure time wrong, fails certs, if client system time is way in the past
2. Known Issues
  • Wasabi build is not supported with Android NDK r5b version.
  • #1215: Landscape view of Loop Player is showing player as in portrait view in iPhone 4S and iPad 2 (iOS6).
    After the content played without seek first time fully in landscape view, the player starts playing in portrait view even though the device is in landscape view for the second time. This is a limitation of the sample player.
  • MarlinPlaylistPlayer: Fragmented mp4 pdcf content playback freezes after 2 seconds of play and timeline bar starts from the beginning on playback resume.
  • #1499: MarlinPlaylistPlayer: Issues with video resolution and pause/resume with playback in Nexus 7 device having Android OS Version 4.3.
    Pause, rewind and fast forward actions are broken in Android 4.3 (http://code.google.com/p/android/issues/detail?id=59776)
  • “Audio & Subtitles” icon is not available/viewable in iPod device
  • Audio bitrate changes might cause small temporary freezes in the rendering pipeline for the desktop platforms.
  • Bento4 does not implement Fragmented Sample Table seek operations completely, and produced HLS TS fragments may have grossly audio and video non-interleaved fragments that the Android HLS media stack does not handle gracefully.
  • #1567: SamplePlayer: The playback freezes for a second after 2-3 seconds of the start of the playback for few of the test HLS static contents.
  • #1581: Playing Live DASH can get player and server out of sync after about 1h30m of playing. It is recommended the player implement some server time sync mechanism.
  • #1656 – Wasabi does not accept “file:///c:/” as file URL in personalization token. Use “file://c:/” instead.
  • Android still has a bug in the HLS fragment duration parsing: here
  • #1820: LoopPlayer: Application controls are not visible in landscape view in iOS8
3. Notes:
  • A new iOS9 feature disallows clear HTTP transfers by default. To work around this, an application using Playlist Proxy needs to add an App Transport Security exception to the application’s Info.plist file. The exception could be specific to a domain, or could be an overall exception for any HTTP access in case application accesses many media contents over HTTP.
  • A new XCode7 feature adds BITCODE_ENABLED build setting, set to YES by default. When building for device with bitcode enabled, the Deployment Target must be set to iOS6 or higher. Note also that the ExpressPlay framework does not include bitcode at this time.
  • Support for MIPS architecture android library is only available in evaluation SDK package.

10/28/2015: Wasabi And ExpressPlay SDK 1.14.0


Contents:
  1. Changes since the last release 1.13.1
  2. Known Issues
  3. Notes
Changes since the last release 1.13.1
  • Added track selection support for PDCF and M4F through Playlist Proxy
  • Added support for displaying ExpressPlay output on AppleTV via Airplay
  • Enhance MediaFile to include language information
  • Added support for handling SHA384, SHA512 based signatures in server certs
  • Added support for Dynamic MPEG DASH segment reference by number and time
  • Enhanced playlistproxy to support Encrypted HLS for all Playlist Proxy source formats
  • Bug Fixes :
    • – #1979: PlaylistProxy crashes with second incomplete proxy request URL for the same DCF content.
    • – #1981: PlaylistProxy fails to play clear HLS content when proxy is started with “WSB_PP_FLAG_ENCRYPTED_HLS” & “WSB_PP_FLAG_SESSION_KEY” flags.
    • – #1985: Not able to play/skips clear segments of HLS Mixed Encryption content when PlaylistProxy is started with “WSB_PP_FLAG_ENCRYPTED_HLS” & “WSB_PP_FLAG_SESSION_KEY” flags.
    • – #1986: LoopPlayer: Application crashes while playing ‘fragmented PDCF audio-only’ content when debug logger information is enabled to ‘FINE’ level.
    • – #1989: SamplePlayer throws “-1” error on just seeking to the extreme end of playback/timeline bar for few PDCF audio-only contents
    • – #1990: Sample Player: Crash occurs on seeking ‘PDCF audio-only’ contents when played immediately after DASH content playback without closing the application
    • – #1993: Sample Player: Seeking ‘audio-only pdcf’ content immediately after the playback of BBTS content without closing player, throws “-40001 ==> BLT_ERROR_NOT_SUPPORTED” error
    • – #1996: Desktop audio track selection in PDCF content is broken
2. Known Issues
  • Wasabi build is not supported with Android NDK r5b version.
  • #1215: Landscape view of Loop Player is showing player as in portrait view in iPhone 4S and iPad 2 (iOS6).
    After the content played without seek first time fully in landscape view, the player starts playing in portrait view even though the device is in landscape view for the second time. This is a limitation of the sample player.
  • MarlinPlaylistPlayer: Fragmented mp4 pdcf content playback freezes after 2 seconds of play and timeline bar starts from the beginning on playback resume.
  • #1499: MarlinPlaylistPlayer: Issues with video resolution and pause/resume with playback in Nexus 7 device having Android OS Version 4.3.
    Pause, rewind and fast forward actions are broken in Android 4.3 (http://code.google.com/p/android/issues/detail?id=59776)
  • “Audio & Subtitles” icon is not available/viewable in iPod device
  • Audio bitrate changes might cause small temporary freezes in the rendering pipeline for the desktop platforms.
  • Bento4 does not implement Fragmented Sample Table seek operations completely, and produced HLS TS fragments may have grossly audio and video non-interleaved fragments that the Android HLS media stack does not handle gracefully.
  • #1567: SamplePlayer: The playback freezes for a second after 2-3 seconds of the start of the playback for few of the test HLS static contents.
  • #1581: Playing Live DASH can get player and server out of sync after about 1h30m of playing. It is recommended the player implement some server time sync mechanism.
  • #1656 – Wasabi does not accept “file:///c:/” as file URL in personalization token. Use “file://c:/” instead.
  • Android still has a bug in the HLS fragment duration parsing: here
  • #1820: LoopPlayer: Application controls are not visible in landscape view in iOS8
3. Notes:
  • A new iOS9 (beta) feature disallows clear HTTP transfers by default. To work around this, an application using Playlist Proxy needs to add an App Transport Security exception to the application’s Info.plist file. The exception could be specific to a domain, or could be an overall exception for any HTTP access in case application accesses many media contents over HTTP.
  • A new XCode7 (beta) feature adds BITCODE_ENABLED build setting, set to YES by default. When building for device with bitcode enabled, the Deployment Target must be set to iOS6 or higher. Note also that the ExpressPlay framework does not include bitcode at this time.

07/31/2015: Wasabi And ExpressPlay SDK 1.13.1


Contents:
  1. Changes since the last release 1.13.0
  2. Known Issues
  3. Notes
Changes since the last release 1.13.0
  • Added https support to caviar helper to enable handling documents distributed over https
  • Updated CRL and CRL Certs for CTK/ATK/Production Key spaces from seacert
  • ExpressPlay SDK Related Changes:
    • – ExpressPlay packages now uses a SCP 2.12.1
    • – Added Pre-release/Beta level Expressplay (Wasabi) libraries for Android 64 bit architectures (aarch64 and X86_64 android) in Android under Library folder.
2. Known Issues
  • Wasabi build is not supported with Android NDK r5b version.
  • #1215: Landscape view of Loop Player is showing player as in portrait view in iPhone 4S and iPad 2 (iOS6).
    After the content played without seek first time fully in landscape view, the player starts playing in portrait view even though the device is in landscape view for the second time. This is a limitation of the sample player.
  • MarlinPlaylistPlayer: Fragmented mp4 pdcf content playback freezes after 2 seconds of play and timeline bar starts from the beginning on playback resume.
  • #1499: MarlinPlaylistPlayer: Issues with video resolution and pause/resume with playback in Nexus 7 device having Android OS Version 4.3.
    Pause, rewind and fast forward actions are broken in Android 4.3 (http://code.google.com/p/android/issues/detail?id=59776)
  • “Audio & Subtitles” icon is not available/viewable in iPod device
  • Audio bitrate changes might cause small temporary freezes in the rendering pipeline for the desktop platforms.
  • Bento4 does not implement Fragmented Sample Table seek operations completely, and produced HLS TS fragments may have grossly audio and video non-interleaved fragments that the Android HLS media stack does not handle gracefully.
  • #1567: SamplePlayer: The playback freezes for a second after 2-3 seconds of the start of the playback for few of the test HLS static contents.
  • #1581: Playing Live DASH can get player and server out of sync after about 1h30m of playing. It is recommended the player implement some server time sync mechanism.
  • #1656 – Wasabi does not accept “file:///c:/” as file URL in personalization token. Use “file://c:/” instead.
  • Android still has a bug in the HLS fragment duration parsing: here
  • #1820: LoopPlayer: Application controls are not visible in landscape view in iOS8
3. Notes:
  • A new iOS9 (beta) feature disallows clear HTTP transfers by default. To work around this, an application using Playlist Proxy needs to add an App Transport Security exception to the application’s Info.plist file. The exception could be specific to a domain, or could be an overall exception for any HTTP access in case application accesses many media contents over HTTP.
  • A new XCode7 (beta) feature adds BITCODE_ENABLED build setting, set to YES by default. When building for device with bitcode enabled, the Deployment Target must be set to iOS6 or higher. Note also that the ExpressPlay framework does not include bitcode at this time.

07/14/2015: Wasabi And ExpressPlay SDK 1.13.0


Contents:
  1. Changes since the last release 1.12.2
  2. Known Issues
  3. Notes
1. Changes since the last release 1.12.2
  • Added support to handle HLS contents without handling key tag in the master playlist.
  • Support for fast start with DASH in Playlist Proxy.
  • Improved efficiency of DASH SegmentTimeline content processing.
  • PlaylistProxy enhancements:
    • – Event notification support on the UI thread.
    • – Stop proxy efficiently on I/O thread blocks.
    • – Relax the Playlist Proxy requirement of 1:1 DASH segment matching.
    • – Added support for Audio only M4F(PDCF) files.
  • Added beta-level support for Android 64 bit architectures aarch64, X86_64 android and mips64 architectures in source sdk for AOSP builds.
  • Bug Fixes:
    • – #1936 : JNI layer creates too many local references
    • – #1953 : SamplePlayer: Seeking the content while reloading playback throws “-1” error code in alert message
    • – #1955 : SamplePlayer: Seeking at the end of content playback throws “-10010 ==> ATX_ERROR_INVALID_FORMAT” error code in alert message for few HLS content
    • – #1961 : FD leak in Android PMF code
2. Known Issues
  • Wasabi build is not supported with Android NDK r5b version.
  • #1215: Landscape view of Loop Player is showing player as in portrait view in iPhone 4S and iPad 2 (iOS6). After the content played without seek first time fully in landscape view, the player starts playing in portrait view even though the device is in landscape view for the second time. This is a limitation of the sample player.
  • MarlinPlaylistPlayer: Fragmented mp4 pdcf content playback freezes after 2 seconds of play and timeline bar starts from the beginning on playback resume.
  • #1499: MarlinPlaylistPlayer: Issues with video resolution and pause/resume with playback in Nexus 7 device having Android OS Version 4.3.
    Pause, rewind and fast forward actions are broken in Android 4.3 (http://code.google.com/p/android/issues/detail?id=59776)
  • “Audio & Subtitles” icon is not available/viewable in iPod device
  • Audio bitrate changes might cause small temporary freezes in the rendering pipeline for the desktop platforms.
  • Bento4 does not implement Fragmented Sample Table seek operations completely, and produced HLS TS fragments may have grossly audio and video non-interleaved fragments that the Android HLS media stack does not handle gracefully.
  • #1567: SamplePlayer: The playback freezes for a second after 2-3 seconds of the start of the playback for few of the test HLS static contents.
  • #1581: Playing Live DASH can get player and server out of sync after about 1h30m of playing. It is recommended the player implement some server time sync mechanism.
  • #1656 – Wasabi does not accept “file:///c:/” as file URL in personalization token. Use “file://c:/” instead.
  • Android still has a bug in the HLS fragment duration parsing: here
  • #1820: LoopPlayer: Application controls are not visible in landscape view in iOS8
3. Notes:
  • A new iOS9 (beta) feature disallows clear HTTP transfers by default. To work around this, an application using Playlist Proxy needs to add an App Transport Security exception to the application’s Info.plist file. The exception could be specific to a domain, or could be an overall exception for any HTTP access in case application accesses many media contents over HTTP.
  • A new XCode7 (beta) feature adds BITCODE_ENABLED build setting, set to YES by default. When building for device with bitcode enabled, the Deployment Target must be set to iOS6 or higher. Note also that the ExpressPlay framework does not include bitcode at this time.

04/07/2015: Wasabi And ExpressPlay SDK 1.12.2


Contents:
  1. Changes since the last release 1.11.1
  2. Known Issues
1. Changes since the last release 1.11.1
  • Added AES128CTR mode decryption support in Media Stream
  • Enhanced logging for Run-time info through native logger
  • Enhanced MediaFile to better handling of bogus MIME type from server
  • Updated AvcParser in IppDecoder for robustness improvement
  • Support for new UHD targeted Output Control Parameters
  • Fixed WSB_MediaFile_Open to handle MS3 urls properly
  • Fixed Wasabi to accept MPDs even with subset of base Hbbtv isoff-live profile
  • Changes in JNI and Android:
    • – Added support in Jni API for Proxy Manager
    • – Exposed MP4Cenc and Hls Media Segment Decrypter API at the Java level
    • – Support loading of libWasabiJni.so library off a custom path in Android
  • PlaylistProxy enhancements:
    • – Reduced size of Playlist Proxy rewritten URLs
    • – Reduced data caching in Playlist Proxy
  • ExpressPlay SDK Related Changes:
    • – ExpressPlay packages now uses a SCP 2.9.2
    • – ExpressPlay 64 bit Windows proxy package is introduced
    • – Added libWasabiJni.so for armeabi-v7a architecture in ExpressPlay Android package
  • Bug Fixes:
    • – #1681: Neptune and Atomix logs don’t come out through NSLog
    • – #1909: MediaStreamExample: Not able to scroll to view the complete output on Android
    • – #1911: JNI: MediaFile.getName() call returns MS3 url instead of content url
    • – #1912: Media Stream API docs are terse
    • – #1925: ActionResultInfo tool fails for ms3 url with ms3 schema
    • – #1929: Mac SamplePlayer: Crash occurs on seeking BBTS contents multiple times
2. Known Issues
  • Wasabi build is not supported with Android NDK r5b version.
  • #1215: Landscape view of Loop Player is showing player as in portrait view in iPhone 4S and iPad 2 (iOS6).
    After the content played without seek first time fully in landscape view, the player starts playing in portrait view even though the device is in landscape view for the second time. This is a limitation of the sample player.
  • MarlinPlaylistPlayer: Fragmented mp4 pdcf content playback freeze after 2 seconds of play and timeline bar starts from the beginning on playback resume
  • #1499: MarlinPlaylistPlayer: Issues with video resolution and pause/resume with playback in Nexus 7 device having Android OS Version 4.3.
    Pause, rewind and fast forward actions are broken in Android 4.3 (http://code.google.com/p/android/issues/detail?id=59776)
  • “Audio & Subtitles” icon is not available/viewable in iPod device
  • Audio bitrate changes might cause small temporary freezes in the rendering pipeline for the desktop platforms.
  • Bento4 does not implement Fragmented Sample Table seek operations completely, and produced HLS TS fragments may have grossly audio and video non-interleaved fragments that the Android HLS media stack does not handle gracefully.
  • #1567: SamplePlayer: The playback freezes for a second after 2-3 seconds of the start of the playback for few of the test HLS static contents.
  • #1581: Playing Live DASH can get player and server out of sync after about 1h30m of playing. It is recommended the player implement some server time sync mechanism.
  • #1656 – Wasabi does not accept “file:///c:/” as file URL in personalization token. Use “file://c:/” instead.
  • Android still has a bug in the HLS fragment duration parsing: http://androidxref.com/4.4.2
  • #1820: LoopPlayer: Application controls are not visible in landscape view in iOS8

02/01/2015: Wasabi And ExpressPlay SDK 1.11.1


Contents:
  1. Changes since the last release 1.11.0
  2. Known Issues
1. Changes since the last release 1.11.0
  • ExpressPlay Android package structure has been modified to have single Wasabi.jar for all supported android architectures.
  • Bug Fixes:
    • – #1899 : incorrect ContentLength from the proxy
    • – #1901 : Config: For ExpressPlay binaries is sending two “urn:marlin:broadband:client:manufacturer” attributes in the personalization request
    • – #1903 : ExpressPlay Android SDK: rename “Library/arm” to “Library/armeabi”
2. Known Issues
  • Wasabi build is not supported with Android NDK r5b version.
  • #1215: Landscape view of Loop Player is showing player as in portrait view in iPhone 4S and iPad 2 (iOS6).
    After the content played without seek first time fully in landscape view, the player starts playing in portrait view even though the device is in landscape view for the second time. This is a limitation of the sample player.
  • MarlinPlaylistPlayer: Fragmented mp4 pdcf content playback freeze after 2 seconds of play and timeline bar starts from the beginning on playback resume
  • #1499: MarlinPlaylistPlayer: Issues with video resolution and pause/resume with playback in Nexus 7 device having Android OS Version 4.3.
    Pause, rewind and fast forward actions are broken in Android 4.3 (http://code.google.com/p/android/issues/detail?id=59776)
  • “Audio & Subtitles” icon is not available/viewable in iPod device
  • Audio bitrate changes might cause small temporary freezes in the rendering pipeline for the desktop platforms.
  • Bento4 does not implement Fragmented Sample Table seek operations completely, and produced HLS TS fragments may have grossly audio and video non-interleaved fragments that the Android HLS media stack does not handle gracefully.
  • #1567: SamplePlayer: The playback freezes for a second after 2-3 seconds of the start of the playback for few of the test HLS static contents.
  • #1581: Playing Live DASH can get player and server out of sync after about 1h30m of playing. It is recommended the player implement some server time sync mechanism.
  • #1656 – Wasabi does not accept “file:///c:/” as file URL in personalization token. Use “file://c:/” instead.
  • Android still has a bug in the HLS fragment duration parsing: here
  • #1820: LoopPlayer: Application controls are not visible in landscape view in iOS8

01/10/2015: Wasabi And ExpressPlay SDK 1.11


Contents:
  1. Changes since the last release 1.10.1
  2. Known Issues
1. Changes since the last release 1.10.1
  • Support for fragmented mp4 file seek in Desktop player
  • Support for progressive download of fragmented MP4
  • Support for DASH in the MediaSegmentDecrypter API
  • (Beta preview) Support fast start with HLS on mobile platforms
  • ExoPlayer, AOSP, DRM Engine plugin integration
    • – Implement support for both MS3 and BB token license type in the AOSP DRM Engine Plugin.
  • Support for authenticated proxy servers to wasabi
  • Added new property WASABI_PROPERTY_NEMO_DEVICE_ID and WASABI_PROPERTY_PERSONALITY_NODE_ID to get values after personalization
  • Added support for Android mipsel architecture and intel architecture along with exisiting arm-android support.
  • Bug Fixes:
    • – #1847: Playlist Proxy rounds up segment size to a multiple of 188
    • – #1854: PDCF fragmentation may fail
    • – #1855: desktop platforms dash live playback one frame, freeze, then fast forward
    • – #1860: Sushi TLS won’t work with Apache SSL server
    • – #1888: Cannot seek back after end of playback through NuPlayer AOSP
    • – #1889: Wrong segment length from proxy when server declares wrong content type
    • – #1890: HttpStream interface does not handle “https” scheme correctly
2. Known Issues
  • Wasabi build is not supported with Android NDK r5b version.
  • #1215: Landscape view of Loop Player is showing player as in portrait view in iPhone 4S and iPad 2 (iOS6).
    After the content played without seek first time fully in landscape view, the player starts playing in portrait view even though the device is in landscape view for the second time. This is a limitation of the sample player.
  • MarlinPlaylistPlayer: Fragmented mp4 pdcf content playback freeze after 2 seconds of play and timeline bar starts from the beginning on playback resume
  • #1499: MarlinPlaylistPlayer: Issues with video resolution and pause/resume with playback in Nexus 7 device having Android OS Version 4.3.
    Pause, rewind and fast forward actions are broken in Android 4.3 (http://code.google.com/p/android/issues/detail?id=59776)
  • “Audio & Subtitles” icon is not available/viewable in iPod device
  • Audio bitrate changes might cause small temporary freezes in the rendering pipeline for the desktop platforms.
  • Bento4 does not implement Fragmented Sample Table seek operations completely, and produced HLS TS fragments may have grossly audio and video non-interleaved fragments that the Android HLS media stack does not handle gracefully.
  • #1567: SamplePlayer: The playback freezes for a second after 2-3 seconds of the start of the playback for few of the test HLS static contents.
  • #1581: Playing Live DASH can get player and server out of sync after about 1h30m of playing. It is recommended the player implement some server time sync mechanism.
  • #1656 – Wasabi does not accept “file:///c:/” as file URL in personalization token. Use “file://c:/” instead.
  • Android still has a bug in the HLS fragment duration parsing: here
  • #1820: LoopPlayer: Application controls are not visible in landscape view in iOS8

11/27/2014: Wasabi And ExpressPlay SDK 1.10.1


Contents:
  1. Changes since the last release 1.10.0
  2. Known Issues
1. Changes since the last release 1.10.0
  • Support for latest MAC OS X 10.10 version
  • Bug Fixes:
    • – #1864: Picture size detection can enter infinite loop Check for end of data while parsing bits of a field
    • – #1847: Playlist Proxy rounds up segment size to a multiple of 188
    • – #1857: MediaFile for ISO base media files may be too slow
    • – #1846: WasabiRuntime tool prints junk characters
2. Known Issues
  • Wasabi build is not supported with Android NDK r5b version.
  • #1215: Landscape view of Loop Player is showing player as in portrait view in iPhone 4S and iPad 2 (iOS6).
    After the content played without seek first time fully in landscape view, the player starts playing in portrait view even though the device is in landscape view for the second time. This is a limitation of the sample player.
  • MarlinPlaylistPlayer: Fragmented mp4 pdcf content playback freeze after 2 seconds of play and timeline bar starts from the beginning on playback resume
  • #1499: MarlinPlaylistPlayer: Issues with video resolution and pause/resume with playback in Nexus 7 device having Android OS Version 4.3. Pause, rewind and fast forward actions are broken in Android 4.3 (http://code.google.com/p/android/issues/detail?id=59776)
  • “Audio & Subtitles” icon is not available/viewable in iPod device
  • Audio bitrate changes might cause small temporary freezes in the rendering pipeline for the desktop platforms.
  • Bento4 does not implement Fragmented Sample Table seek operations completely, and produced HLS TS fragments may have grossly audio and video non-interleaved fragments that the Android HLS media stack does not handle gracefully.
  • #1567: SamplePlayer: The playback freezes for a second after 2-3 seconds of the start of the playback for few of the test HLS static contents.
  • #1581: Playing Live DASH can get player and server out of sync after about 1h30m of playing. It is recommended the player implement some server time sync mechanism.
  • #1656 – Wasabi does not accept “file:///c:/” as file URL in personalization token. Use “file://c:/” instead.
  • Android still has a bug in the HLS fragment duration parsing: here
  • #1820: LoopPlayer: Application controls are not visible in landscape view in iOS8

10/08/2014: Wasabi And ExpressPlay SDK 1.10.0


Contents:
  1. Changes since the last release 1.9.0
  2. Known Issues
1. Changes since the last release 1.9.0
  • Added support for dynamic DASH MPDs with moving availability start time
  • Exposed a new Segmented Media Decrypter API at the C level (Android and iOS only)
  • Added support in Jni API of LicenseStore to include method to expunge expired licenses
  • Implemented MS3 V1.2 client specification (MS3 over http)
  • PlaylistProxy enhancements:
    • – Support for base64 encoded Playlist Proxy URLs when needed
    • – Enhanced Playlist Proxy to bind to loopback interface only
  • Added new command Wasabi Runtime C API and command line enhancements, to perform various runtime operation such as personalization, registration, etc.
  • Added TLS support for server name indication.
  • Manifest reload DASH Downloader error handling enhancement
  • Enhanced DASH Interleaving to rely on media DTS
  • Bug Fixes:
    • – #1766: SamplePlayer: During pause, playback is resuming from first seek position instead last seek position
    • – #1793: Desktop player audio/video out of sync with Dash live presentation
    • – #1800: desktop hls playback resuming from first seek position instead of last seek position
    • – #1823: AOSP timeUS should be set to CTS, not DTS
2. Known Issues
  • Wasabi build is not supported with Android NDK r5b version.
  • #1215: Landscape view of Loop Player is showing player as in portrait view in iPhone 4S and iPad 2 (iOS6).
    After the content played without seek first time fully in landscape view, the player starts playing in portrait view even though the device is in landscape view for the second time. This is a limitation of the sample player.
  • MarlinPlaylistPlayer: Fragmented mp4 pdcf content playback freeze after 2 seconds of play and timeline bar starts from the beginning on playback resume
  • #1499: MarlinPlaylistPlayer: Issues with video resolution and pause/resume with playback in Nexus 7 device having Android OS Version 4.3.
    Pause, rewind and fast forward actions are broken in Android 4.3 (http://code.google.com/p/android/issues/detail?id=59776)
  • “Audio & Subtitles” icon is not available/viewable in iPod device
  • Audio bitrate changes might cause small temporary freezes in the rendering pipeline for the desktop platforms.
  • Bento4 does not implement Fragmented Sample Table seek operations completely, and produced HLS TS fragments may have grossly audio and video non-interleaved fragments that the Android HLS media stack does not handle gracefully.
  • #1567: SamplePlayer: The playback freezes for a second after 2-3 seconds of the start of the playback for few of the test HLS static contents.
  • #1581: Playing Live DASH can get player and server out of sync after about 1h30m of playing. It is recommended the player implement some server time sync mechanism.
  • #1656 – Wasabi does not accept “file:///c:/” as file URL in personalization token. Use “file://c:/” instead.
  • Android still has a bug in the HLS fragment duration parsing: here
  • #1820: LoopPlayer: Application controls are not visible in landscape view in iOS8

07/15/2014: Wasabi And ExpressPlay SDK 1.9.0


Contents:
  1. Changes since the last release 1.8.1
  2. Known Issues
1. Changes since the last release 1.8.1
  • Added WSB_LicenseStore_ExpungeExpiredLicenses() API to cleanup expired License from LicenseStore.
  • Improved Playlist Proxy HLS segment duration acurracy.
    • – Playlist Proxy DASH handler produce HLS version 3, where the EXTINF segment duration can be a floating point number rather than an integer.
  • Support iOS fallback stream requirement support in Playlist Proxy according to iOS app store requirement: here
  • Added support for AC3 & H265 signaling in PlaylistProxy & AC3 audio support in mediainput
  • Enhanced DASH Downloader to recover well in case of I/O failure in players.
  • Improved seek operation during playback of DASH and HLS contents in Desktop Sample Players
  • The SKB implementation in the Wasabi source SDK has been enhanced to make it easier to integrate onto SoCs supporting some sort of TrustZone technology
  • ExpressPlay SDK Related Changes:
    • – Added logic to relax tripping on root-detection only on Android at the app’s request with the help of new Wasabi Runtime property “WASABI_PROPERTY_ROOTED_OK”.
  • Bug Fixes:
    • – #1699: DashManifest doesn’t parse xs:duration types correctly
    • – #1701: Media Input NALU prefixing fails with media that includes access unit delimiter
    • – #1707: Mac SamplePlayer: Crash occurs on seeking HLS dynamic encrypted/clear contents
    • – #1728: WasabiInfo hangs on Broadcom
    • – #1734: Presentation time offset can be more than 32-bit
    • – #1744: Not able to play the HLS subtitle content without “PROGRAM-ID” attribute in #EXT-X-STREAM-INF tag
    • – #1781: MediaStream() API memory usage effects older devices
    • – #1789: PlaylistProxy_MakeUrl fails to produce correct URL if the original URL has spaces in it
  • Wasabi have been verified to work with the following Anti-virus softwares with standard installation: Avast, Bitdefender, ESET NOD32, Kaspersky, Kingsoft Antivirus, K7 Antivirus, Trend Micro
2. Known Issues
  • Wasabi build is not supported with Android NDK r5b version.
  • #1215: Landscape view of Loop Player is showing player as in portrait view in iPhone 4S and iPad 2 (iOS6).
    After the content played without seek first time fully in landscape view, the player starts playing in portrait view even though the device is in landscape view for the second time. This is a limitation of the sample player.
  • MarlinPlaylistPlayer: Fragmented mp4 pdcf content playback freeze after 2 seconds of play and timeline bar starts from the beginning on playback resume
  • #1499: MarlinPlaylistPlayer: Issues with video resolution and pause/resume with playback in Nexus 7 device having Android OS Version 4.3.
    Pause, rewind and fast forward actions are broken in Android 4.3 (http://code.google.com/p/android/issues/detail?id=59776)
  • “Audio & Subtitles” icon is not available/viewable in iPod device.
  • Audio bitrate changes might cause small temporary freezes in the rendering pipeline for the desktop platforms.
  • Bento4 does not implement Fragmented Sample Table seek operations completely, and produced HLS TS fragments may have grossly audio and video non-interleaved fragments that the Android HLS media stack does not handle gracefully.
  • #1567: SamplePlayer: The playback freezes for a second after 2-3 seconds of the start of the playback for few of the test HLS static contents.
  • #1581: Playing Live DASH can get player and server out of sync after about 1h30m of playing. It is recommended the player implement some server time sync mechanism.
  • #1656 – Wasabi does not accept “file:///c:/” as file URL in personalization token. Use “file://c:/” instead.
  • Android still has a bug in the HLS fragment duration parsing: here
  • #1784 EmbeddedPlayer: After first period switch, playback freezes for the “http://content.intertrust.com/dash/actvila/work2/stream.mpd” DASH content

05/07/2014: Wasabi And ExpressPlay SDK 1.8.1


Contents:
  1. Changes since the last release 1.8.0
  2. Known Issues
1. Changes since the last release 1.8.0
  • Disable content length HTTP header in the DASH proxy responses and add a new Wasabi Runtime property “WSB_PROPERTY_NAME_PROXY_DASH_CONTENT_LENGTH” to enable content length if needed
  • Bug Fixes:
    • – #1704: LicenseStore can cause running out of file descriptor in certain case
    • – #1709: Playlist Proxy produced HLS playlist breaks on Android KitKat due to discontinuity tag at the start of playlist
    • – #1710: Playlist Proxy should not constraint clear DASH to 520K
    • – #1711: Playlist Proxy throws off Android HLS bandwidth measurement and switching
    • – #1726: URLs that include the “.mpd” substring don’t play on Samsung Galaxy Pro Tab 8.4 running Android 4.4
2. Known Issues
  • Wasabi build is not supported with Android NDK r5b version.
  • #1215: Landscape view of Loop Player is showing player as in portrait view in iPhone 4S and iPad 2 (iOS6).
    After the content played without seek first time fully in landscape view, the player starts playing in portrait view even though the device is in landscape view for the second time. This is a limitation of the sample player.
  • MarlinPlaylistPlayer: Fragmented mp4 pdcf content playback freeze after 2 seconds of play and timeline bar starts from the beginning on playback resume
  • #1499: MarlinPlaylistPlayer: Issues with video resolution and pause/resume with playback in Nexus 7 device having Android OS Version 4.3.
    Pause, rewind and fast forward actions are broken in Android 4.3 (http://code.google.com/p/android/issues/detail?id=59776)
  • “Audio & Subtitles” icon is not available/viewable in iPod device
  • Audio bitrate changes might cause small temporary freezes in the rendering pipeline for the desktop platforms.
  • Bento4 does not implement Fragmented Sample Table seek operations completely, and produced HLS TS fragments may have grossly audio and video non-interleaved fragments that the Android HLS media stack does not handle gracefully.
  • #1567: SamplePlayer: The playback freezes for a second after 2-3 seconds of the start of the playback for few of the test HLS static contents.
  • #1581: Playing Live DASH can get player and server out of sync after about 1h30m of playing. It is recommended the player implement some server time sync mechanism.
  • #1656 – Wasabi does not accept “file:///c:/” as file URL in personalization token. Use “file://c:/” instead.
  • #1699: DashManifest doesn’t parse xs:duration types correctly
  • #1707: Mac SamplePlayer: Crash occurs on seeking HLS dynamic encrypted/clear contents
  • #1728: WasabiInfo hangs on Broadcom

03/28/2014: Wasabi And ExpressPlay SDK 1.8.0


Contents:
  1. Changes since the last release 1.7.1
  2. Known Issues
1. Changes since the last release 1.7.1
  • Enhanced Cryptanium Code Protection based Jail break handling for Android.
  • Enable Playlist Proxy access on desktop platforms
  • Enable MS3 client with self signed certs
    • – By setting MS3_ACCEPT_SELF_SIGNED_CERTS and MS3_ACCEPT_HOSTNAME_MISMATCH properties through WSB_Runtime_SetProperty() and WSB_Runtime_GetProperty() API’s
  • Add H265 support in Wasabi for embedded systems
  • AOSP integration enhancements for BB and other DRM interaction support
  • Added HTTP status code propagation throughout Playlist Proxy
  • Renamed wasabi.dll name to wasabiDLL.dll and modified other related projects to refer new name
  • Media Stream enhancement for sharing keys. Please refer to the MediaStream API documentation.
  • Enhance static DASH segment fetching procedure so it retries in case of temporary HTTP errors.
  • Android scons build to derive ANDROID_HOST_TAG automatically
  • ExpressPlay SDK Related Changes:
    • – ExpressPlay packages now uses a SCP 2.4.0 and SKB 4.13.0 versions
  • Add support to set db storage path on all platforms through usage of WSB_PROPERTY_NAME_STORAGE_DIRECTORY property
  • Bug Fixes:
    • – #1583: iOS ExpressPlay static library symbol collisions
    • – #1610: Media Input does not consider mime type when opening content URL
    • – #1611: Sushi: configure_sushi.py is not handling child element present under tag
    • – #1626: javah may not be taken from JAVA_HOME
    • – #1650: EcmDecrypter to handle asynchronous key computation w.r.t. onNewMediaFile
2. Known Issues
  • Wasabi build is not supported with Android NDK r5b version.
  • #1215: Landscape view of Loop Player is showing player as in portrait view in iPhone 4S and iPad 2 (iOS6).
    After the content played without seek first time fully in landscape view, the player starts playing in portrait view even though the device is in landscape view for the second time. This is a limitation of the sample player.
  • MarlinPlaylistPlayer: Fragmented mp4 pdcf content playback freeze after 2 seconds of play and timeline bar starts from the beginning on playback resume
  • #1499: MarlinPlaylistPlayer: Issues with video resolution and pause/resume with playback in Nexus 7 device having Android OS Version 4.3.
    Pause, rewind and fast forward actions are broken in Android 4.3 (http://code.google.com/p/android/issues/detail?id=59776)
  • “Audio & Subtitles” icon is not available/viewable in iPod device
  • Audio bitrate changes might cause small temporary freezes in the rendering pipeline for the desktop platforms.
  • Bento4 does not implement Fragmented Sample Table seek operations completely, and produced HLS TS fragments may have grossly audio and video non-interleaved fragments that the Android HLS media stack does not handle gracefully.
  • #1567: SamplePlayer: The playback freezes for a second after 2-3 seconds of the start of the playback for few of the test HLS static contents.
  • #1581: Playing Live DASH can get player and server out of sync after about 1h30m of playing. It is recommended the player implement some server time sync mechanism.
  • #1656 – Wasabi does not accept “file:///c:/” as file URL in personalization token. Use “file://c:/” instead.

01/17/2014: Wasabi And ExpressPlay SDK 1.7.1


Contents:
  1. Changes since the last release 1.7.0
1. Changes since the last release1.7.0
  • Enhanced Cryptanium Code Protection based Jail break handling for iOS.
  • Fixed minor bug in configure_sushi.

12/14/2013: ExpressPlay SDK 1.7.0


Contents:
  1. Changes since the last release 1.6.1
  2. Known Issues
1. Changes since the last release
  • ExpressPlay Related Changes:
    • – ExpressPlay test package includes support for building app for Debug simultor version
  • DASH Related Changes
    • – Added Support for timestamps that have discontinuities at Dash period boundaries for Windows and Mac
    • – Added support for availabilityEndTime
  • PlaylistProxy related changes:
    • – Added support for non-mulitplexed multi-audio channels in HLS playlistproxy
    • – Added support for WebVTT subtitles (non-processed HLS playlist lines) in HLS palylistproxy for iOS platform
    • – Added support for fragmented mp4 playback in Playlist Proxy
  • Other Changes
    • – SDK Documents which were present in previous release of the source SDK have been moved to http://www.expressplay.com
    • – Add wasabi runtime convenience method for processing BB tokens
    • – IMPORTANT: the default filenames for the sushi db and license store have changed. In order to upgrade from a previous version of the ExpressPlay SDK, the previous version’s path name must be used in the initialization of the SDK. Refer to bug#1542 below. Starting with v1.7, the file names are defined like so:
    • – db0[.].storage
    • – LicenseStore[.].db

      Where DBParamName can be provided when calling WSB_Runtime_InitializeEx(). It is recommended that a production deployment configure the parameter to be specific to the company doing the deployment (to avoid ambiguity and conflicts on the desktop platforms). Similarly, since v1.6 of the SDK provided a default value that is no longer provided, the parameter used in the 1.6 deployment must be used to enable a smooth upgrade.

  • Bug Fixes:
    • – #1368: DASH manifest update is broken
    • – #1383: Playlist Proxy may not produce correct playlist for some DASH manifests
    • – #1478: NewInitSegment event might get lost on an error code path
    • – #1508: Proper handling of non-zero start times in timeline segments
    • – #1512: MarlinPlaylistPlayer: Unable to play BBTS content generated with “–single-key-layer” option
    • – #1519: iOS7 Wasabi apps fails to play dynamic HLS
    • – #1525: Fix GetSegmentStartTimeAndDuration() to show correct start times in segments
    • – #1531: Fix inconsistent crash with dash encrypted-static contents when recursively seeked to the end of seek bar
    • – #1542: ExpressPlay: Unable to upgrade from one version to another due to differences in the db file name
    • – #1560: WasabiPlaylistProxy returns response for fragmented PDCF CTR content instead of WSB_ERROR_NOT_SUPPORTED
    • – #1569: EmbeddedPlayer: Video output goes totally grey on switching the language while playing Dash clear/encrypted single/multi period contents
    • – #1572 PlaylistProxy not returning error message when invalid source_content_type is provided.
    • – #1577 LoopPlayer: Device personalization fails in iOS 7 simulator version and application crashes
    • – #1580 LoopPlayer: Application throws “20014==> NPT_ERROR_TIMEOUT” message in console log after availabilityEndTime is elapsed instead of “101323 ==> WSB_ERROR_DASH_BEYOND_AVAIL_ENDTIME”
2. Known Issues
  • Wasabi build is not supported with Android NDK r5b version.
  • BBTS is not supported in BtPlayX
  • #1215: Landscape view of Loop Player is showing player as in portrait view in iPhone 4S and iPad 2 (iOS6).
    After the content played without seek first time fully in landscape view, the player starts playing in portrait view even though the device is in landscape view for the second time. This is a limitation of the sample player.
  • MarlinPlaylistPlayer: Fragmented mp4 pdcf content playback freeze after 2 seconds of play and timeline bar starts from the beginning on playback resume
  • #1499: MarlinPlaylistPlayer: Issues with video resolution and pause/resume with playback in Nexus 7 device having Android OS Version 4.3.
    Pause, rewind and fast forward actions are broken in Android 4.3 (http://code.google.com/p/android/issues/detail?id=59776)
  • “Audio & Subtitles” icon is not available/viewable in iPod device
  • Wasabi 1.7 build is supported from XCode5 onwards only.
  • Audio bitrate changes might cause small temporary freezes in the rendering pipeline for the desktop platforms.
  • Bento4 does not implement Fragmented Sample Table seek operations completely, and produced HLS TS fragments may have grossly audio and video non-interleaved fragments that the Android HLS media stack does not handle gracefully.
  • #1567: SamplePlayer: The playback freezes for a second after 2-3 seconds of the start of the playback for few of the test HLS static contents.
  • #1581: Playing Live DASH can get player and server out of sync after about 1h30m of playing. It is recommended the player implement some server time sync mechanism.

09/05/2013: Wasabi And ExpressPlay SDK 1.6.1


Contents:
  1. Changes since the last release 1.6
  2. Known Issues
1. Changes since the last release
  • The supported interfaces used to be defined via a list of header files. They are now the interfaces documented in the html or javadoc API references.
  • Fixed support for iOS7 version caused by a function newly deprecated in this version of iOS
  • Cleaned up Express related projects. Added Support for Desktop platforms(Windows and MAC) as ExpressPlay SDKs.
  • Bug Fixes:
    • – #1368: DASH manifest update is broken
    • – #1399: WasabiDashToMp4 is not downloading any segments with –extract-upto option
    • – #1400: EmbeddedPlay: Playback freezes after few seconds of audio switch input, while playing Dash Generator contents
    • – #1402: EmbeddedPlay: Playback freezes after 15 seconds while playing REFE003 and REFE004 (PDCF content)
    • – #1410: SamplePlayer: Playback stops momentarily after playing few segments of “dynamic-single” contents
    • – #1414: Inconsistent Memory leak found in WasabiTest (Dash module)
    • – #1415: Memory leak found in WSB_Ap4MediaFile module
    • – #1420: lazy loading of init segment can affect bandwidth measurement
    • – #1422: Error code range overlap in Sushi/Wasabi
    • – #1451: Java wasabi.Runtime.personalize does not throw exception on failure
    • – #1450: Time stamp shown at bottom right corner for “dynamic-multi-timeline-clear-nocrrpdur” content, seconds count switches back randomly
    • – #1454: DashManifest parsing presentation duration incorrectly
    • – #1463: MAC Sample Player: Crash occurs inconsistently on different periods, upon playback of dynamic-multi-timeline-encrypted
    • – #1465: desktop sample player crashes occasionally after pause/resume operation
    • – #1468: Sushi enters an infinite loop if “SHI_CreateDirectory” fails during the db storage path creation
    • – #1475: EmbeddedPlayer: Playback stops for all dynamic-single dash contents after playing few segments
    • – #1477: SKB errors don’t show up in errors.txt
    • – #1486: Sample Player crashes with unsupported format content “Pantos (non-Marlin) HLS protected playlist”
    • – #1488: EmbeddedPlayer: Player plays only first two periods of DASH-TS multi number content
    • – #1490: LoopPlayer: Player crashes while playing hlss content with https schema instead of hlss schema
    • – #1491: Mac SamplePlayer crashes on closing the player while “dash encrypted static single” contents reloads for second time by clicking “Play” button again
2. Known Issues
  • #1394: Early Available Period is not handled correctly
  • #1413: Upgrading an Android App fails if the original version of the App does not have “internet” permission.
  • #1215: Landscape view of Loop Player is showing player as in portrait view in iPhone 4S and iPad 2 (iOS6).
    After the content played without seek first time fully in landscape view, the player starts playing in portrait view even though the device is in landscape view for the second time. This is a limitation of the sample player.
  • #1476: ExpressPlayExample: Video playback freezes for a fraction of second in an interval of 2 to 3 seconds, while playing HLS encrypted contents
  • Wasabi build is not supported with Android NDK r5b version.
  • The contents specified in HowToTestDash.txt are just for examples and are not available/hosted in the server.

07/13/2013: Wasabi And Wasabi Express/ExpressPlay SDK 1.6


Contents:
  1. Changes since the last release 1.5.2
  2. Known Issues
1. Changes since the last release
  • Wasabi adds the “MediaStream” interface that enables decryption of general purpose media types. This can be used to support ePub content decryption (note that parsing of the container remains the domain of the application). This interface is supported on all versions of the SDK.
  • Enhanced support for seeking in BBTS streams via a separate index file.
  • Enhanced Android build to work with recent NDK releases, in particular 8c.
  • Playlist Proxy enhancements
    • – Added support for http access of BBTS, DCF, PDCF.
    • – Added Support for fragmented mp4
  • Moved some of the run-time intialization from the JNI layer down to Sushi layer.
  • Dash Related changes:
    • – Added support for Number-based timelines.
    • – Enhanced for reporting queue buffer duration in media status.
    • – Enhanced fast audio switching.
    • – Revised the bandwidth measurement algorithm.
    • – Support to handle Early Available Period.
    • – Enhance Dash default representation selector
  • New Tools and Applications
    • – Added MediaStreamAndroidSample Android application
    • – Added ExpressPlayExample, ExpressPlayer apps for Android and iOS platform
  • Document Changes:
    • – Added Wasabi JavaDoc.
  • Selected 3rd Party Tickets Fixes:
    • – #10: Media Input source Destroy takes more time for all Mpeg-Ts.
    • – #15: Issue related to the total duration Playback.
    • – #17: Buffering And Streaming notifications.
    • – #18: Multiple Audio switch delay.
    • – #24: AV/lip Sync issue.
    • – #28: Dynamic Audio language switch issue.
    • – #30: Audio drop Issue for multiple period.
    • – #31: MPD reference schema change.
    • – #32: Currentline rate issue.
    • – #33: Time taken to switch from low bitrate to high.
    • – #38: Add WSB_Ts2Crypto_CreateSkb and WSB_Ts2Crypto_ReleaseSkb API’s to public API list.
    • – #58: Audio representation with low bitrate is playing while higher bandwidth is set.
  • Enhanced Wasabi to no longer use MAC address on iOS platform
2. Known Issues
  • #1284: MAC Sample Player: Crash occurs inconsistently on different periods, when playback of dynamic-multi-timeline-encrypted content is paused and resumed again.
  • #1371: Calling MediaStream function with cleartext file(clear.txt) throws “WSB_ERROR_INVALID_PARAMETERS” instead “WSB_ERROR_NOT_SUPPORTED”.
  • #1400: EmbeddedPlay: Playback freezes after few seconds of audio switch input, while playing Dash Generator contents.
  • #1410: SamplePlayer: Playback stops momentarily after playing few segments of “dynamic-single” contents.
  • #1215: Landscape view of Loop Player is showing player as in portrait view in iPhone 4S and iPad 2 (iOS6). This is a limitation of the sample player.
  • BBTS is not supported in BtPlayX, hence the example specified in “Intertrust Media-Handling Tools Guide” needs to be discarded.
  • The contents specified in HowToTestDash.txt are just for examples and are not available/hosted in the server.
  • Wasabi build is not supported with Android NDK r5b version.
  • Android applications using wasabi require “internet” permission to make it possible to upgrade the application.
  • he modules listed in the chm files are in places inexact. For the definitive list of supported interfaces for each build target and SDK type, please consult the “Supported Interfaces” section of the Wasabi C API guide

04/01/2013: Wasabi And Wasabi Express 1.5.2


Contents:
  1. Changes since the last release 1.5.1
  2. Known Issues
1. Changes since the last release
  • Dash Related Changes:
    • – Fixed a problem causing problems with A/V interleaving in some cases.
  • Document Changes:
    • – Modified/Updated “Intertrust Media-Handling Tools Guide” document.
  • Bug Fixes:
    • – #1298: Crash happening in certain cases when referencing parent pointers in MPD objects
2. Known Issues
  • Wasabi build is not supported with Android NDK r5b version.
  • BBTS is not supported in BtPlayX, hence the example specified in “Intertrust Media-Handling Tools Guide” needs to be discarded.
  • #1215: Landscape view of Loop Player is showing player as in portrait view in iPhone 4S and iPad 2 (iOS6).
    After the content played without seek first time fully in landscape view, the player starts playing in portrait view even though the device is in landscape view for the second time. This is a limitation of the sample player.
  • The contents specified in HowToTestDash.txt are just for examples and are not available/hosted in the server.
  • #1306: Few of the static dash generator contents while seeking them forward produces some grey patches for a few seconds during playback. This issue doesn’t happen when we use static contents from other servers.

03/07/2013: Wasabi And Wasabi Express 1.5.1


Contents:
  1. Changes since the last release 1.5
  2. Known Issues
1. Changes since the last release
  • Wasabi Express SDK Changes:
    • – New files, necessary to build the iOS sample application are included in the zip file (scp-update-binary-eval, narwhal project and narwhal db files)
  • DASH Related minor enhancements:
    • – Multi-fragment segments support in DASH-MP4
  • Other Changes:
    • – When possible and required, Wasabi Player now switches to a lower resolution stream instead of downscaling
    • – Added support for SKB-wrapped keys in sushi config, to work with HKP1 interface on broadcom devices
    • – Support ECM Decrypter with BBTS 2.0 Single Key Layer
    • – Removed the hardcoded personalization token in the source code. The personalization token is now referenced from ShiBootStrapToken.cpp generated from ConfigureSushi.py.
    • – Updated SHI_Engine_Personalize API, to use the personalization token from ShiBootStrapToken.cpp when a null personalization token is passed to the API.
    • – Added simple personalization utility functions and make the WasabiFile command line utility invoke them as a client test. (only described in doxygen documentation))
    • – Updated various Wasabi builds to use TomFastMath library instead of using TomsMath library.
    • – Added an API to renew the device’s Nemo Credentials (only described in doxygen documentation)
  • Document Changes:
    • – Modified/Updated documents Windows.txt, Wasabi SDK API C Developers Guide.pdf, Wasabi SDK API C Developers Guide.docx, Wasabi Extensions.pdf, Wasabi Extensions.docx, Intertrust Media-Handling Tools Guide.pdf.
  • Bug Fixes:
    • – #1234 SKB does not call HKP_Cleanup
    • – #1236 GetLiveSegment may not compute the live segment correctly
    • – #1237 incorrect minimum buffer time use
    • – #1242 Improve handling of dynamic presentations with short periods: one or two segments long
    • – #1243 ECM Decrypter with BBTS 2.0 does not recover traffic keys properly when using single key layer
    • – #1244 Android Build fails with NDK r8c and later
    • – #1249 TS init segment buffer ownership not transferred.
    • – #1255 Player freezes while switching to next period while playing dash dynamic multi period contents
    • – #1261 DASH Downloader doesn’t compute manifest check time correctly
    • – #1264 Player freezes after playing few seconds of static-multi-timeline-encrypted-audioonly content
    • – #1267 WasabiPlayer generates surge of HTTP GET’s at the boarder of two periods
    • – #1272 DashDownloader need to notify listener of new period index in the beginning of dynamic presentation
2. Known Issues
  • Wasabi build is not supported with Android NDK r5b version.
  • BBTS is not supported in BtPlayX, hence the example specified in “Intertrust Media-Handling Tools Guide” needs to be discarded.
  • #1215: Landscape view of Loop Player is showing player as in portrait view in iPhone 4S and iPad 2 (iOS6).
    After the content played without seek first time fully in landscape view, the player starts playing in portrait view even though the device is in landscape view for the second time. This is a limitation of the sample player.
  • The contents specified in HowToTestDash.txt are just for examples and are not available/hosted in the server.

12/14/2012: Wasabi And Wasabi Express 1.5


Contents:
  1. Changes since the last release 1.4.1
  2. Known Issues
1. Changes since the last release
  • Wasabi Express SDK Changes:
    • – Made major package and structure changes
    • – Made iOS express Lib folder structure look like Mac OSx Lib folder. Cleaned up unnecessary static libraries from Mac OSx.
    • – Preserve the symbolic links in iOS and Mac OSx frameworks
    • – Some more structural changes for CEF, Bin and Samples
    • – Added WasabiSushiPersonalize binary to the wasabi express package and disabled auto-personalization in WasabiSushiProcessToken.
  • Dash Related Changes:
    • – Support for DASH-TS in the embedded SDK version only (playback of DASH-TS is not supported in the desktop or mobile versions)
    • – Updated DashMediaFile and BlueTune DashInput module to handle audio only Dash presentation.
    • – Added support for non self-initializing segments in DASH-TS.
    • – Added dynamic stream selection support for Dash.
  • Other Changes:
    • – Implemented GetContentId method for DashMediaFile to support muxed Dash/TS protected stream.
    • – Optimized MediaFile layer on the usage of http connection.
    • – Added support to relax the 520K image size contraint in desktop and mobile versions of the SDK. This is achieved by including an output control override in a marlin broadband license or a custom extension in an MS3 SAS (“wudo” extension)
    • – Enabled insertion of access_criteria in a TS2 ECM stream.
    • – Disabled support for Ms3 SAD in Wasabi.
  • Wasabi Tools and Tests
    • – Added new tools to the Wasabi-Tools package: WasabiDashToMpeg2Ts, HlsToMpeg2Ts, WasabiDashTrace.
    • – The WasabiDashToMp4 sample utility was rewritten to use and illustrate the wasabi SDK API.
  • Document Changes:
    • – Modified/Updated documents Android.txt, Wasabi Develpers Guide, Wasabi Tutorial, Wasabi Over View, Linux.txt.
    • – Added an iOS build readme.
  • Bug Fixes:
    • – #1211 NPT_SharedVariable win32 implementation broken.
    • – Fixed issue in exporting Octopus Scuba Private Key.
2. Known Issues
  • #1206: DashGenerator codec issue: In IOS WasabiPlayer, screen may get intermittent green pixels while playing video with dynamic DASH multi-period timeline-based contents.
  • #1215: Landscape view of Loop Player is showing player as in portrait view in iPhone 4S and iPad 2 (iOS6).
    After the content played without seek first time fully in landscape view, the player starts playing in portrait view even though the device is in landscape view for the second time. This is a limitation of the sample player.
  • #1233: Dynamic multi-period DASH content occasionally freezes for a few seconds when the current period reaches its end, just before switching to new period.
  • The –protection option needs to be added while using tools Ts2UdpProcessor, Ts2Encrypt, Ts2FileEncrypterStitcher, this needs to be considered while referring in “Wasabi Tutorial” and “Intertrust Media-Handling Tools Guide” documents.
  • BBTS is not supported in BtPlayX, hence the example specified in “Intertrust Media-Handling Tools Guide” needs to be discarded.
  • The dash:// and dashs:// schema are not supported in WasabiDashToMp4, this needs to be considered while referring “Intertrust Media-Handling Tools Guide” document.
  • The contents specified in HowToTestDash.txt are just for examples and are not available/hosted in the server.

10/08/2012: Wasabi And Wasabi Express 1.4.1


Contents:
  1. Changes since the last release 1.4
  2. Known Issues
1. Changes since the last release
  • Wasabi has been tested to work with whiteCryption release 4.2.
  • Wasabi Express SDK Changes:
    • – Updated projects for Windows, Mac, iOS and Android
    • – Added TR VS solution and xCode project for wasabi on Mac and windows.
    • – Removed TR Finalization on iOS application
  • Marlin BBTS 2.0 related enhancement:
    • – Changed implementation to support Marlin BBTS 2.0 encrypted media
  • New/Modified API’s (Source SDK only):
    • – Add WSB_MediaSource_ReselectStream to the MediaSource interface to support dynamic stream selection.
    • – Exported WSB_MediaFile_GetRightsIssuerUrls and WSB_Player_SetInputEx for windows and Mac
  • Android Native DRM Plugin:
    • – Changed Android native DRM plugin manifest, make and sources to work with jellybean release of Android.
  • Sushi Database and Wasabi LicenseStore changes
    • – Changed db and license store location for debug build to wasabi/Debug on Mac and Windows.
    • – Prefixed sushi db and wasabi license store file names with the configuration name if wasabi confugred with non-default configuration
  • Noteworthy Ticket Fixes:
    • – #1069: improve on the estimated network bandwidth for DASH
    • – #1106: After DashDownloader failed to download live segment with error WSB_ERROR_DASH_LIVE_SEGMENT_UNAVAILABLE, next time DashDownloader is trying to download the 1st segment instead of trying to download next live segment
    • – #1113: While seeking the HbbTV dash content its downloading some extra video segments
    • – #1117: Video slows down last 3 seconds while testing HBBTV content #65
    • – #1121: DASH downloader failed to find live segment if minimumUpdatePeriod absent in dynamic type
    • – #1132: WasabiEmbeddedPlay doesn’t handle changing resolution in an MP4/PDCF file
    • – #1134: HkpConfig for Broadcom HKP does not check for NULL pointer from sem_open()
    • – #1135: Wasabi with generic SKB for MIPS does not build out of the box
  • Other:
    • – Update Wasabi sample player to automatically personalize if it is not personalized yet upon its startup.
    • – Cleanup in visual studio projects. Removed unnecessary references and configuration in VS projects
    • – Removed Ms3 Apache module from wasabi source SDK release package
    • – Update Wasabi media related http connection to use http 1.1 protocol instead of http 1.0 protocol.
    • – Disabled support for Ms3 Sad in Wasabi
2. Known Issues
  • #1179: Rebuilding Wasabi Solution causes build failure. It is recommended to always clean build Wasabi solution on windows.

8/17/2012: Wasabi Express 1.4


Contents:
  1. About
  2. Notes & Known Issues
1. About
  • Wasabi Express is a binary version of the Wasabi Source SDK of the same release version, compiled on iOS, android, Windows and Mac OSX. The functionality of the Express SDK is equivalent to that of the Wasabi Source SDK on these platforms. For details, please consult the Wasabi Express Media Player Developers Guide in the Documents folder.
2. Notes & Known Issues
  • Cleanup
    • Wasabi Express compiled binaries may not work on your device if you have already personalized an instance of the sdk on your device. Please delete db0.storage using the WasabiDBWiper utility found in BIN//
  • Downscaling
    • On Mac OSX and Windows, the player engine will attempt to downscale the video to the maximum size allowed (520K). The CPU necessary for the downscaling may tax certain devices to the point where the user experience is less than desirable. It is best for media to adhere to the output size restrictions.
  • iOS Finalization
    • The reference to finalization in section 5.2 is incorrect. For information on finalization, please refer to the LoopPlayer’s Xcode project. A build phase called “TR Finalize” invokes the necessary script to finalize the application. It is best to use keep the invocation and relative directory paths of files necessary for this phase identical to those in the LoopPlayer project. Note that the 2 files at the root of the SDK (wasabi-ios.nwdb, wasabi-ios.nwproj) are required for this step and must be kept in this location relative to the Wasabi-BIN-* folder.

07/07/2012: Wasabi 1.4


Contents:
  1. Changes since the last release 1.3.1
  2. Known Issues
1. Changes since the last release 1.3.1
  • Wasabi now support the HbbTV 1.5 DASH profile in Embedded, Desktop and Mobile versions (see http://www.hbbtv.org/pages/about_hbbtv/HbbTV-specification-1-5.pdf)

    Note: since DASH is a new standard, Wasabi 1.4 has been tested with a reasonable number of test cases, but in the event where unusual DASH configurations are encountered, unexpected behaviors may be observed. In this case, please notify us so that we may check against the spec and possibly enhance our implementation in a minor release update.

  • New/Modified API’s
    • – Added Dash C Apis – WSB_Element, WSB_MediaDataDecrypter and WSB_MediaSource (see the Wasabi C API Guide)
  • Build:
    • – GCC 4.7 Compatibility
    • – Added Android sample apps to the scons build
  • Changes in Examples/Tools and Tests:
    • – Added WasabiDashTrace and WasabiDashListSegments tools
    • – Modified Dash supported tools/examples to work with new dash features.
    • – Added DashExportTest for Dash C Apis
    • – Added gstreamer scripts to generate static and dynamic dash content: gst-dash.py and hbbtv_split.py
  • Others:
    • – Fixed inconsistency in exports accross all platforms (Linux, Windows and Mac)
    • – Fixed “.mlv & .mrv” contents seek issues in bluetune
    • – Added ability to handle the http:// URLs for DASH MPDs
    • – Make Personalization go on in background in android MarlinPlaylistPlayer and iOS WasabiExample player
2. Known Issues
  • #988: WasabiPlayer.app crashes on a content with invalid key for video track
  • #1054: “seek” should not move in the dynamic DASH case
  • #1069: improve on the estimated network bandwidth for DASH
  • #1100: seek is not working for DASH static timeline content Android DRM plug-in sample application on latest AOSP built emulator, does not show video and can here only audio.

03/23/2012: Wasabi 1.3.1


Contents:
  1. Changes since the last release 1.3
  2. Known Issues
1. Changes since the last release 1.3
  • Wasabi has been tested to work with whiteCryption release 3.6
  • Ticket Fixes:
    • – #711: WasabiCopyMedia and WasabiMp4Decrypt fails on Windows if the path of the content file is passed as input argument
    • – #844: Seek “.mlv & .mrv” contents to the end then content will start playing again from the beginning
    • – #934: WsbDashDownloader should return eos when duration stated in manifest is reached
    • – #965: Correctly handle no-network access condition when play HLS content in the MarlinPlaylistPlayer
    • – #968: Fix problem where the decoder drops frames during Dash bitrate changes
    • – #975: Correctly handle Dash playback when the audio and video content segment durations are not same
    • – #978: Fix Dash parser issues
    • – DASH parser should allow for both spellings of initialization (initialisation)
    • – Format the 64 bit start_time in segment url
  • Build:
    • – Added ability to use android make to build the Wasabi libraries, Jni libraries, Android DRM Plug-in and MarlinPlaylistPlayer with android build system (AOSP Approach)
  • Changes in tests:
    • – Made WasabiExportsTest build with wasabi shared library
    • – Fixed memory leaks in the test cases
  • Others:
    • – Added DrmPlugin and NetscapeBrowserPlugin components
    • – Added initial support for .uvu/DECE files in MediaFile and Bluetune
2. Known Issues
  • #946: Memory leaks for sqlite when dealing with thread
  • #966: Memory leaks in MediaPlaybackTests when profiled with Xcode4 leak profiler
  • #987: BtPlayX.exe crashes when playing TS content with no –input-type option
  • The SushiDB created with WhiteCryption 3.6 is incompatible with that created by previous versions of WhiteCryption. To obtain a compatible version please contact WhiteCryption.
  • DASH playback on Android via the PlaylistProxy is only supported on Android 4.x
  • Android DRM plug-in sample application on latest AOSP built emulator, does not show video but plays back only audio.

02/06/2012: Wasabi 1.3


Contents:
  1. Changes since the last release 1.2.1
  2. Known Issues
1. Changes since Release 1.2.1
  • General Adaptive Streaming Enhancements – Mpeg DASH and HLS:
    • – Added support for Dynamic adaptive streaming over HTTP (DASH) to the desktop, as well as the Android and iOS Playlist Proxy versions of the wasabi SDK.
    • – Added support for downloading HLS and DASH manifests and content segments over HTTPS.
    • – Added support for Marlin HLS AES protection in desktop, iOS and Android versions of the wasabi SDK.
  • Changes related to Examples and Tests:
    • – Added tests for DASH, HLS AES, DASH MediaFile, MediaPlayback for DASH and HLS AES contents.
    • – Added Tests of Wasabi and Sushi external API’s
    • – Added WasabiDashInfo tool to dump contents of an MPD to a file or the console
    • – Added DashToMp4 example program
    • – Added dash support in WasabiEmbeddedPlay, WasabiPlaylistProxy, WasabiCopyMedia and iOS and Sample players.
  • Ticket Fixes:
    • – Ticket#770: Stream Notification events are repeating while playing an encrypted content
    • – Ticket#799: Decoder: decoder fails to play audio track that contains 5.1 channels
  • Other:
    • – Updated revisions of Bento4, Neptune, Atomix , Sockeye, Sushi etc.
    • – Updated copyright of sources and it’s externals.
  • Build:
    • – GCC 4.6.2 Compatibility
    • – NDK r7 support for arm android build
  • Documents:
    • – Added “Intertrust MPEG-2 TS SDK API and Tools.pdf” document.
    • – Updated other Wasabi related documents.
2. Known Issues that did not make the release cutoff
  • #946: Memory leaks for sqlite when dealing with thread
  • #966: Memory leaks in MediaPlaybackTests when profiled with Xcode4 leak profiler
  • #922: Failed to build Android DRM Plugin with AOSP approach
  • #967: Unable to execute bento4 binaries from WasabiTools package on mac Leopard
  • #711: WasabiCopyMedia and WasabiMp4Decrypt fails on Windows if the path of the content file is passed as input argument
  • Inconsistent MediaPlayback tests failures when we run all MediaPlayback tests together on windows.
  • The BltXPlay is not documented in “Intertrust Media-Handling Tools Guide.pdf”

10/21/2011: Wasabi 1.2.1


Contents:
  1. Changes since the last release 1.2
  2. Known Issues
1. Changes since Release 1.2
  • HLSS: Added support for downloading HLS playlists over HTTPS for the desktop SDK API
  • Enabled ContentProxy to play local files with content keys acquired from MS3. The changes include the following:
    • – ContentProxyExample.java can now take URL on the command line
    • – ensures WSB_PlaybackEnabler_ResolveUrl gets called as part of the Wasabi call sequence
  • Following are the major bug fixes/changes:
    • – Ticket#814: WasabiCopyMedia fails due to EngineCreation(with -50004 error) only on Linux 64
    • – Ticket#815: fixes race condition between a webView timer refreshing the download page, and the Movie Player trying to fetch fragments
    • – Ticket#818: fixes an error in LoopPlayer where the duration is entered as an empty string.
    • – Ticket#828: fixes decoder freezing every 6 seconds on specific content
    • – Ticket#833: fixes a problem where once started and stopped, the PaylistProxy does not start again
    • – Ticket#835: fixes a crash when Playlist is empty.
    • – Ticket#839: fixes a DbusDrm crash on Terminate following unsuccessful Initialize.
    • – Ticket#850: fixes a bit rate switching problem occurring when the default bitrate adaptation is too aggressive.
    • – Ticket#856: Added comment and logging about unsupported sample code w.r.t. the IMEI usage in machine finterprinting on Android
    • – Ticket#861: fixes HlsToMpeg2Ts example and Player application crashes for marlin protected hls playlist.
    • – Ticket#862: fixes overly generous sleeptime in progressive download waitloop
    • – Ticket#864: fixed incomplete matching logic for X509 names
    • – Ticket#887: fixes validation of self signed certificate validation
    • – Updated Sockeye now includes support for specific versions of broadcom 7409 SoC firmware.
    • – Cleaned up export symbols in shared libraries. TS2 symbols have been added to libWasabi.so and SKB is now a separate .so lib.
    • – Ticket#849: Added an option in the HLS playlist loader so that only the master playlist is loaded.
    • – Enabled building of shared library. Changed the gcc flags to –no-rtti and –no-exceptions. Added Neptune/Bento4 dynamic cast anchors where needed.
    • – Disabled default MP3 support in Wasabi and added instructions on how to enable MP3 support (in DocumentsClientBuild). This is to avoid shipping an mp3 decoder inadvertently
  • Changes related to Examples and Tests:
    • – Added –enumerate option to WasabiLicenseStore.
    • – Added WasabiMp4License and WasabiMp4Decrypt to xcode project.
    • – Enabled MediaPlayback tests on Mac.
    • – Added WasabiExportsTest which contains all Wasabi public API tests
    • – Modified switch (-q) in WasabiTest.cpp to run few selective mediaplayback tests which are added in separate Test suite.
    • – Removed Ts2Crypto tests from external WasabiTest suite as it has dependence on internal bluewhale-server.
2. Known Issues that did not make the release cutoff
  • Ticket#885: Wasabi Mediaplayback Test eats up memory on WinXp when logged in remotely and eventually crashes
  • Ticket#890: Android DRM Plugin: Facing issue while setting up Android source tree for Android DRM Plugin

08/02/2011: Wasabi 1.2


Contents:
  1. Changes from the last release 1.1.1
  2. Known Issues
1. Changes from the last Release 1.1.1
  • Added support for HTTP Live Streaming (HLS) / Adaptive Bit Rate Streaming to the desktop and the iOS versions of the wasabi SDK. The desktop implementation detects and adapts to bandwidth changes while the iOS module leaves the bit rate adaptation to the native iOs media stack. The implementations take as input playlists pointing to clear TS content segments as well as to TS segments encrypted according to the Marlin BBTS specification. Please refer to the Marlin Adaptive Streaming Specification – Simple Profile for details on how to use HLS with Marlin.
  • New/Modified API’s
    • – Added WSB_PlaybackEnabler_EnableContentId, WSB_RightsEnabler_EnableMediaFile and WSB_Ms3Sas_HasContentId new APIs
  • Fixes and changes in JNI and android:
    • – Improved how ContentProxy handles lack of data in a progressive download case
    • – Added support for NDK r5b
    • – Moved Android examples to Source/Examples. Move Android test content to Test/Content/Android
    • – Added a ContentProxyExample
    • – Improved the sample app so it won’t do seeks unless player is playing, by setting the I/O timeout to infinity for the HTTP server
  • New tools and tests:
    • – Added Hls unit tests
    • – Added playlist proxy unit tests
    • – Added RsaKeyCache tests which will enabled for WC builds
    • – Added HlsToMpeg2Ts tool
    • – Added DB wiper tool
    • – Added http live streaming playlist parser
    • – Added a new iOS application as the base for the test iOS app (WasabiPlayer) with HLS support
    • – Added new iOS sample app that exercises the C API to the Playlist Proxy (LoopPlayer) with HLS support
    • – Added support for the “wasabi” URL scheme. The HTML pages on iOS can simply use “wasabi:playlist.m3u?bitstream-url=…”
  • Bluetune and intel codec related changes:
    • – Replaced the ffmpeg sample codec with the Intel IPP Decoder libarary for mac and windows. The intel codec can be redistributed under the license terms defined in License.txt
  • Build:
    • – Removed VS2005 targets
    • – Added vs2010 targets
    • – GCC 4.5 compatibility
  • Updated the thirdparty version:
    • – Clean up of unnecessary third-party libraries:
      • * Themida
      • * Json/json2.js and its dependencies
      • * All references to directx SDK
      • * Zlib, axTLS, ffmpeg and other thirdparty dependencies
  • Documents:
    • – Added new documents: Wasabi Tutorial, and Media Handling Tools guide
    • – Added new document for Playlist Proxy, Content Proxy, and Chromium/DRM Plug-in Wasabi extensions
    • – Updated the windows build instruction to work with the Release distribution
    • – Modified Android.txt to remove AOSP related info
2. Known Issues that did not make the release cutoff
  • Ticket#709: WC: Personalization operation crashes in TestJNIContentProxy test execution
  • Ticket#778: WC: Personalization operation crashes while executing MediaPlayback test
  • Ticket#801: Jittery playback occurs for a second when we seek BBTS & TS contents on WasabiPlayer.
  • Ticket#806: WsbHlsPlaylistParser fails to parse the two level playlist locally (not hosted on http server), where first playlist has absolute local path reference to second playlist.
  • Ticket#810: WC: Build failure in iOS applications (WasabiPlayer & LoopPlayer) due to the old Wasabi-iOS.pbxproj xcode project in Sockeye-wc-itru(protector)
  • TICKET#814: WasabiCopyMedia fails due to EngineCreation(with -50004 error) only on Linux 64
  • TICKET#816: Not able to execute binaries obtained from Wasabi tools package on Mac Leopard
  • TICKET#817: WC: Wasabi-android-arm-release job hangs inconsistently on QAHudson while running Content Proxy tests with WC package on Android

03/30/2011: Wasabi 1.1.1


Contents:
  1. Changes from the last Release 1.1
  2. Known Issues
1. Changes from the last Release 1.1
  • Added whitecryption RSA key cache feature (performance improvement)
  • Fixes related to dbus drm module.
    • – Fixed a shutdown issue in the dbus drm module. The dbus drm termination gets exercised on CTRL-C to the server.
    • – Fixed #679, WasabiDBusServer: First play condition not enforced strictly on WasabiDBusServer
    • – Typedef the enums so they work well with C code in dbus drm module, this was requested by Cisco.
  • Optimizations for iOS:
    • – Added iOS xcode project and merged other iOS related files from trunk.
    • – Merged Embedded from trunk to support iOsTestapp.
    • – Merged build config change to support 10.6 SDK.
    • – Merged xcode schemas from trunk.
    • – Added SushiInfo and WasabiFile debug URLs.
  • Fixed #685: Beyond O reported bug: Audio stops after plugging in earphones on Mac OSX 10.6
  • Made the WasabiEmbeddedPlay to work with MS3 on Broadcom. Avoided crashing on stream that doesn’t have both audio and video
  • Included Neptune release (supporting HTTP/1.1)
    • – Updated Neptune to r39
  • Updated to use Sushi 1.4.3
  • Following are the few more changes/fixes:
    • – Imported new version of Ts2 that fixed the following problems:
      • * Ticket #693: Ts2* tool usage statements are using wrong tool name capitalization
        The usage statements is modified to specify the correct case, so that it will work on all platforms.
      • * *big* pes packet parsing
      • * other minor issues
    • – Fixed scons failure for broadcom
    • – Updated to use Sockeye r93.
    • – Fixed #676: SDK IMP Build version is displayed as zero, instead of current SDK build version.
    • – Fixed #656: Wasabi build fails because of missing typecast for the mipsel-sigma-linux target.
    • – Fixed MAC OS X build. npapi in 10.6 switched from int32 to int32_t. typedef int32_t int32, and the others.
    • – Fixed #708: ContentProxy segfaults when calling Stop()
2. Known Issues that did not make the release cutoff
  • Ticket #681: Reword introduction of SushiTools.txt
    Needs to clarify from Sushi team about the officially supported Sushi tools.
  • Ticket #688: Beyond Bug: 0.6 sec delay for second play should be further reduced
  • Ticket #707: The error codes specified in WsbPlaybackEnabler.h not documented in Wasabi SDK API C Developers Guide.pdf/docx
  • Ticket #709: TestJNIContentProxy crashes on personalization on some cases for WC Wasabi. Not consistent

01/10/2011: Wasabi 1.1


Contents:
  1. Changes from the last release 1.0
  2. Known Issues
1. Changes from the last Release 1.0
  • Higher Level Error Codes
    • A new set of higher level error codes enable the caller to better determine the reason for a failure, be this at MS3 token processing, DRM action token processing, or DRM license evaluation. These new codes are documented (for now) in the following .h files:
      • – Source/Config/Validator/WsbConfigActionResultValidator.h
      • – Source/Interface/Extended/WsbPlaybackEnabler.h
      • – Source/Interface/Extended/WsbActionResultInfo.h
      • – Source/Interface/Core/WsbRightsEnabler.h
    • Error codes returned during service access are fairly straightforward. However, to understand how to use the API and the error codes in order to provide users with meaningful information, we recommend to have a look at the sample code provided in: Source/Examples/WasabiEcmDecrypter/WasabiEcmDecrypter.cpp
  • New processing_result field in WSB_RightsEnabler_LicenseEvent
    • This new field allows a listener to be informed when a license could not be processed by the rights enabler in its search for a valid license (during the EnableMediaFile call).
  • Function signature change for WSB_Config_ValidateActionResult
    • The new signature now needs the parameters that were used to create the Action using SHI_License_CreateAction:
      • – A boolean stating whether the result should be validated as a result of a Check or a Perform.
      • – A character string indicating the name of the Action.
      • – some optional Action parameters
2. Known Issues that did not make the release cutoff
  • Incomplete API Documentation: due to time, the documentation of these error codes did not make it into the PDF documentation
  • Ticket #268
    • – It is currently possible to call SHI_EnginePersonalize from multiple threads (using different SHI_Engine instances) and corrupt the personality stored in the sushi db.
    • – Workaround: ensure sushi personalization is only done from a single thread
  • Ticket #259
    • – On Windows Vista and 7 platforms, it is possible that the sushi db location created during personalization not be accessible by a sushi application, when the application has different user privileges from the process that performed personalization. For instance:
      • * personalize using any appropriate programs with “admin” privilege
      • * perform any operation that writes to the Sushi Db using any appropriate programs with “user” privilege. Notice one Sushi Db in C:ProgramData?Wasabi and another one in
        C:UsersfooAppData?LocalVirtualStore?Wasabi (where foo is the corresponding user name)
    • – Workaround: If personalization is expected to be performed via a process with privileges different from those that the application may have, create the sushi db location prior to personalizing and ensure the folder has the necessary permission so the application can access it.

10/31/2010: Wasabi 1.0


Contents:
  1. Changes from the last Prerelease
1. Changes from the last Prerelease
  • Enhanced Code coverage and numerous bug fixes.
  • New API:
    • – Several Modules have been added to the “embedded” API list. Thes are:
      • * WSB_ActionResultConstraint Class
      • * WSB_ActionResultInfo Class
      • * WSB_Ms3Client Class
      • * WSB_Ms3Sas Class
      • Please consult the documentation for further info.
    • – New JNI Interfaces (ContentProxy, LicenseStore, License
  • Various updates to Sushi Config (refer to the Sushi Deployment Guide)
  • Externalized SKB and support for linking with 3rd party SKB implementations
  • Changes to the SKB exported key format (affects generic implementation only but requires re-personalization of clients)
  • Various enhancements to ContentProxy (support for progressively downloaded media)
  • Internal Enhancements to use WSB_PlaybackEnabler wherever appropriate
  • Personalization protocol update to support OAEP padding of key encryption key instead of PKCS1.5 only
  • A number of fixes to the TLS implementation to handle a greater number of certificate formats
  • Audio Driver output support on linux
  • Ability to explicitly select a track (desktop and JNI interfaces)
  • Support for Stream Access Descriptors in addition to Compound URI
  • Improved Obligation and Callback handling (including in DBUS Server)
  • Reworked RightsEnabler to enable processing of further licenses than the license selected by default

9/30/2010: Prerelease


As previously announced, the main items in this release are:

  • – a lot of code cleanup and bug fixes
  • – proxy support for HTTPS connections made using the wasabi client (previously only HTTP connections were supported)
  • – configuration code cleanup (to support configuration with certificates/keys other than the defaults)
  • – a new TS encryption tool aware of adaptive bit rate content
  • – documentation updates
In addition, the sdk sources are now delivered in 2 packages:
  • – an “eval” package, that is identical in content to the previous drops (and builds on Win/Mac/Linux and Linux-like)
  • – a “release” package, (for Linux-like platforms only) that produces a build of the “supported” modules/interfaces only. There are many sample, experimental, and other such illustrative code in the “eval” package, not intended to be part of the final wasabi product. These un-supported items are removed from the build output in the release package. That and the version number is the only difference between “eval” and “release”.
Known Issues:
  • – (too) late in testing we found that flags/obligations from the MS3 SAS responses are not properly handled by the client. We will be ready to issue a patch shortly, should it be needed.


08/31/2010: Prerelease


This is a significant update to the 7/30 release, with the following enhancements:

  • – the DRM engine has been upgraded to use the SKB 1.0 interface.
  • – note that it will be necessary to remove any old sushi db0.storage and license store file
  • – the SKB 1.0 interface is complete and final. A limitations of 1.0 is that cloaking of secrets received over a TLS channel is not supported. Until a 1.x release, secrets transmitted over TLS (eg. MS3 SAS-delivered content keys) are handled by the caller of the interface
  • – Extended License Store APIs to support recently defined Canvas use cases
  • – HTTP proxy support for all HTTP (not yet HTTPS) calls.
  • – Removed symbols from libWasabi.so that do not need to be visible externally
  • – MS3 TLS cleanup. The drm client now uses one single TLS implementation throughout, and validates the server certificates, and presents its nemo certificate for authentication to the service.
  • – As a result the MS3 server must have access to the MTMO trust anchor. ms3-test.intertrust.com has this certificate and will work with the ms3 client of the sdk.
  • – the ms3-test.intertrust.com:8000 service (and associated MS3 SAS server) have been updated and the previous release’s clients will no longer be able to connect successfully. And the previously distributed Ms3SampleServer is now unable to service the new Ms3 clients.
  • – To support the SKB implementation, a new version of Intertrust’s on-line personalization protocol has been implemented and is deployed for drm client personalization. The support for the so-called “Bluewhale personalization” protocol has been deprecated and is no longer available.
  • – The ECMDecryptor API previously released as a patch have been incorporated
  • – A new implementation of the DBUS server, incorporating code cleanup and functional modifications due to an update to the Canvas specification
Missing from the release, and expected to be completed by the 9/30 (code complete) release:
  • – HTTPS proxy support and internal rework of HTTP proxy support
  • – documentation synchronization with latest code
  • – some memory leaks cleanups
  • – Code cleanup so that all sdk functions use SKB wrapped keys and SKB algorithms (instead of clear keys only and crypto algorithms sometimes external to SKB) This could not be completed in time for the release but does not affect any application calling the sdk interfaces
  • – Sushi configuration functionality needs to be updated to support configurations other than the default/test key based configuration included in the SDK. This is not an issue as long as test keys are used.


07/30/2010: Prerelease


This release includes alpha level implementations of:

  • – client processing of MS3 triggers (compound URI only)
  • – MS3 apache server module A brief introduction to MS3 is provided in a white paper. The release also includes sample MS3 client and MS3 server executables.Please consult the Readme for directions to build and verify the functionality. We are also hosting a test MS3 server at Intertrust, at http://ms3-test.intertrust.com:8000, to be used as described in the MS3 readme included in the release. We expect to update this release on or before the end of August with:
  • – a different TLS implementation for the MS3 client functionality (this alpha version uses fixed client certificates, not the expected marlin client’s nemo certificate, and it does not validate theserver certificate)
  • – bug fixes as needed for a beta level implementation.