Starboard Module Reference: configuration_constants.h

Declares all configuration variables we will need to use at runtime. These variables describe the current platform in detail to allow cobalt to make runtime decisions based on per platform configurations.



Platform can support partial audio frames


Whether this platform can map executable memory. This is required for platforms that want to JIT.


Determines the threshold of allocation size that should be done with mmap (if available), rather than allocated within the core heap.


The current platform's alternate file path component separator character. This is like SB_FILE_SEP_CHAR, except if your platform supports an alternate character, then you can place that here. For example, on windows machines, the primary separator character is probably '\', but the alternate is '/'.


The string form of SB_FILE_ALT_SEP_CHAR.


The current platform's maximum length of the name of a single directory entry, not including the absolute path.


The current platform's maximum number of files that can be opened at the same time by one process.


The current platform's maximum length of an absolute path.


The current platform's file path component separator character. This is the character that appears after a directory in a file path. For example, the absolute canonical path of the file "/path/to/a/file.txt" uses '/' as a path component separator character.


The string form of SB_FILE_SEP_CHAR.


Specifies whether this platform has webm/vp9 support. This should be set to non- zero on platforms with webm/vp9 support.


Whether the current platform supports thread priorities.


Determines the alignment that allocations should have on this platform.


The maximum size the cache directory is allowed to use in bytes.


The maximum number of thread local storage keys supported by this platform. This comes from _POSIX_THREAD_KEYS_MAX. The value of PTHREAD_KEYS_MAX is higher, but unit tests show that the implementation doesn't support nearly as many keys.


The maximum length of the name for a thread, including the NULL-terminator.


Defines the maximum number of simultaneous threads for this platform. Some platforms require sharing thread handles with other kinds of system handles, like mutexes, so we want to keep this manageable.


The maximum audio bitrate the platform can decode. The following value equals to 5M bytes per seconds which is more than enough for compressed audio.


The maximum video bitrate the platform can decode. The following value equals to 8M bytes per seconds which is more than enough for compressed video.


Specifies how video frame buffers must be aligned on this platform.


Defines the path where memory debugging logs should be written to.


The memory page size, which controls the size of chunks on memory that allocators deal with, and the alignment of those chunks. This doesn't have to be the hardware-defined physical page size, but it should be a multiple of it.


Specifies the network receive buffer size in bytes, set via SbSocketSetReceiveBufferSize().

Setting this to 0 indicates that SbSocketSetReceiveBufferSize() should not be called. Use this for OSs (such as Linux) where receive buffer auto-tuning is better.

On some platforms, this may affect max TCP window size which may dramatically affect throughput in the presence of latency.

If your platform does not have a good TCP auto-tuning mechanism, a setting of (128 * 1024) here is recommended.


The current platform's search path component separator character. When specifying an ordered list of absolute paths of directories to search for a given reason, this is the character that appears between entries. For example, the search path of "/etc/search/first:/etc/search/second" uses ':' as a search path component separator character.


The string form of SB_PATH_SEP_CHAR.


Specifies the preferred byte order of color channels in a pixel. Refer to starboard/configuration.h for the possible values. EGL/GLES platforms should generally prefer a byte order of RGBA, regardless of endianness.