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.
NOTE: Starboard versions 3 and below are no longer supported.
SbDecodeTargetInfoPlane can specify color plane informationPreviously: Planes of type kSbDecodeTargetFormat2PlaneYUVNV12 were assumed to have the luma mapped to the alpha channel (GL_ALPHA) and the chroma mapped to blue and alpha (GL_LUMINANCE_ALPHA). However, some graphics systems require that luma is on GL_RED_EXT and the chroma is on GL_RG_EXT.
SbStorageRecordsThis extends the SbStorage interface with the ability to open named SbStorageRecords. Calling SbStorageOpenRecord and SbStorageDeleteRecord with a NULL name parameter provides access to the old “default” record.
This extends the SbInput interface with some enum values and data members to allow mouse, wheel, and more generic pointer input.
SbMediaAudioHeader::audio_specific_config will be a pointer instead of an array.
Removes SbTimeZoneGetDstName() -- The Daylight Savings Time version of the time zone.
Changes SbTimeZoneGetName() to be more flexible in what it is allowed to return.
SbDecodeTargetNumberOfPlanesForFormatAdds the convenience inline function, SbDecodeTargetNumberOfPlanesForFormat() to starboard/decode_target.h.
Adds the kSbEventTypePreload event, and modifies the application state machine to utilize it.
Removes SbSystemPlatformErrorType values specific to user status.
SbDecodeTarget support for the UYVY (i.e. YUV 422) formatAdd support for UYVY decode targets (e.g. YUV 422) via the kSbDecodeTargetFormat1PlaneUYVY enum.
This adds SbKey codes for:
kSbEventTypeLowMemoryAdds a new event type -- kSbEventTypeLowMemory -- to allow a platform to signal that the application may soon be terminated due to low memory availability.
SbPlayerWriteSample()const is added to sample_buffers and sample_buffer_sizes parameters.
Add key_statuses_changed_callback parameter to SbDrmCreateSystem() to support MediaKeySession::keyStatuses and MediaKeySession::onkeystatuseschange.
Change the meaning of negative values for thumbstick position from bottom right to upper left.
Introduce starboard/speech_recognizer.h. This newly-introduced starboard/speech_recognizer.h adds the on-device speech recognizer feature.
Adds kSbSystemPropertyUserAgentAuxField to the SbSystemPropertyId enum to allow platform-specific User-Agent suffix.
starboard/input.hThe following unused enum values are removed from starboard/input.h:
kSbInputDeviceTypeMicrophonekSbInputDeviceTypeSpeechCommandkSbInputEventTypeAudiokSbInputEventTypeCommandkSbInputEventTypeGrabkSbInputEventTypeUngrabFeature 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,
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.SbPlayerSetBounds() must now be defined on all platforms, even if they don't support punch out (in which case they can implement a stub).SbPlayerGetCompositionHandle() is removed.SbPlayerGetTextureId() is replaced by the new SbPlayerGetCurrentFrame(), which returns a SbDecodeTarget.In starboard/decode_target.h,
SbDecodeTargetGetPlane() and SbDecodeTargetGetFormat(), SbDecodeTargetIsOpaque()) are now replaced with SbDecodeTargetGetInfo().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.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,
SbDecodeTargetProvider with SbDecodeTargetGraphicsContextProvider.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.SbDecodeTargetCreate(), SbDecodeTarget creation is now an implementation detail to be dealt with in other Starboard API functions that create SbDecodeTargets, like SbImageDecode() or SbPlayerCreate().Support for setting the playback rate on an SbPlayer. This allows for control of the playback speed of video at runtime.
Change input.h's SbInputVector structure to contain float members instead of ints.
Deleted the vestigal struct SbUserApplicationTokenResults from user.h.
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.
SbMediaCanPlayMimeAndKeySystem()Use a unified implementation of SbMediaCanPlayMimeAndKeySystem() based on SbMediaIsSupported(), SbMediaIsAudioSupported(), and SbMediaIsVideoSupported().
ticket parameter to SbDrmGenerateSessionUpdateRequest()Introduce ticket parameter to SbDrmGenerateSessionUpdateRequest() and SbDrmSessionUpdateRequestFunc to allow distinguishing between callbacks from multiple concurrent calls.
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.
starboard/cryptography.hIn newly-introduced starboard/cryptography.h,
SbPlayerSetBounds()Allow SbPlayerSetBounds to use an extra parameter to indicate the z-index of the video so multiple overlapping videos can be rendered.
configuration.hMedia source buffer settings in Starboard.
starboard/accessibility.hIn particular, the functions SbAccessibilityGetDisplaySettings() and SbAccessibilityGetTextToSpeechSettings() have now been introduced.
Additionally, a new Starboard event, kSbEventTypeAccessiblitySettingsChanged, has been defined in starboard/event.h.
In starboard/media.h, SbMediaColorMetadata is now defined and it contains HDR metadata. The field SbMediaColorMetadata color_metadata is now added to SbMediaVideoSampleInfo.
kSbSystemDeviceTypeAndroidTV to starboard/system.hA new device type, kSbSystemDeviceTypeAndroidTV, is added to starboard/system.h.
SbSpeechSynthesisSetLanguage()SbSpeechSynthesisSetLanguage() has been deprecated.
Added SbSystemRequestPause(), SbSystemRequestUnpause(), SbSystemRequestSuspend().
SbSystemRequestSuspend() in particular can be hooked into a platform's “hide” or “minimize” window functionality.
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.
SB_NORETURN to starboard/configuration.h.Added attribute macro SB_NORETURN to allow functions to be marked as noreturn.
SbSystemBreakIntoDebugger SB_NORETURN.Add SB_NORETURN to declaration of SbSystemBreakIntoDebugger, to allow it to be used in a manner similar to abort.