31#define VMX_API __declspec(dllexport)
33#define VMX_API extern "C" __attribute__((visibility("default")))
35#if defined(_M_ARM64) | defined(__arm64) | defined(__aarch64__)
38#if defined(_M_X64) | defined(__x86_64__)
Definition thread_tasks.h:101
Definition vmxcodec.h:147
int AlignedHeight
Definition vmxcodec.h:169
VMX_SLICE_SET ** Slices
Definition vmxcodec.h:170
VMX_PROFILE Profile
Definition vmxcodec.h:150
int Threads
Definition vmxcodec.h:173
int ImageStrideA
Definition vmxcodec.h:188
int ImageStrideU
Definition vmxcodec.h:182
int ImageStride
Definition vmxcodec.h:179
unsigned short * EncodeMatrix256
Definition vmxcodec.h:165
ThreadTasks * Tasks
Definition vmxcodec.h:174
VMX_COLORSPACE ColorSpace
Definition vmxcodec.h:151
unsigned short * EncodeQualityPresets256[VMX_QUALITY_COUNT]
Definition vmxcodec.h:163
unsigned short * DecodeMatrix256
Definition vmxcodec.h:164
BYTE * ImageDataV
Definition vmxcodec.h:184
BYTE * ImageDataA
Definition vmxcodec.h:187
VMX_SIZE PreviewSizeInterlaced
Definition vmxcodec.h:176
VMX_PLANE Planes[VMX_MAX_PLANES]
Definition vmxcodec.h:167
VMX_FORMAT Format
Definition vmxcodec.h:149
int Quality
Definition vmxcodec.h:153
VMX_IMAGE_FORMAT ImageFormat
Definition vmxcodec.h:190
BYTE * ImageDataU
Definition vmxcodec.h:181
int avx2
Definition vmxcodec.h:148
int ImageStrideV
Definition vmxcodec.h:185
int DCShift
Definition vmxcodec.h:155
int SliceCount
Definition vmxcodec.h:168
unsigned short * EncodeQualityPresets[VMX_QUALITY_COUNT]
Definition vmxcodec.h:158
unsigned short * DecodeMatrix
Definition vmxcodec.h:159
BYTE * ImageData
Definition vmxcodec.h:178
int TargetBytesPerFrameMin
Definition vmxcodec.h:171
int MinQuality
Definition vmxcodec.h:154
VMX_SIZE PreviewSize
Definition vmxcodec.h:175
unsigned short * DecodeQualityPresets256[VMX_QUALITY_COUNT]
Definition vmxcodec.h:162
unsigned short * EncodeMatrix
Definition vmxcodec.h:160
unsigned short * DecodeQualityPresets[VMX_QUALITY_COUNT]
Definition vmxcodec.h:157
int TargetBytesPerFrameMax
Definition vmxcodec.h:172
Definition vmxcodec.h:138
int Index
Definition vmxcodec.h:139
BYTE * DataLowerPreview
Definition vmxcodec.h:143
int Stride
Definition vmxcodec.h:141
VMX_SIZE Size
Definition vmxcodec.h:140
BYTE * Data
Definition vmxcodec.h:142
int width
Definition vmxcodec.h:51
int height
Definition vmxcodec.h:52
Definition vmxcodec.h:111
buffer_t TempRead
Definition vmxcodec.h:119
unsigned char * Stream
Definition vmxcodec.h:112
unsigned char * StreamPos
Definition vmxcodec.h:113
int MaxStreamLength
Definition vmxcodec.h:114
int StreamLength
Definition vmxcodec.h:115
int BitsLeft
Definition vmxcodec.h:117
VMX_SIZE Size[3]
Definition vmxcodec.h:120
buffer_t Temp
Definition vmxcodec.h:118
Definition vmxcodec.h:124
int LowerField
Definition vmxcodec.h:131
VMX_SLICE_DATA DC
Definition vmxcodec.h:125
int Offset16[VMX_MAX_PLANES]
Definition vmxcodec.h:128
__declspec(align(64)) short TempBlock[128]
VMX_SLICE_DATA AC
Definition vmxcodec.h:126
VMX_SIZE PixelSizeInterlaced
Definition vmxcodec.h:130
VMX_SIZE PixelSize
Definition vmxcodec.h:129
int Offset[VMX_MAX_PLANES]
Definition vmxcodec.h:127
VMX_API VMX_ERR VMX_EncodeUYVA(VMX_INSTANCE *instance, BYTE *src, int stride, int interlaced)
VMX_API VMX_ERR VMX_DecodePA16(VMX_INSTANCE *instance, BYTE *dst, int stride)
#define VMX_API
Definition vmxcodec.h:33
VMX_API int VMX_SaveTo(VMX_INSTANCE *instance, BYTE *dst, int maxLen)
VMX_FORMAT
Definition vmxcodec.h:55
@ VMX_FORMAT_INTERLACED
Definition vmxcodec.h:57
@ VMX_FORMAT_PROGRESSIVE
Definition vmxcodec.h:56
VMX_API void VMX_BGRXToUYVY(BYTE *pSrc, int srcStride, BYTE *pDst, int dstStride, VMX_SIZE size)
VMX_API VMX_ERR VMX_DecodePreviewBGRA(VMX_INSTANCE *instance, BYTE *dst, int stride)
VMX_API int VMX_GetThreads(VMX_INSTANCE *instance)
const int VMX_DECODE_MATRIX_COUNT
Definition vmxcodec.h:193
unsigned char BYTE
Definition vmxcodec.h:48
VMX_API int VMX_BGRXToUYVYConditional(BYTE *pSrc, BYTE *pSrcPrev, int srcStride, BYTE *pDst, int dstStride, VMX_SIZE size)
VMX_API VMX_ERR VMX_EncodeBGRA(VMX_INSTANCE *instance, BYTE *src, int stride, int interlaced)
void VMX_ResetData(VMX_SLICE_DATA *s)
VMX_API VMX_ERR VMX_DecodeUYVA(VMX_INSTANCE *instance, BYTE *dst, int stride)
const int VMX_MAX_PLANES
Definition vmxcodec.h:45
VMX_API VMX_ERR VMX_DecodeUYVY(VMX_INSTANCE *instance, BYTE *dst, int stride)
VMX_API void VMX_SetEncodingParameters(VMX_INSTANCE *instance, int frameMin, int frameMax, int minQuality, int dcShift)
VMX_API float VMX_CalculatePSNR(BYTE *p1, BYTE *p2, int stride, int bytesPerPixel, VMX_SIZE sz)
VMX_API VMX_ERR VMX_LoadFrom(VMX_INSTANCE *instance, BYTE *data, int dataLen)
VMX_API VMX_ERR VMX_EncodeBGRX(VMX_INSTANCE *instance, BYTE *src, int stride, int interlaced)
VMX_COLORSPACE
Definition vmxcodec.h:84
@ VMX_COLORSPACE_BT709
Definition vmxcodec.h:87
@ VMX_COLORSPACE_UNDEFINED
Definition vmxcodec.h:85
@ VMX_COLORSPACE_BT601
Definition vmxcodec.h:86
VMX_API VMX_ERR VMX_DecodePreviewYUY2(VMX_INSTANCE *instance, BYTE *dst, int stride)
VMX_API void VMX_SetThreads(VMX_INSTANCE *instance, int numThreads)
VMX_API VMX_ERR VMX_EncodeYV12(VMX_INSTANCE *instance, BYTE *srcY, int srcStrideY, BYTE *srcU, int srcStrideU, BYTE *srcV, int srcStrideV, int interlaced)
VMX_API void VMX_Destroy(VMX_INSTANCE *instance)
const int VMX_ENCODE_MATRIX_COUNT
Definition vmxcodec.h:194
VMX_API VMX_ERR VMX_EncodePA16(VMX_INSTANCE *instance, BYTE *src, int stride, int interlaced)
const int VMX_SLICE_HEIGHT
Definition vmxcodec.h:43
VMX_CODEC_FORMAT
Definition vmxcodec.h:90
@ VMX_CODEC_FORMAT_EXTENDED
Definition vmxcodec.h:94
@ VMX_CODEC_FORMAT_NONE
Definition vmxcodec.h:91
@ VMX_CODEC_FORMAT_INTERLACED
Definition vmxcodec.h:93
@ VMX_CODEC_FORMAT_PROGRESSIVE
Definition vmxcodec.h:92
VMX_API VMX_ERR VMX_DecodeP216(VMX_INSTANCE *instance, BYTE *dst, int stride)
VMX_API VMX_ERR VMX_DecodePreviewBGRX(VMX_INSTANCE *instance, BYTE *dst, int stride)
VMX_API VMX_ERR VMX_DecodeBGRA(VMX_INSTANCE *instance, BYTE *dst, int stride)
VMX_API VMX_ERR VMX_EncodeNV12(VMX_INSTANCE *instance, BYTE *srcY, int srcStrideY, BYTE *srcUV, int srcStrideUV, int interlaced)
unsigned long long buffer_t
Definition vmxcodec.h:47
VMX_API VMX_ERR VMX_EncodeYUY2(VMX_INSTANCE *instance, BYTE *src, int stride, int interlaced)
VMX_ERR
Definition vmxcodec.h:60
@ VMX_ERR_INVALID_PARAMETERS
Definition vmxcodec.h:67
@ VMX_ERR_INVALID_CODEC_FORMAT
Definition vmxcodec.h:63
@ VMX_ERR_INVALID_INSTANCE
Definition vmxcodec.h:66
@ VMX_ERR_OK
Definition vmxcodec.h:61
@ VMX_ERR_BUFFER_OVERFLOW
Definition vmxcodec.h:65
@ VMX_ERR_UNKNOWN
Definition vmxcodec.h:62
@ VMX_ERR_INVALID_SLICE_COUNT
Definition vmxcodec.h:64
VMX_API VMX_ERR VMX_DecodeYUY2(VMX_INSTANCE *instance, BYTE *dst, int stride)
const int VMX_QUALITY_COUNT
Definition vmxcodec.h:44
VMX_API void VMX_GetEncodingParameters(VMX_INSTANCE *instance, int *frameMin, int *frameMax, int *minQuality, int *dcShift)
VMX_API VMX_INSTANCE * VMX_Create(VMX_SIZE dimensions, VMX_PROFILE profile, VMX_COLORSPACE colorSpace)
VMX_IMAGE_FORMAT
Definition vmxcodec.h:97
@ VMX_IMAGE_BGRA
Definition vmxcodec.h:103
@ VMX_IMAGE_YUY2
Definition vmxcodec.h:99
@ VMX_IMAGE_YUVPLANAR422
Definition vmxcodec.h:102
@ VMX_IMAGE_UYVY
Definition vmxcodec.h:98
@ VMX_IMAGE_P216
Definition vmxcodec.h:106
@ VMX_IMAGE_NV12
Definition vmxcodec.h:100
@ VMX_IMAGE_PA16
Definition vmxcodec.h:107
@ VMX_IMAGE_UYVA
Definition vmxcodec.h:105
@ VMX_IMAGE_YV12
Definition vmxcodec.h:101
@ VMX_IMAGE_BGRX
Definition vmxcodec.h:104
VMX_API int VMX_GetEncodedPreviewLength(VMX_INSTANCE *instance)
VMX_PROFILE
Definition vmxcodec.h:70
@ VMX_PROFILE_OMT_SQ
Definition vmxcodec.h:76
@ VMX_PROFILE_SQ
Definition vmxcodec.h:73
@ VMX_PROFILE_OMT_HQ
Definition vmxcodec.h:77
@ VMX_PROFILE_LQ
Definition vmxcodec.h:72
@ VMX_PROFILE_DEFAULT
Definition vmxcodec.h:71
@ VMX_PROFILE_HQ
Definition vmxcodec.h:74
@ VMX_PROFILE_OMT_LQ
Definition vmxcodec.h:75
VMX_API VMX_ERR VMX_DecodePreviewUYVY(VMX_INSTANCE *instance, BYTE *dst, int stride)
VMX_API void VMX_SetQuality(VMX_INSTANCE *instance, int q)
VMX_API VMX_ERR VMX_EncodeP216(VMX_INSTANCE *instance, BYTE *src, int stride, int interlaced)
VMX_API VMX_ERR VMX_EncodeUYVY(VMX_INSTANCE *instance, BYTE *src, int stride, int interlaced)
VMX_API VMX_ERR VMX_DecodeBGRX(VMX_INSTANCE *instance, BYTE *dst, int stride)
void VMX_ResetStream(VMX_INSTANCE *instance)
VMX_API int VMX_GetQuality(VMX_INSTANCE *instance)
VMX_API VMX_ERR VMX_DecodePreviewUYVA(VMX_INSTANCE *instance, BYTE *dst, int stride)
VMX_API VMX_ERR VMX_EncodePlanar(VMX_INSTANCE *instance, int interlaced)
VMX_API int VMX_Test(VMX_INSTANCE *instance, short *src, short *dst)