• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 */