Crate libktx_rs_sys

Source
Expand description

A low-level Rust wrapper over KhronosGroup/KTX-Software, a library for reading, transcoding and writing Khronos Textures (KTX).

You very likely want to use the high-level wrapper, [libktx_rs] instead of this crate!

Re-exports§

pub use self::ktx_error_code_e as ktxResult;

Structs§

__BindgenUnionField
ktxAstcParams
@memberof ktxTexture @~English @brief Structure for passing extended parameters to ktxTexture_CompressAstc.
ktxBasisParams
@memberof ktxTexture2 @~English @brief Structure for passing extended parameters to ktxTexture2_CompressBasisEx.
ktxFormatSize
@brief Structure for holding size information for a texture format.
ktxKVListEntry
ktxMem
ktxOrientation
@~English @brief Struct describing the logical orientation of an image.
ktxStream
@~English
ktxStream__bindgen_ty_1
ktxStream__bindgen_ty_1__bindgen_ty_1
ktxTexture
@class ktxTexture @~English @brief Base class representing a texture.
ktxTexture1
@class ktxTexture1 @~English @brief Class representing a KTX version 1 format texture.
ktxTexture2
@class ktxTexture2 @~English @brief Class representing a KTX version 2 format texture.
ktxTexture1_private
< Private data.
ktxTexture2_private
< Private data.
ktxTextureCreateInfo
@memberof ktxTexture @~English @brief Structure for passing texture information to ktxTexture[12]_Create().
ktxTexture_protected
@memberof ktxTexture @~English
ktxTexture_vtbl
@memberof ktxTexture @~English @brief Table of virtual ktxTexture methods.
ktxTexture_vtblInt
ktxTexture_vvtbl

Constants§

KTX_ANIMDATA_KEY
KTX_ENDIAN_REF
KTX_ENDIAN_REF_REV
KTX_FALSE
KTX_GL_UNPACK_ALIGNMENT
KTX_HEADER_SIZE
KTX_ORIENTATION1_FMT
KTX_ORIENTATION2_FMT
KTX_ORIENTATION3_FMT
KTX_ORIENTATION_KEY
KTX_SWIZZLE_KEY
KTX_TRUE
KTX_WRITER_KEY
KTX_WRITER_SCPARAMS_KEY
class_id_ktxTexture1_c
class_id_ktxTexture2_c
ktxFormatSizeFlagBits_KTX_FORMAT_SIZE_COMPRESSED_BIT
ktxFormatSizeFlagBits_KTX_FORMAT_SIZE_DEPTH_BIT
ktxFormatSizeFlagBits_KTX_FORMAT_SIZE_PACKED_BIT
ktxFormatSizeFlagBits_KTX_FORMAT_SIZE_PALETTIZED_BIT
ktxFormatSizeFlagBits_KTX_FORMAT_SIZE_STENCIL_BIT
ktxFormatVersionEnum_KTX_FORMAT_VERSION_ONE
ktxFormatVersionEnum_KTX_FORMAT_VERSION_TWO
ktxOrientationX_KTX_ORIENT_X_LEFT
ktxOrientationX_KTX_ORIENT_X_RIGHT
ktxOrientationY_KTX_ORIENT_Y_DOWN
ktxOrientationY_KTX_ORIENT_Y_UP
ktxOrientationZ_KTX_ORIENT_Z_IN
ktxOrientationZ_KTX_ORIENT_Z_OUT
ktxSupercmpScheme_KTX_SS_BASIS_LZ
< Basis LZ supercompression.
ktxSupercmpScheme_KTX_SS_BEGIN_RANGE
ktxSupercmpScheme_KTX_SS_BEGIN_RESERVED
ktxSupercmpScheme_KTX_SS_BEGIN_VENDOR_RANGE
ktxSupercmpScheme_KTX_SS_END_RANGE
ktxSupercmpScheme_KTX_SS_END_VENDOR_RANGE
ktxSupercmpScheme_KTX_SS_NONE
< No supercompression.
ktxSupercmpScheme_KTX_SS_ZSTD
< ZStd supercompression.
ktxSupercmpScheme_KTX_SUPERCOMPRESSION_BASIS
ktxSupercmpScheme_KTX_SUPERCOMPRESSION_ZSTD
ktxTextureCreateFlagBits_KTX_TEXTURE_CREATE_LOAD_IMAGE_DATA_BIT
ktxTextureCreateFlagBits_KTX_TEXTURE_CREATE_NO_FLAGS
ktxTextureCreateFlagBits_KTX_TEXTURE_CREATE_RAW_KVDATA_BIT
ktxTextureCreateFlagBits_KTX_TEXTURE_CREATE_SKIP_KVDATA_BIT
ktxTextureCreateStorageEnum_KTX_TEXTURE_CREATE_ALLOC_STORAGE
< Allocate image storage.
ktxTextureCreateStorageEnum_KTX_TEXTURE_CREATE_NO_STORAGE
< Don’t allocate any image storage.
ktx_error_code_e_KTX_ERROR_MAX_ENUM
< For safety checks.
ktx_error_code_e_KTX_FILE_DATA_ERROR
< The data in the file is inconsistent with the spec.
ktx_error_code_e_KTX_FILE_ISPIPE
< The file is a pipe or named pipe.
ktx_error_code_e_KTX_FILE_OPEN_FAILED
< The target file could not be opened.
ktx_error_code_e_KTX_FILE_OVERFLOW
< The operation would exceed the max file size.
ktx_error_code_e_KTX_FILE_READ_ERROR
< An error occurred while reading from the file.
ktx_error_code_e_KTX_FILE_SEEK_ERROR
< An error occurred while seeking in the file.
ktx_error_code_e_KTX_FILE_UNEXPECTED_EOF
< File does not have enough data to satisfy request.
ktx_error_code_e_KTX_FILE_WRITE_ERROR
< An error occurred while writing to the file.
ktx_error_code_e_KTX_GL_ERROR
< GL operations resulted in an error.
ktx_error_code_e_KTX_INVALID_OPERATION
< The operation is not allowed in the current state.
ktx_error_code_e_KTX_INVALID_VALUE
< A parameter value was not valid
ktx_error_code_e_KTX_LIBRARY_NOT_LINKED
< Library dependency (OpenGL or Vulkan) not linked into application.
ktx_error_code_e_KTX_NOT_FOUND
< Requested key was not found
ktx_error_code_e_KTX_OUT_OF_MEMORY
< Not enough memory to complete the operation.
ktx_error_code_e_KTX_SUCCESS
< Operation was successful.
ktx_error_code_e_KTX_TRANSCODE_FAILED
< Transcoding of block compressed texture failed.
ktx_error_code_e_KTX_UNKNOWN_FILE_FORMAT
< The file not a KTX file
ktx_error_code_e_KTX_UNSUPPORTED_FEATURE
< Feature not included in in-use library or not yet implemented.
ktx_error_code_e_KTX_UNSUPPORTED_TEXTURE_TYPE
< The KTX file specifies an unsupported texture type.
ktx_pack_astc_block_dimension_e_KTX_PACK_ASTC_BLOCK_DIMENSION_3x3x3
: 4.74 bpp
ktx_pack_astc_block_dimension_e_KTX_PACK_ASTC_BLOCK_DIMENSION_4x4
: 8.00 bpp
ktx_pack_astc_block_dimension_e_KTX_PACK_ASTC_BLOCK_DIMENSION_4x3x3
: 3.56 bpp
ktx_pack_astc_block_dimension_e_KTX_PACK_ASTC_BLOCK_DIMENSION_4x4x3
: 2.67 bpp
ktx_pack_astc_block_dimension_e_KTX_PACK_ASTC_BLOCK_DIMENSION_4x4x4
: 2.00 bpp
ktx_pack_astc_block_dimension_e_KTX_PACK_ASTC_BLOCK_DIMENSION_5x4
: 6.40 bpp
ktx_pack_astc_block_dimension_e_KTX_PACK_ASTC_BLOCK_DIMENSION_5x5
: 5.12 bpp
ktx_pack_astc_block_dimension_e_KTX_PACK_ASTC_BLOCK_DIMENSION_5x4x4
: 1.60 bpp
ktx_pack_astc_block_dimension_e_KTX_PACK_ASTC_BLOCK_DIMENSION_5x5x4
: 1.28 bpp
ktx_pack_astc_block_dimension_e_KTX_PACK_ASTC_BLOCK_DIMENSION_5x5x5
: 1.02 bpp
ktx_pack_astc_block_dimension_e_KTX_PACK_ASTC_BLOCK_DIMENSION_6x5
: 4.27 bpp
ktx_pack_astc_block_dimension_e_KTX_PACK_ASTC_BLOCK_DIMENSION_6x6
: 3.56 bpp
ktx_pack_astc_block_dimension_e_KTX_PACK_ASTC_BLOCK_DIMENSION_6x5x5
: 0.85 bpp
ktx_pack_astc_block_dimension_e_KTX_PACK_ASTC_BLOCK_DIMENSION_6x6x5
: 0.71 bpp
ktx_pack_astc_block_dimension_e_KTX_PACK_ASTC_BLOCK_DIMENSION_6x6x6
: 0.59 bpp
ktx_pack_astc_block_dimension_e_KTX_PACK_ASTC_BLOCK_DIMENSION_8x5
: 3.20 bpp
ktx_pack_astc_block_dimension_e_KTX_PACK_ASTC_BLOCK_DIMENSION_8x6
: 2.67 bpp
ktx_pack_astc_block_dimension_e_KTX_PACK_ASTC_BLOCK_DIMENSION_8x8
: 2.00 bpp
ktx_pack_astc_block_dimension_e_KTX_PACK_ASTC_BLOCK_DIMENSION_10x5
: 2.56 bpp
ktx_pack_astc_block_dimension_e_KTX_PACK_ASTC_BLOCK_DIMENSION_10x6
: 2.13 bpp
ktx_pack_astc_block_dimension_e_KTX_PACK_ASTC_BLOCK_DIMENSION_10x8
: 1.60 bpp
ktx_pack_astc_block_dimension_e_KTX_PACK_ASTC_BLOCK_DIMENSION_10x10
: 1.28 bpp
ktx_pack_astc_block_dimension_e_KTX_PACK_ASTC_BLOCK_DIMENSION_12x10
: 1.07 bpp
ktx_pack_astc_block_dimension_e_KTX_PACK_ASTC_BLOCK_DIMENSION_12x12
: 0.89 bpp
ktx_pack_astc_block_dimension_e_KTX_PACK_ASTC_BLOCK_DIMENSION_MAX
ktx_pack_astc_encoder_function_e_KTX_PACK_ASTC_ENCODER_FUNCTION_LINEAR
ktx_pack_astc_encoder_function_e_KTX_PACK_ASTC_ENCODER_FUNCTION_MAX
ktx_pack_astc_encoder_function_e_KTX_PACK_ASTC_ENCODER_FUNCTION_SRGB
ktx_pack_astc_encoder_function_e_KTX_PACK_ASTC_ENCODER_FUNCTION_UNKNOWN
ktx_pack_astc_encoder_mode_e_KTX_PACK_ASTC_ENCODER_MODE_DEFAULT
ktx_pack_astc_encoder_mode_e_KTX_PACK_ASTC_ENCODER_MODE_HDR
ktx_pack_astc_encoder_mode_e_KTX_PACK_ASTC_ENCODER_MODE_LDR
ktx_pack_astc_encoder_mode_e_KTX_PACK_ASTC_ENCODER_MODE_MAX
ktx_pack_astc_quality_levels_e_KTX_PACK_ASTC_QUALITY_LEVEL_EXHAUSTIVE
ktx_pack_astc_quality_levels_e_KTX_PACK_ASTC_QUALITY_LEVEL_FAST
ktx_pack_astc_quality_levels_e_KTX_PACK_ASTC_QUALITY_LEVEL_FASTEST
ktx_pack_astc_quality_levels_e_KTX_PACK_ASTC_QUALITY_LEVEL_MAX
ktx_pack_astc_quality_levels_e_KTX_PACK_ASTC_QUALITY_LEVEL_MEDIUM
ktx_pack_astc_quality_levels_e_KTX_PACK_ASTC_QUALITY_LEVEL_THOROUGH
ktx_pack_uastc_flag_bits_e_KTX_PACK_UASTC_ETC1_FASTER_HINTS
ktx_pack_uastc_flag_bits_e_KTX_PACK_UASTC_ETC1_FASTEST_HINTS
ktx_pack_uastc_flag_bits_e_KTX_PACK_UASTC_FAVOR_BC7_ERROR
ktx_pack_uastc_flag_bits_e_KTX_PACK_UASTC_FAVOR_UASTC_ERROR
ktx_pack_uastc_flag_bits_e_KTX_PACK_UASTC_LEVEL_DEFAULT
ktx_pack_uastc_flag_bits_e_KTX_PACK_UASTC_LEVEL_FASTER
ktx_pack_uastc_flag_bits_e_KTX_PACK_UASTC_LEVEL_FASTEST
ktx_pack_uastc_flag_bits_e_KTX_PACK_UASTC_LEVEL_MASK
ktx_pack_uastc_flag_bits_e_KTX_PACK_UASTC_LEVEL_SLOWER
ktx_pack_uastc_flag_bits_e_KTX_PACK_UASTC_LEVEL_VERYSLOW
ktx_pack_uastc_flag_bits_e_KTX_PACK_UASTC_MAX_LEVEL
ktx_pack_uastc_flag_bits_e_KTX_PACK_UASTC__ETC1_DISABLE_FLIP_AND_INDIVIDUAL
ktx_transcode_flag_bits_e_KTX_TF_HIGH_QUALITY
ktx_transcode_flag_bits_e_KTX_TF_PVRTC_DECODE_TO_NEXT_POW2
ktx_transcode_flag_bits_e_KTX_TF_TRANSCODE_ALPHA_DATA_TO_OPAQUE_FORMATS
ktx_transcode_fmt_e_KTX_TF_BC1
ktx_transcode_fmt_e_KTX_TF_BC3
ktx_transcode_fmt_e_KTX_TF_BC4
ktx_transcode_fmt_e_KTX_TF_BC5
ktx_transcode_fmt_e_KTX_TF_BC7_M6_OPAQUE_ONLY
ktx_transcode_fmt_e_KTX_TF_ETC1
Old enums for compatibility with code compiled against previous versions of libktx.
ktx_transcode_fmt_e_KTX_TF_ETC2
ktx_transcode_fmt_e_KTX_TF_PVRTC1_4_OPAQUE_ONLY
ktx_transcode_fmt_e_KTX_TTF_ASTC_4x4_RGBA
ASTC (mobile, Intel devices, hopefully all desktop GPU’s one day)
ktx_transcode_fmt_e_KTX_TTF_BC1_OR_3
ktx_transcode_fmt_e_KTX_TTF_BC1_RGB
BC1-5, BC7 (desktop, some mobile devices)
ktx_transcode_fmt_e_KTX_TTF_BC3_RGBA
ktx_transcode_fmt_e_KTX_TTF_BC4_R
ktx_transcode_fmt_e_KTX_TTF_BC5_RG
ktx_transcode_fmt_e_KTX_TTF_BC7_M5_RGBA
ktx_transcode_fmt_e_KTX_TTF_BC7_M6_RGB
ktx_transcode_fmt_e_KTX_TTF_BC7_RGBA
ktx_transcode_fmt_e_KTX_TTF_BGR565
ktx_transcode_fmt_e_KTX_TTF_ETC
Values for automatic selection of RGB or RGBA depending if alpha present.
ktx_transcode_fmt_e_KTX_TTF_ETC1_RGB
ETC1-2
ktx_transcode_fmt_e_KTX_TTF_ETC2_EAC_R11
ktx_transcode_fmt_e_KTX_TTF_ETC2_EAC_RG11
ktx_transcode_fmt_e_KTX_TTF_ETC2_RGBA
ktx_transcode_fmt_e_KTX_TTF_NOSELECTION
ktx_transcode_fmt_e_KTX_TTF_PVRTC1_4_RGB
PVRTC1 4bpp (mobile, PowerVR devices)
ktx_transcode_fmt_e_KTX_TTF_PVRTC1_4_RGBA
ktx_transcode_fmt_e_KTX_TTF_PVRTC2_4_RGB
ATC and FXT1 formats are not supported by KTX2 as there are no equivalent VkFormats.
ktx_transcode_fmt_e_KTX_TTF_PVRTC2_4_RGBA
ktx_transcode_fmt_e_KTX_TTF_RGB565
ktx_transcode_fmt_e_KTX_TTF_RGBA32
Uncompressed (raw pixel) formats
ktx_transcode_fmt_e_KTX_TTF_RGBA4444
streamType_eStreamTypeCustom
streamType_eStreamTypeFile
streamType_eStreamTypeMemory

Statics§

KTX_ETC1S_DEFAULT_COMPRESSION_LEVEL

Functions§

ktxErrorString
Returns a string corresponding to a KTX error code.
ktxFormatSize_initFromDfd
ktxHashListEntry_GetKey
Get the key from a ktxHashListEntry
ktxHashListEntry_GetValue
Get the value from a ktxHashListEntry
ktxHashList_AddKVPair
Adds a key-value pair to a hash list.
ktxHashList_Construct
ktxHashList_ConstructCopy
ktxHashList_Create
ktxHashList_CreateCopy
ktxHashList_DeleteEntry
Deletes a ktxHashListEntry from a ktxHashList.
ktxHashList_DeleteKVPair
Finds the entry for a key in a ktxHashList and deletes it.
ktxHashList_Deserialize
Creates a hash table from the serialized data read from a a KTX file.
ktxHashList_Destroy
ktxHashList_Destruct
ktxHashList_FindEntry
Looks up a key and returns the ktxHashListEntry.
ktxHashList_FindValue
Looks up a key and returns the value.
ktxHashList_Next
Return the next entry in a ktxHashList.
ktxHashList_Serialize
Serializes a ktxHashList to a block of memory suitable for writing to a KTX file.
ktxHashList_Sort
Sorts a ktxHashList into order of the key codepoints.
ktxPrintInfoForMemory
ktxPrintInfoForNamedFile
ktxPrintInfoForStdioStream
===========================================================* Utilities for printing info about a KTX file. *
ktxSupercompressionSchemeString
Returns a string corresponding to a supercompression scheme.
ktxTexture1_Create
Create a new ktxTexture1.
ktxTexture1_CreateFromMemory
ktxTexture1_CreateFromNamedFile
ktxTexture1_CreateFromStdioStream
These four create a ktxTexture1 provided the data is in KTX format.
ktxTexture1_CreateFromStream
ktxTexture1_NeedsTranscoding
ktxTexture1_WriteKTX2ToMemory
Write a ktxTexture object to a block of memory in KTX format.
ktxTexture1_WriteKTX2ToNamedFile
Write a ktxTexture object to a named file in KTX format.
ktxTexture1_WriteKTX2ToStdioStream
Write a ktxTexture object to a stdio stream in KTX format.
ktxTexture1_WriteKTX2ToStream
Write a ktxTexture object to a ktxStream in KTX format.
ktxTexture2_CompressAstc
ktxTexture2_CompressAstcEx
ktxTexture2_CompressBasis
ktxTexture2_CompressBasisEx
ktxTexture2_Create
Create a new ktxTexture2.
ktxTexture2_CreateCopy
Create a new ktxTexture2 as a copy of an existing texture.
ktxTexture2_CreateFromMemory
ktxTexture2_CreateFromNamedFile
ktxTexture2_CreateFromStdioStream
These four create a ktxTexture2 provided the data is in KTX2 format.
ktxTexture2_CreateFromStream
ktxTexture2_DeflateZstd
ktxTexture2_GetComponentInfo
ktxTexture2_GetNumComponents
ktxTexture2_GetOETF
ktxTexture2_GetPremultipliedAlpha
ktxTexture2_NeedsTranscoding
ktxTexture2_TranscodeBasis
ktxTexture_CreateFromMemory
ktxTexture_CreateFromNamedFile
ktxTexture_CreateFromStdioStream
These four create a ktxTexture1 or ktxTexture2 according to the data header, and return a pointer to the base ktxTexture class.
ktxTexture_CreateFromStream
ktxTexture_GLUpload
Uploads a texture to OpenGL {,ES}.
ktxTexture_GetData
Returns a pointer to the image data of a ktxTexture object.
ktxTexture_GetDataSize
Returns the size of all the image data of a ktxTexture object in bytes.
ktxTexture_GetElementSize
Return the element size of the texture’s images.
ktxTexture_GetRowPitch
Returns the pitch of a row of an image at the specified level. Similar to the rowPitch in a VkSubResourceLayout.
ktxTexture_IterateLevelFaces
Iterate over the levels or faces in a ktxTexture object.
ktxTexture_calcDataSizeTexture
ktxTexture_calcImageSize
ktxTexture_calcLevelSize
ktxTexture_construct
ktxTexture_constructFromStream
ktxTexture_destruct
ktxTexture_doCalcFaceLodSize
ktxTexture_isActiveStream
ktxTexture_iterateLoadedImages
ktxTexture_iterateSourceImages
ktxTexture_layerSize
ktxTexture_rowInfo
ktxTranscodeFormatString
Returns a string corresponding to a transcode target format.

Type Aliases§

FILE
GLenum
GLuint
PFNCALCDATASIZELEVELS
PFNCALCFACELODSIZE
PFNCALCLEVELOFFSET
PFNKTEXDESTROY
Don’t use KTX_APIENTRYP to avoid a Doxygen bug.
PFNKTEXGETDATASIZEUNCOMPRESSED
PFNKTEXGETIMAGEOFFSET
PFNKTEXGETIMAGESIZE
PFNKTEXITERATELEVELS
PFNKTEXITERATELOADLEVELFACES
PFNKTEXLOADIMAGEDATA
PFNKTEXNEEDSTRANSCODING
PFNKTEXSETIMAGEFROMMEMORY
PFNKTEXSETIMAGEFROMSTDIOSTREAM
PFNKTEXWRITETOMEMORY
PFNKTEXWRITETONAMEDFILE
PFNKTEXWRITETOSTDIOSTREAM
PFNKTEXWRITETOSTREAM
PFNKTXITERCB
@memberof ktxTexture @~English @brief Signature of function called by the ktxTexture_Iterate* functions to receive image data.
__int16_t
__int32_t
__int64_t
__off_t
__uint16_t
__uint32_t
__uint64_t
class_id
ktxFormatSizeFlagBits
ktxFormatSizeFlags
ktxFormatVersionEnum
ktxHashList
@class ktxHashList @~English @brief Opaque handle to a ktxHashList.
ktxHashListEntry
@class ktxHashListEntry @~English @brief Opaque handle to an entry in a @ref ktxHashList.
ktxOrientationX
ktxOrientationY
ktxOrientationZ
ktxStream__custom_ptr
ktxStream__data
ktxStream_destruct
@~English @brief Destruct a stream
ktxStream_getpos
@~English @brief type for a pointer to a stream position query function
ktxStream_getsize
@~English @brief type for a pointer to a stream size query function
ktxStream_read
@~English @brief type for a pointer to a stream reading function
ktxStream_setpos
@~English @brief type for a pointer to a stream position query function
ktxStream_skip
@~English @brief type for a pointer to a stream skipping function
ktxStream_write
@~English @brief type for a pointer to a stream reading function
ktxSupercmpScheme
@~English @brief Enumerators identifying the supercompression scheme.
ktxTextureCreateFlagBits
@memberof ktxTexture @~English @brief Flags for requesting services during creation.
ktxTextureCreateFlags
@memberof ktxTexture @~English @brief Type for TextureCreateFlags parameters.
ktxTextureCreateStorageEnum
@memberof ktxTexture @~English @brief Enum for requesting, or not, allocation of storage for images.
ktx_bool_t
ktx_error_code_e
@~English @brief Error codes returned by library functions.
ktx_int16_t
ktx_int32_t
ktx_int64_t
ktx_off_t
ktx_pack_astc_block_dimension_e
@~English @brief Options specifiying ASTC encoding block dimensions
ktx_pack_astc_encoder_function_e
@~English @brief Options specifiying ASTC encoder profile function
ktx_pack_astc_encoder_mode_e
@~English @brief Options specifying ASTC encoder profile mode This and function is used later to derive the profile.
ktx_pack_astc_quality_levels_e
@~English @brief Options specifiying ASTC encoding quality levels.
ktx_pack_uastc_flag_bits_e
@~English @brief Flags specifiying UASTC encoding options.
ktx_pack_uastc_flags
ktx_size_t
ktx_transcode_flag_bits_e
@~English @brief Flags guiding transcoding of Basis Universal compressed textures.
ktx_transcode_flags
ktx_transcode_fmt_e
@~English @brief Enumerators for specifying the transcode target format.
ktx_uint8_t
To avoid including <KHR/khrplatform.h> define our own types.
ktx_uint16_t
ktx_uint32_t
ktx_uint32_t_SIZE_ASSERT
This will cause compilation to fail if size of uint32 != 4.
ktx_uint64_t
off_t
size_t
streamType