1 /* 2 * Copyright (c) Huawei Technologies Co., Ltd. 2025-2025. All rights reserved. 3 */ 4 5 #ifndef HISPEED_PLUGIN_H 6 #define HISPEED_PLUGIN_H 7 8 #ifdef USE_HISPEED_PLUGIN 9 10 #include <dlfcn.h> 11 #include <stdio.h> 12 #include <stdlib.h> 13 #include <string.h> 14 15 #include "src/dec/vp8i_dec.h" 16 17 #ifdef __cplusplus 18 extern "C" { 19 #endif 20 21 typedef int (*HSDPlugin_VP8ParseResiduals)(const VP8BandProbas *(*const)[16 + 1], VP8MBData *const, 22 const VP8QuantMatrix *const, int16_t *, VP8MB *const, VP8MB *const, VP8BitReader *const); 23 typedef int (*HSDPlugin_VP8ParseIntraModeRow)( 24 VP8BitReader *const, uint8_t *, uint8_t *const, VP8MBData *, VP8Proba *, const uint8_t, const int, const int, int); 25 typedef void (*HSDPlugin_VFilter16i)(uint8_t *, int, int, int, int); 26 typedef void (*HSDPlugin_HFilter16)(uint8_t *, int, int, int, int); 27 typedef void (*HSDPlugin_HFilter16i)(uint8_t *, int, int, int, int); 28 typedef void (*HSDPlugin_HFilter8)(uint8_t *, uint8_t *, int, int, int, int); 29 typedef void (*HSDPlugin_HFilter8i)(uint8_t *, uint8_t *, int, int, int, int); 30 typedef void (*HSDPlugin_UpsampleYuvToRgbaLinePair)(const uint8_t *, const uint8_t *, const uint8_t *, const uint8_t *, 31 const uint8_t *, const uint8_t *, uint8_t *, uint8_t *, int); 32 33 extern HSDPlugin_VP8ParseResiduals g_vp8ParseResidualsHandle; 34 extern HSDPlugin_VP8ParseIntraModeRow g_vp8ParseIntraModeRowHandle; 35 extern HSDPlugin_VFilter16i g_vFilter16iHandle; 36 extern HSDPlugin_HFilter16 g_hFilter16Handle; 37 extern HSDPlugin_HFilter16i g_hFilter16iHandle; 38 extern HSDPlugin_HFilter8 g_hFilter8Handle; 39 extern HSDPlugin_HFilter8i g_hFilter8iHandle; 40 extern HSDPlugin_UpsampleYuvToRgbaLinePair g_upsampleYuvToRgbaLinePairHandle; 41 42 void WebPLoadHispeedPlugin(); 43 void WebPUnloadHispeedPlugin(); 44 45 #ifdef __cplusplus 46 } 47 #endif 48 49 #endif 50 #endif /* HISPEED_PLUGIN_H */