| # Starboard Version Changelog |
| |
| This document records all changes made to the Starboard interface, up to the |
| current version, but not including the experimental version. This file will |
| be updated each time a new Starboard version is released. Each section in |
| this file describes the changes made to the Starboard interface since the |
| version previous to it. |
| |
| ## Version 4 |
| |
| ### Decode-to-Texture Player Output Mode |
| Feature introducing support for decode-to-texture player output mode, and |
| runtime player output mode selection and detection. |
| In `starboard/configuration.h`, |
| * `SB_IS_PLAYER_PUNCHED_OUT`, `SB_IS_PLAYER_PRODUCING_TEXTURE`, and |
| `SB_IS_PLAYER_COMPOSITED` now no longer need to be defined (and should not |
| be defined) by platforms. Instead, these capabilities are detected at |
| runtime via `SbPlayerOutputModeSupported()`. |
| |
| In `starboard/player.h`, |
| * The enum `SbPlayerOutputMode` is introduced. |
| * `SbPlayerOutputModeSupported()` is introduced to let applications query |
| for player output mode support. |
| * `SbPlayerCreate()` now takes an additional parameter that specifies the |
| desired output mode. |
| * The punch out specific function `SbPlayerSetBounds()` must now be |
| defined on all platforms, even if they don't support punch out (in which |
| case they can implement a stub). |
| * The function `SbPlayerGetCompositionHandle()` is removed. |
| * The function `SbPlayerGetTextureId()` is replaced by the new |
| `SbPlayerGetCurrentFrame()`, which returns a `SbDecodeTarget`. |
| |
| In `starboard/decode_target.h`, |
| * All get methods (`SbDecodeTargetGetPlane()` and `SbDecodeTargetGetFormat()`, |
| `SbDecodeTargetIsOpaque()`) are now replaced with `SbDecodeTargetGetInfo()`. |
| * The `SbDecodeTargetInfo` structure is introduced and is the return value |
| type of `SbDecodeTargetGetInfo()`. |
| * `SbDecdodeTargetCreate()` is now responsible for creating all its internal |
| planes, and so its `planes` parameter is replaced by `width` and |
| `height` parameters. |
| * The GLES2 version of `SbDecdodeTargetCreate()` has its EGL types |
| (`EGLDisplay`, `EGLContext`) replaced by `void*` types, so that |
| `decode_target.h` can avoid #including EGL/GLES2 headers. |
| * `SbDecodeTargetDestroy()` is renamed to `SbDecodeTargetRelease()`. |
| |
| In `starboard/player.h`, `starboard/image.h` and `starboard/decode_target.h`, |
| * Replace `SbDecodeTargetProvider` with |
| `SbDecodeTargetGraphicsContextProvider`. |
| * Instead of restricting Starboard implementations to only be able to run |
| `SbDecodeTarget` creation and destruction code on the application's |
| renderer's thread with the application's renderer's `EGLContext` current, |
| Starboard implementations can now run arbitrary code on the application's |
| renderer's thread with its `EGLContext` current. |
| * Remove `SbDecodeTargetCreate()`, `SbDecodeTarget` creation is now an |
| implementation detail to be dealt with in other Starboard API functions |
| that create `SbDecodeTargets`, like `SbImageDecode()` or `SbPlayerCreate()`. |
| |
| ### Playback Rate |
| Support for setting the playback rate on an SbPlayer. This allows for control |
| of the playback speed of video at runtime. |
| |
| ### Floating Point Input Vector |
| Change `input.h`'s `SbInputVector` structure to contain float members instead of |
| ints. |
| |
| ### Delete SbUserApplicationTokenResults |
| Deleted the vestigal struct `SbUserApplicationTokenResults` from `user.h`. |
| |
| ### Storage Options for Encoded Audio/Video Data |
| Enables the SbPlayer implementation to provide instructions to its user on |
| how to store audio/video data. Encoded audio/video data is cached once being |
| demuxed and may occupy a significant amount of memory. Enabling this feature |
| allows the SbPlayer implementation to have better control on where encoded |
| audio/video data is stored. |
| |
| ### Unified implementation of `SbMediaCanPlayMimeAndKeySystem()` |
| Use a unified implementation of `SbMediaCanPlayMimeAndKeySystem()` based on |
| `SbMediaIsSupported()`, `SbMediaIsAudioSupported()`, and |
| `SbMediaIsVideoSupported()`. |
| |
| ### Introduce `ticket` parameter to `SbDrmGenerateSessionUpdateRequest()` |
| Introduce `ticket` parameter to `SbDrmGenerateSessionUpdateRequest()` |
| and `SbDrmSessionUpdateRequestFunc` to allow distinguishing between callbacks |
| from multiple concurrent calls. |
| |
| ### Introduce `SbSocketGetInterfaceAddress()` |
| `SbSocketGetInterfaceAddress()` is introduced to let applications find out |
| which source IP address and the associated netmask will be used to connect to |
| the destination. This is very important for multi-homed devices, and for |
| certain conditions in IPv6. |
| |
| ### Introduce `starboard/cryptography.h` |
| In newly-introduced `starboard/cryptography.h`, |
| * Optional support for accelerated cryptography, which can, in |
| particular, be used for accelerating SSL. |
| |
| ### Introduce z-index parameter to `SbPlayerSetBounds()` |
| Allow `SbPlayerSetBounds` to use an extra parameter to indicate the z-index of |
| the video so multiple overlapping videos can be rendered. |
| |
| ### Media source buffer settings removed from `configuration.h` |
| Media source buffer settings in Starboard. |
| |
| ### Introduce `starboard/accessibility.h` |
| In particular, the functions `SbAccessibilityGetDisplaySettings()` and |
| `SbAccessibilityGetTextToSpeechSettings()` have now been introduced. |
| |
| Additionally, a new Starboard event, `kSbEventTypeAccessiblitySettingsChanged`, |
| has been defined in `starboard/event.h`. |
| |
| ### HDR decode support |
| In `starboard/media.h`, `SbMediaColorMetadata` is now defined and it contains |
| HDR metadata. The field `SbMediaColorMetadata color_metadata` is now added to |
| `SbMediaVideoSampleInfo`. |
| |
| ### Add `kSbSystemDeviceTypeAndroidTV` to `starboard/system.h` |
| A new device type, `kSbSystemDeviceTypeAndroidTV`, is added to |
| starboard/system.h. |
| |
| ### Deprecate `SbSpeechSynthesisSetLanguage()` |
| SbSpeechSynthesisSetLanguage() has been deprecated. |
| |
| ### Request State Change Support |
| Added `SbSystemRequestPause()`, `SbSystemRequestUnpause()`, |
| `SbSystemRequestSuspend()`. |
| |
| `SbSystemRequestSuspend()` in particular can be hooked into a platform's "hide" |
| or "minimize" window functionality. |
| |
| ### Font Directory Path Support |
| Added `kSbSystemPathFontDirectory` and `kSbSystemPathFontConfigurationDirectory` |
| which can be optionally specified for platforms that want to provide system |
| fonts to Starboard applications. The font and font configuration formats |
| supported are application-specific. |
| |
| ### Add `SB_NORETURN` to `starboard/configuration.h`. |
| Added attribute macro `SB_NORETURN` to allow functions to be marked as noreturn. |
| |
| ### Mark `SbSystemBreakIntoDebugger` `SB_NORETURN`. |
| Add `SB_NORETURN` to declaration of `SbSystemBreakIntoDebugger`, to allow it to |
| be used in a manner similar to `abort`. |