• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2022 HiSilicon (Shanghai) Technologies CO., LIMITED.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 #ifndef SAMPLE_COMM_H
16 #define SAMPLE_COMM_H
17 
18 #include <pthread.h>
19 
20 #include "hi_common.h"
21 #include "hi_buffer.h"
22 #include "hi_comm_sys.h"
23 #include "hi_comm_vb.h"
24 #include "hi_comm_isp.h"
25 #include "hi_comm_vi.h"
26 #include "hi_comm_vo.h"
27 #include "hi_comm_venc.h"
28 #include "hi_comm_vdec.h"
29 #include "hi_comm_vpss.h"
30 #include "hi_comm_region.h"
31 #include "hi_comm_adec.h"
32 #include "hi_comm_aenc.h"
33 #include "hi_comm_ai.h"
34 #include "hi_comm_ao.h"
35 #include "hi_comm_aio.h"
36 #include "hi_defines.h"
37 #include "hi_comm_hdmi.h"
38 #include "hi_mipi.h"
39 #include "hi_comm_vgs.h"
40 
41 #include "mpi_sys.h"
42 #include "mpi_vb.h"
43 #include "mpi_vi.h"
44 #include "mpi_vo.h"
45 #include "mpi_venc.h"
46 #include "mpi_vdec.h"
47 #include "mpi_vpss.h"
48 #include "mpi_region.h"
49 #include "mpi_audio.h"
50 #include "mpi_isp.h"
51 #include "mpi_ae.h"
52 #include "mpi_awb.h"
53 #include "hi_math.h"
54 #include "hi_sns_ctrl.h"
55 #include "mpi_hdmi.h"
56 #include "mpi_vgs.h"
57 
58 #ifdef __cplusplus
59 #if __cplusplus
60 extern "C" {
61 #endif
62 #endif /* End of #ifdef __cplusplus */
63 
64 #define FILE_NAME_LEN       128
65 #define SENSOR_5M_WIDTH     2592
66 #define SENSOR_5M_HEIGHT    1944
67 #define IMG_5M_WIDTH        2592
68 #define IMG_5M_HEIGHT       1944
69 #define IMG_4M_WIDTH        2592
70 #define IMG_4M_HEIGHT       1536
71 #define IMG_2M_WIDTH        1920
72 #define IMG_2M_HEIGHT       1080
73 #define IMG_1M_WIDTH        1280
74 #define IMG_1M_HEIGHT       720
75 #define FPS_20              20
76 #define FPS_25              25
77 #define FPS_30              30
78 #define FPS_50              50
79 #define FPS_60              60
80 #define FPS_90              90
81 #define FPS_120             120
82 #define FPS_240             240
83 
84 #define CHECK_CHN_RET(express, Chn, name)                                                                       \
85     do {                                                                                                        \
86         HI_S32 Ret;                                                                                             \
87         Ret = express;                                                                                          \
88         if (Ret != HI_SUCCESS) {                                                                                \
89             printf("\033[0;31m%s chn %d failed at %s: LINE: %d with %#x!\033[0;39m\n", name, Chn, __FUNCTION__, \
90                 __LINE__, Ret);                                                                                 \
91             fflush(stdout);                                                                                     \
92             return Ret;                                                                                         \
93         }                                                                                                       \
94     } while (0)
95 
96 #define CHECK_RET(express, name)                                                                                    \
97     do {                                                                                                            \
98         HI_S32 Ret;                                                                                                 \
99         Ret = express;                                                                                              \
100         if (Ret != HI_SUCCESS) {                                                                                    \
101             printf("\033[0;31m%s failed at %s: LINE: %d with %#x!\033[0;39m\n", name, __FUNCTION__, __LINE__, Ret); \
102             return Ret;                                                                                             \
103         }                                                                                                           \
104     } while (0)
105 
106 #define SAMPLE_PIXEL_FORMAT             PIXEL_FORMAT_YVU_SEMIPLANAR_420
107 
108 #define TLV320_FILE                     "/dev/tlv320aic31"
109 #define COLOR_RGB_RED                   0xFF0000
110 #define COLOR_RGB_GREEN                 0x00FF00
111 #define COLOR_RGB_BLUE                  0x0000FF
112 #define COLOR_RGB_BLACK                 0x000000
113 #define COLOR_RGB_YELLOW                0xFFFF00
114 #define COLOR_RGB_CYN                   0x00ffff
115 #define COLOR_RGB_WHITE                 0xffffff
116 
117 #define SAMPLE_VO_DEV_DHD0              0 /* VO's device HD0 */
118 #define SAMPLE_VO_DEV_DHD1              1 /* VO's device HD1 */
119 #define SAMPLE_VO_DEV_UHD               SAMPLE_VO_DEV_DHD0 /* VO's ultra HD device:HD0 */
120 #define SAMPLE_VO_DEV_HD                SAMPLE_VO_DEV_DHD1 /* VO's HD device:HD1 */
121 #define SAMPLE_VO_LAYER_VHD0            0
122 #define SAMPLE_VO_LAYER_VHD1            1
123 #define SAMPLE_VO_LAYER_VHD2            2
124 #define SAMPLE_VO_LAYER_PIP             SAMPLE_VO_LAYER_VHD2
125 
126 #define SAMPLE_AUDIO_EXTERN_AI_DEV      0
127 #define SAMPLE_AUDIO_EXTERN_AO_DEV      0
128 #define SAMPLE_AUDIO_INNER_AI_DEV       0
129 #define SAMPLE_AUDIO_INNER_AO_DEV       0
130 #define SAMPLE_AUDIO_INNER_HDMI_AO_DEV  1
131 #define SAMPLE_AUDIO_PTNUMPERFRM        480
132 #define WDR_MAX_PIPE_NUM                4
133 
134 #if (!defined(__HuaweiLite__)) || defined(__OHOS__)
135 #define VI_DATA_PATH "."
136 #else
137 #define VI_DATA_PATH "/sharefs"
138 #endif
139 
140 #define PAUSE()                                                             \
141     do {                                                                    \
142         printf("---------------press Enter key to exit!---------------\n"); \
143         getchar();                                                          \
144     } while (0)
145 
146 #define SAMPLE_PRT(fmt...)                           \
147     do {                                             \
148         printf("[%s]-%d: ", __FUNCTION__, __LINE__); \
149         printf(fmt);                                 \
150     } while (0)
151 
152 #define CHECK_NULL_PTR(ptr)                                                     \
153     do {                                                                        \
154         if ((ptr) == NULL) {                                                    \
155             printf("func:%s, line:%d, NULL pointer\n", __FUNCTION__, __LINE__); \
156             return HI_FAILURE;                                                  \
157         }                                                                       \
158     } while (0)
159 
160 typedef enum hiPIC_SIZE_E {
161     PIC_CIF,
162     PIC_360P,    /* 640 * 360 */
163     PIC_VGA,     /* 640 * 480 */
164     PIC_D1_PAL,  /* 720 * 576 */
165     PIC_D1_NTSC, /* 720 * 480 */
166     PIC_D1_MIPI, /* 800 * 480 */
167     PIC_720P,    /* 1280 * 720 */
168     PIC_1080P,   /* 1920 * 1080 */
169     PIC_480P,
170     PIC_576P,
171     PIC_800x600,
172     PIC_1024x768,
173     PIC_1280x1024,
174     PIC_1366x768,
175     PIC_1440x900,
176     PIC_1280x800,
177     PIC_1600x1200,
178     PIC_1680x1050,
179     PIC_1920x1200,
180     PIC_640x480,
181     PIC_1920x2160,
182     PIC_2560x1440,
183     PIC_2560x1600,
184     PIC_2592x1520,
185     PIC_2592x1536,
186     PIC_2592x1944,
187     PIC_2688x1536,
188     PIC_2716x1524,
189     PIC_2880x1620,
190     PIC_3840x2160,
191     PIC_4096x2160,
192     PIC_3000x3000,
193     PIC_4000x3000,
194     PIC_7680x4320,
195     PIC_3840x8640,
196     PIC_BUTT
197 } PIC_SIZE_E;
198 
199 typedef enum hiSAMPLE_SNS_TYPE_E {
200     SONY_IMX327_MIPI_2M_30FPS_12BIT,
201     SONY_IMX327_MIPI_2M_30FPS_12BIT_WDR2TO1,
202     SONY_IMX327_2L_MIPI_2M_30FPS_12BIT,
203     SONY_IMX327_2L_MIPI_2M_30FPS_12BIT_WDR2TO1,
204     SONY_IMX390_MIPI_2M_30FPS_12BIT,
205     SONY_IMX307_MIPI_2M_30FPS_12BIT,
206     SONY_IMX307_MIPI_2M_30FPS_12BIT_WDR2TO1,
207     SONY_IMX307_2L_MIPI_2M_30FPS_12BIT,
208     SONY_IMX307_2L_MIPI_2M_30FPS_12BIT_WDR2TO1,
209     SONY_IMX307_2L_SLAVE_MIPI_2M_30FPS_12BIT,
210     SONY_IMX307_2L_SLAVE_MIPI_2M_30FPS_12BIT_WDR2TO1,
211     SONY_IMX335_MIPI_5M_30FPS_12BIT,
212     SONY_IMX335_MIPI_5M_30FPS_10BIT_WDR2TO1,
213     SONY_IMX335_MIPI_4M_30FPS_12BIT,
214     SONY_IMX335_MIPI_4M_30FPS_10BIT_WDR2TO1,
215     SONY_IMX458_MIPI_8M_30FPS_10BIT,
216     SONY_IMX458_MIPI_12M_20FPS_10BIT,
217     SONY_IMX458_MIPI_4M_60FPS_10BIT,
218     SONY_IMX458_MIPI_4M_40FPS_10BIT,
219     SONY_IMX458_MIPI_2M_90FPS_10BIT,
220     SONY_IMX458_MIPI_1M_129FPS_10BIT,
221     SMART_SC4210_MIPI_3M_30FPS_12BIT,
222     SMART_SC4210_MIPI_3M_30FPS_10BIT_WDR2TO1,
223     SMART_SC500AI_MIPI_5M_30FPS_12BIT,
224     SMART_SC500AI_MIPI_5M_30FPS_10BIT_WDR2TO1,
225     OMNIVISION_OS04B10_MIPI_4M_30FPS_10BIT,
226     OMNIVISION_OS05A_MIPI_4M_30FPS_12BIT,
227     OMNIVISION_OS05A_MIPI_4M_30FPS_10BIT_WDR2TO1,
228     OMNIVISION_OS05A_2L_MIPI_1M_30FPS_10BIT,
229     OMNIVISION_OS05A_2L_MIPI_4M_30FPS_12BIT,
230     OMNIVISION_OS05A_2L_MIPI_4M_30FPS_10BIT_WDR2TO1,
231     OMNIVISION_OS08A10_MIPI_8M_30FPS_10BIT,
232     GALAXYCORE_GC2053_MIPI_2M_30FPS_10BIT,
233     OMNIVISION_OV12870_MIPI_1M_240FPS_10BIT,
234     OMNIVISION_OV12870_MIPI_2M_120FPS_10BIT,
235     OMNIVISION_OV12870_MIPI_8M_30FPS_10BIT,
236     OMNIVISION_OV12870_MIPI_12M_30FPS_10BIT,
237     OMNIVISION_OV9284_MIPI_1M_60FPS_10BIT,
238     SONY_IMX415_MIPI_8M_30FPS_12BIT,
239     SONY_IMX415_MIPI_8M_20FPS_12BIT_WDR2TO1,
240     SONY_IMX415_MIPI_8M_20FPS_12BIT,
241     SONY_IMX415_MIPI_2M_60FPS_12BIT,
242     OMNIVISION_OV2775_MIPI_2M_30FPS_12BIT,
243     OMNIVISION_OV2775_MIPI_2M_30FPS_12BIT_WDR2TO1,
244     OMNIVISION_OV2775_MIPI_2M_30FPS_12BIT_WDR2TO1_HLCG,
245     OMNIVISION_OV2775_MIPI_2M_30FPS_12BIT_BUILTIN,
246     OMNIVISION_OV2775_2L_MIPI_2M_30FPS_12BIT,
247     OMNIVISION_OV2775_2L_MIPI_2M_30FPS_12BIT_WDR2TO1,
248     PRIMESENSOR_PS5260_2L_MIPI_2M_30FPS_12BIT,
249     PRIMESENSOR_PS5260_2L_MIPI_2M_30FPS_12BIT_BUILTIN,
250     SAMPLE_SNS_TYPE_BUTT,
251 } SAMPLE_SNS_TYPE_E;
252 
253 typedef enum hiSAMPLE_VO_MODE_E {
254     VO_MODE_1MUX,
255     VO_MODE_2MUX,
256     VO_MODE_4MUX,
257     VO_MODE_8MUX,
258     VO_MODE_9MUX,
259     VO_MODE_16MUX,
260     VO_MODE_25MUX,
261     VO_MODE_36MUX,
262     VO_MODE_49MUX,
263     VO_MODE_64MUX,
264     VO_MODE_2X4,
265     VO_MODE_BUTT
266 } SAMPLE_VO_MODE_E;
267 
268 typedef enum hiSAMPLE_RC_E {
269     SAMPLE_RC_CBR = 0,
270     SAMPLE_RC_VBR,
271     SAMPLE_RC_AVBR,
272     SAMPLE_RC_QVBR,
273     SAMPLE_RC_CVBR,
274     SAMPLE_RC_QPMAP,
275     SAMPLE_RC_FIXQP
276 } SAMPLE_RC_E;
277 
278 typedef struct hiSAMPLE_VENC_GETSTREAM_PARA_S {
279     HI_BOOL bThreadStart;
280     VENC_CHN VeChn[VENC_MAX_CHN_NUM];
281     HI_S32 s32Cnt;
282 } SAMPLE_VENC_GETSTREAM_PARA_S;
283 
284 typedef struct hiSAMPLE_VENC_QPMAP_SENDFRAME_PARA_S {
285     HI_BOOL bThreadStart;
286     VPSS_GRP VpssGrp;
287     VPSS_CHN VpssChn;
288     VENC_CHN VeChn[VENC_MAX_CHN_NUM];
289     HI_S32 s32Cnt;
290     SIZE_S stSize;
291 } SAMPLE_VENC_QPMAP_SENDFRAME_PARA_S;
292 
293 typedef struct hiSAMPLE_VI_DUMP_THREAD_INFO_S {
294     VI_PIPE ViPipe;
295     HI_S32 s32Cnt;
296     HI_BOOL bDump;
297     HI_CHAR aszName[FILE_NAME_LEN];
298     pthread_t ThreadId;
299 } SAMPLE_VI_DUMP_THREAD_INFO_S;
300 
301 typedef struct hiSAMPLE_SENSOR_INFO_S {
302     SAMPLE_SNS_TYPE_E enSnsType;
303     HI_S32 s32SnsId;
304     HI_S32 s32BusId;
305     combo_dev_t MipiDev;
306 } SAMPLE_SENSOR_INFO_S;
307 
308 typedef struct hiSAMPLE_SNAP_INFO_S {
309     HI_BOOL bSnap;
310     HI_BOOL bDoublePipe;
311     VI_PIPE VideoPipe;
312     VI_PIPE SnapPipe;
313     VI_VPSS_MODE_E enVideoPipeMode;
314     VI_VPSS_MODE_E enSnapPipeMode;
315 } SAMPLE_SNAP_INFO_S;
316 
317 typedef struct hiSAMPLE_DEV_INFO_S {
318     VI_DEV ViDev;
319     WDR_MODE_E enWDRMode;
320 } SAMPLE_DEV_INFO_S;
321 
322 typedef struct hiSAMPLE_PIPE_INFO_S {
323     VI_PIPE aPipe[WDR_MAX_PIPE_NUM];
324     VI_VPSS_MODE_E enMastPipeMode;
325     HI_BOOL bMultiPipe;
326     HI_BOOL bVcNumCfged;
327     HI_BOOL bIspBypass;
328     PIXEL_FORMAT_E enPixFmt;
329     HI_U32 u32VCNum[WDR_MAX_PIPE_NUM];
330 } SAMPLE_PIPE_INFO_S;
331 
332 typedef struct hiSAMPLE_CHN_INFO_S {
333     VI_CHN ViChn;
334     PIXEL_FORMAT_E enPixFormat;
335     DYNAMIC_RANGE_E enDynamicRange;
336     VIDEO_FORMAT_E enVideoFormat;
337     COMPRESS_MODE_E enCompressMode;
338 } SAMPLE_CHN_INFO_S;
339 
340 typedef struct hiSAMPLE_VI_INFO_S {
341     SAMPLE_SENSOR_INFO_S stSnsInfo;
342     SAMPLE_DEV_INFO_S stDevInfo;
343     SAMPLE_PIPE_INFO_S stPipeInfo;
344     SAMPLE_CHN_INFO_S stChnInfo;
345     SAMPLE_SNAP_INFO_S stSnapInfo;
346 } SAMPLE_VI_INFO_S;
347 
348 typedef struct hiSAMPLE_VI_CONFIG_S {
349     SAMPLE_VI_INFO_S astViInfo[VI_MAX_DEV_NUM];
350     HI_S32 as32WorkingViId[VI_MAX_DEV_NUM];
351     HI_S32 s32WorkingViNum;
352 } SAMPLE_VI_CONFIG_S;
353 
354 typedef struct hiSAMPLE_VI_FRAME_CONFIG_S {
355     HI_U32 u32Width;
356     HI_U32 u32Height;
357     HI_U32 u32ByteAlign;
358     PIXEL_FORMAT_E enPixelFormat;
359     VIDEO_FORMAT_E enVideoFormat;
360     COMPRESS_MODE_E enCompressMode;
361     DYNAMIC_RANGE_E enDynamicRange;
362 } SAMPLE_VI_FRAME_CONFIG_S;
363 
364 typedef struct hiSAMPLE_VI_FRAME_INFO_S {
365     VB_BLK VbBlk;
366     HI_U32 u32Size;
367     VIDEO_FRAME_INFO_S stVideoFrameInfo;
368 } SAMPLE_VI_FRAME_INFO_S;
369 
370 typedef struct hiSAMPLE_VI_FPN_CALIBRATE_INFO_S {
371     HI_U32 u32Threshold;
372     HI_U32 u32FrameNum;
373     ISP_FPN_TYPE_E enFpnType;
374     PIXEL_FORMAT_E enPixelFormat;
375     COMPRESS_MODE_E enCompressMode;
376 } SAMPLE_VI_FPN_CALIBRATE_INFO_S;
377 
378 typedef struct hiSAMPLE_VI_FPN_CORRECTION_INFO_S {
379     ISP_OP_TYPE_E enOpType;
380     ISP_FPN_TYPE_E enFpnType;
381     HI_U32 u32Strength;
382     PIXEL_FORMAT_E enPixelFormat;
383     COMPRESS_MODE_E enCompressMode;
384     SAMPLE_VI_FRAME_INFO_S stViFrameInfo;
385 } SAMPLE_VI_FPN_CORRECTION_INFO_S;
386 
387 typedef struct tag_SAMPLE_VO_WBC_CONFIG {
388     VO_WBC_SOURCE_TYPE_E enSourceType;
389     DYNAMIC_RANGE_E enDynamicRange;
390     COMPRESS_MODE_E enCompressMode;
391     HI_S32 s32Depth;
392     HI_S32 VoWbc;
393     VO_WBC_ATTR_S stWbcAttr;
394     VO_WBC_SOURCE_S stWbcSource;
395     VO_WBC_MODE_E enWbcMode;
396 } SAMPLE_VO_WBC_CONFIG;
397 
398 typedef struct hiSAMPLE_COMM_VO_LAYER_CONFIG_S {
399     /* for layer */
400     VO_LAYER VoLayer;
401     VO_INTF_SYNC_E enIntfSync;
402     RECT_S stDispRect;
403     SIZE_S stImageSize;
404     PIXEL_FORMAT_E enPixFormat;
405 
406     HI_U32 u32DisBufLen;
407     DYNAMIC_RANGE_E enDstDynamicRange;
408 
409     /* for chn */
410     SAMPLE_VO_MODE_E enVoMode;
411 } SAMPLE_COMM_VO_LAYER_CONFIG_S;
412 
413 typedef struct hiSAMPLE_VO_CONFIG_S {
414     /* for device */
415     VO_DEV VoDev;
416     VO_INTF_TYPE_E enVoIntfType;
417     VO_INTF_SYNC_E enIntfSync;
418     PIC_SIZE_E enPicSize;
419     HI_U32 u32BgColor;
420 
421     /* for layer */
422     PIXEL_FORMAT_E enPixFormat;
423     RECT_S stDispRect;
424     SIZE_S stImageSize;
425     VO_PART_MODE_E enVoPartMode;
426 
427     HI_U32 u32DisBufLen;
428     DYNAMIC_RANGE_E enDstDynamicRange;
429 
430     /* for channel */
431     SAMPLE_VO_MODE_E enVoMode;
432 } SAMPLE_VO_CONFIG_S;
433 
434 typedef enum hiTHREAD_CONTRL_E {
435     THREAD_CTRL_START,
436     THREAD_CTRL_PAUSE,
437     THREAD_CTRL_STOP,
438 } THREAD_CONTRL_E;
439 
440 typedef struct hiVDEC_THREAD_PARAM_S {
441     HI_S32 s32ChnId;
442     PAYLOAD_TYPE_E enType;
443     HI_CHAR cFilePath[FILE_NAME_LEN];
444     HI_CHAR cFileName[FILE_NAME_LEN];
445     HI_S32 s32StreamMode;
446     HI_S32 s32MilliSec;
447     HI_S32 s32MinBufSize;
448     HI_S32 s32IntervalTime;
449     THREAD_CONTRL_E eThreadCtrl;
450     HI_U64 u64PtsInit;
451     HI_U64 u64PtsIncrease;
452     HI_BOOL bCircleSend;
453 } VDEC_THREAD_PARAM_S;
454 
455 typedef struct hiSAMPLE_VDEC_BUF {
456     HI_U32 u32PicBufSize;
457     HI_U32 u32TmvBufSize;
458     HI_BOOL bPicBufAlloc;
459     HI_BOOL bTmvBufAlloc;
460 } SAMPLE_VDEC_BUF;
461 
462 typedef struct hiSAMPLE_VDEC_VIDEO_ATTR {
463     VIDEO_DEC_MODE_E enDecMode;
464     HI_U32 u32RefFrameNum;
465     DATA_BITWIDTH_E enBitWidth;
466 } SAMPLE_VDEC_VIDEO_ATTR;
467 
468 typedef struct hiSAMPLE_VDEC_PICTURE_ATTR {
469     PIXEL_FORMAT_E enPixelFormat;
470     HI_U32 u32Alpha;
471 } SAMPLE_VDEC_PICTURE_ATTR;
472 
473 typedef struct hiSAMPLE_VDEC_ATTR {
474     PAYLOAD_TYPE_E enType;
475     VIDEO_MODE_E enMode;
476     HI_U32 u32Width;
477     HI_U32 u32Height;
478     HI_U32 u32FrameBufCnt;
479     HI_U32 u32DisplayFrameNum;
480     union {
481         SAMPLE_VDEC_VIDEO_ATTR stSapmleVdecVideo;     /* structure with video   (h265 / h264) */
482         SAMPLE_VDEC_PICTURE_ATTR stSapmleVdecPicture; /* structure with picture (jpeg / mjpeg) */
483     };
484 } SAMPLE_VDEC_ATTR;
485 
486 typedef struct hiSAMPLE_VB_BASE_INFO_S {
487     PIXEL_FORMAT_E enPixelFormat;
488     HI_U32 u32Width;
489     HI_U32 u32Height;
490     HI_U32 u32Align;
491     COMPRESS_MODE_E enCompressMode;
492 } SAMPLE_VB_BASE_INFO_S;
493 
494 typedef struct hiSAMPLE_VB_CAL_CONFIG_S {
495     HI_U32 u32VBSize;
496 
497     HI_U32 u32HeadStride;
498     HI_U32 u32HeadSize;
499     HI_U32 u32HeadYSize;
500 
501     HI_U32 u32MainStride;
502     HI_U32 u32MainSize;
503     HI_U32 u32MainYSize;
504 
505     HI_U32 u32ExtStride;
506     HI_U32 u32ExtYSize;
507 } SAMPLE_VB_CAL_CONFIG_S;
508 
509 HI_VOID SAMPLE_SYS_SIGNAL(void (*func)(int));
510 HI_VOID *SAMPLE_SYS_IOMmap(HI_U64 u64PhyAddr, HI_U32 u32Size);
511 HI_S32 SAMPLE_SYS_Munmap(HI_VOID *pVirAddr, HI_U32 u32Size);
512 HI_S32 SAMPLE_SYS_SetReg(HI_U64 u64Addr, HI_U32 u32Value);
513 HI_S32 SAMPLE_SYS_GetReg(HI_U64 u64Addr, HI_U32 *pu32Value);
514 
515 HI_S32 SAMPLE_COMM_SYS_GetPicSize(PIC_SIZE_E enPicSize, SIZE_S *pstSize);
516 HI_S32 SAMPLE_COMM_SYS_MemConfig(HI_VOID);
517 HI_VOID SAMPLE_COMM_SYS_Exit(void);
518 HI_S32 SAMPLE_COMM_SYS_Init(VB_CONFIG_S *pstVbConfig);
519 HI_S32 SAMPLE_COMM_SYS_InitWithVbSupplement(VB_CONFIG_S *pstVbConf, HI_U32 u32SupplementConfig);
520 
521 HI_S32 SAMPLE_COMM_VI_Bind_VO(VI_PIPE ViPipe, VI_CHN ViChn, VO_LAYER VoLayer, VO_CHN VoChn);
522 HI_S32 SAMPLE_COMM_VI_UnBind_VO(VI_PIPE ViPipe, VI_CHN ViChn, VO_LAYER VoLayer, VO_CHN VoChn);
523 HI_S32 SAMPLE_COMM_VI_Bind_VPSS(VI_PIPE ViPipe, VI_CHN ViChn, VPSS_GRP VpssGrp);
524 HI_S32 SAMPLE_COMM_VI_UnBind_VPSS(VI_PIPE ViPipe, VI_CHN ViChn, VPSS_GRP VpssGrp);
525 HI_S32 SAMPLE_COMM_VI_Bind_VENC(VI_PIPE ViPipe, VI_CHN ViChn, VENC_CHN VencChn);
526 HI_S32 SAMPLE_COMM_VI_UnBind_VENC(VI_PIPE ViPipe, VI_CHN ViChn, VENC_CHN VencChn);
527 HI_S32 SAMPLE_COMM_VPSS_Bind_AVS(VPSS_GRP VpssGrp, VPSS_CHN VpssChn, AVS_GRP AvsGrp, AVS_PIPE AvsPipe);
528 HI_S32 SAMPLE_COMM_VPSS_UnBind_AVS(VPSS_GRP VpssGrp, VPSS_CHN VpssChn, AVS_GRP AvsGrp, AVS_PIPE AvsPipe);
529 HI_S32 SAMPLE_COMM_VPSS_Bind_VO(VPSS_GRP VpssGrp, VPSS_CHN VpssChn, VO_LAYER VoLayer, VO_CHN VoChn);
530 HI_S32 SAMPLE_COMM_VPSS_UnBind_VO(VPSS_GRP VpssGrp, VPSS_CHN VpssChn, VO_LAYER VoLayer, VO_CHN VoChn);
531 HI_S32 SAMPLE_COMM_VPSS_Bind_VENC(VPSS_GRP VpssGrp, VPSS_CHN VpssChn, VENC_CHN VencChn);
532 HI_S32 SAMPLE_COMM_VPSS_UnBind_VENC(VPSS_GRP VpssGrp, VPSS_CHN VpssChn, VENC_CHN VencChn);
533 
534 HI_S32 SAMPLE_COMM_AVS_Bind_AVS(AVS_GRP AvsSrcGrp, AVS_CHN AvsSrcChn, AVS_GRP AvsDestGrp, AVS_CHN AvsDestChn);
535 HI_S32 SAMPLE_COMM_AVS_UnBind_AVS(AVS_GRP AvsSrcGrp, AVS_CHN AvsSrcChn, AVS_GRP AvsDestGrp, AVS_CHN AvsDestChn);
536 HI_S32 SAMPLE_COMM_AVS_Bind_VPSS(AVS_GRP AvsGrp, AVS_CHN AvsChn, VPSS_GRP VpssGrp);
537 HI_S32 SAMPLE_COMM_AVS_UnBind_VPSS(AVS_GRP AvsGrp, AVS_CHN AvsChn, VPSS_GRP VpssGrp);
538 HI_S32 SAMPLE_COMM_AVS_Bind_VENC(AVS_GRP AvsGrp, AVS_CHN AvsChn, VENC_CHN VencChn);
539 HI_S32 SAMPLE_COMM_AVS_UnBind_VENC(AVS_GRP AvsGrp, AVS_CHN AvsChn, VENC_CHN VencChn);
540 HI_S32 SAMPLE_COMM_AVS_Bind_VO(AVS_GRP AvsGrp, AVS_CHN AvsChn, VO_LAYER VoLayer, VO_CHN VoChn);
541 HI_S32 SAMPLE_COMM_AVS_UnBind_VO(AVS_GRP AvsGrp, AVS_CHN AvsChn, VO_LAYER VoLayer, VO_CHN VoChn);
542 HI_S32 SAMPLE_COMM_VDEC_Bind_VPSS(VDEC_CHN VdecChn, VPSS_GRP VpssGrp);
543 HI_S32 SAMPLE_COMM_VDEC_UnBind_VPSS(VDEC_CHN VdecChn, VPSS_GRP VpssGrp);
544 
545 HI_S32 SAMPLE_COMM_VO_Bind_VO(VO_LAYER SrcVoLayer, VO_CHN SrcVoChn, VO_LAYER DstVoLayer, VO_CHN DstVoChn);
546 HI_S32 SAMPLE_COMM_VO_UnBind_VO(VO_LAYER DstVoLayer, VO_CHN DstVoChn);
547 
548 HI_VOID SAMPLE_COMM_ISP_Stop(ISP_DEV IspDev);
549 HI_VOID SAMPLE_COMM_All_ISP_Stop(HI_VOID);
550 HI_S32 SAMPLE_COMM_ISP_Run(ISP_DEV IspDev);
551 HI_S32 SAMPLE_COMM_ISP_BindSns(ISP_DEV IspDev, HI_U32 u32SnsId, SAMPLE_SNS_TYPE_E enSnsType, HI_S8 s8SnsDev);
552 HI_S32 SAMPLE_COMM_ISP_Sensor_Regiter_callback(ISP_DEV IspDev, HI_U32 u32SnsId);
553 HI_S32 SAMPLE_COMM_ISP_Sensor_UnRegiter_callback(ISP_DEV IspDev);
554 HI_S32 SAMPLE_COMM_ISP_Aelib_Callback(ISP_DEV IspDev);
555 HI_S32 SAMPLE_COMM_ISP_Aelib_UnCallback(ISP_DEV IspDev);
556 HI_S32 SAMPLE_COMM_ISP_Awblib_Callback(ISP_DEV IspDev);
557 HI_S32 SAMPLE_COMM_ISP_Awblib_UnCallback(ISP_DEV IspDev);
558 HI_S32 SAMPLE_COMM_ISP_GetIspAttrBySns(SAMPLE_SNS_TYPE_E enSnsType, ISP_PUB_ATTR_S *pstPubAttr);
559 HI_VOID SAMPLE_COMM_VI_GetComboAttrBySns(SAMPLE_SNS_TYPE_E enSnsType, combo_dev_t MipiDev,
560     combo_dev_attr_t *pstComboAttr);
561 HI_VOID SAMPLE_COMM_VI_GetPipeAttrBySns(SAMPLE_SNS_TYPE_E enSnsType, VI_PIPE_ATTR_S *pstPipeAttr);
562 HI_VOID SAMPLE_COMM_VI_GetChnAttrBySns(SAMPLE_SNS_TYPE_E enSnsType, VI_CHN_ATTR_S *pstChnAttr);
563 
564 HI_S32 SAMPLE_COMM_VI_GetSizeBySensor(SAMPLE_SNS_TYPE_E enMode, PIC_SIZE_E *penSize);
565 HI_S32 SAMPLE_COMM_VI_GetFrameRateBySensor(SAMPLE_SNS_TYPE_E enMode, HI_U32 *pu32FrameRate);
566 HI_S32 SAMPLE_COMM_VI_StartDev(SAMPLE_VI_INFO_S *pstViInfo);
567 HI_S32 SAMPLE_COMM_VI_StopDev(SAMPLE_VI_INFO_S *pstViInfo);
568 HI_S32 SAMPLE_COMM_VI_StartChn(VI_CHN ViChn, RECT_S *pstCapRect, SIZE_S *pstTarSize, SAMPLE_VI_CONFIG_S *pstViConfig);
569 HI_S32 SAMPLE_COMM_VI_StartMIPI(SAMPLE_VI_CONFIG_S *pstViConfig);
570 HI_S32 SAMPLE_COMM_VI_StopMIPI(SAMPLE_VI_CONFIG_S *pstViConfig);
571 HI_S32 SAMPLE_COMM_VI_StartVi(SAMPLE_VI_CONFIG_S *pstViConfig);
572 HI_S32 SAMPLE_COMM_VI_StopVi(SAMPLE_VI_CONFIG_S *pstViConfig);
573 HI_S32 SAMPLE_COMM_VI_SetMipiAttr(SAMPLE_VI_CONFIG_S *pstViConfig);
574 HI_VOID SAMPLE_COMM_VI_GetDevAttrBySns(SAMPLE_SNS_TYPE_E enSnsType, VI_DEV_ATTR_S *pstViDevAttr);
575 HI_VOID SAMPLE_COMM_VI_GetSensorInfo(SAMPLE_VI_CONFIG_S *pstViConfig);
576 HI_S32 SAMPLE_COMM_VI_BindPipeDev(SAMPLE_VI_INFO_S *pstViInfo);
577 HI_S32 SAMPLE_COMM_VI_ModeSwitch_EnableViPipe(SAMPLE_VI_INFO_S *pstViInfo);
578 HI_VOID SAMPLE_COMM_VI_StopViPipe(SAMPLE_VI_INFO_S *pstViInfo);
579 HI_S32 SAMPLE_COMM_VI_CreateVi(SAMPLE_VI_CONFIG_S *pstViConfig);
580 HI_S32 SAMPLE_COMM_VI_DestroyVi(SAMPLE_VI_CONFIG_S *pstViConfig);
581 
582 HI_S32 SAMPLE_COMM_VI_CreateSingleVi(SAMPLE_VI_INFO_S *pstViInfo);
583 HI_VOID SAMPLE_COMM_VI_DestroySingleVi(SAMPLE_VI_INFO_S *pstViInfo);
584 HI_S32 SAMPLE_COMM_VI_StopIsp(SAMPLE_VI_INFO_S *pstViInfo);
585 HI_S32 SAMPLE_COMM_VI_StartIsp(SAMPLE_VI_INFO_S *pstViInfo);
586 
587 combo_dev_t SAMPLE_COMM_VI_GetComboDevBySensor(SAMPLE_SNS_TYPE_E enMode, HI_S32 s32SnsIdx);
588 HI_S32 SAMPLE_COMM_VI_SetParam(SAMPLE_VI_CONFIG_S *pstViConfig);
589 HI_S32 SAMPLE_COMM_VI_SwitchMode_StopVI(SAMPLE_VI_CONFIG_S *pstViConfigSrc);
590 HI_S32 SAMPLE_COMM_VI_SwitchMode(SAMPLE_VI_CONFIG_S *pstViConfigDes);
591 HI_S32 SAMPLE_COMM_ModeSwitch_VI_CreateSingleVi(SAMPLE_VI_INFO_S *pstViInfo);
592 HI_S32 SAMPLE_COMM_VI_SwitchISPMode(SAMPLE_VI_CONFIG_S *pstViConfig);
593 
594 HI_S32 SAMPLE_COMM_VI_FpnCalibrateConfig(VI_PIPE ViPipe, SAMPLE_VI_FPN_CALIBRATE_INFO_S *pstViFpnCalibrateInfo);
595 HI_S32 SAMPLE_COMM_VI_FpnCorrectionConfig(VI_PIPE ViPipe, SAMPLE_VI_FPN_CORRECTION_INFO_S *pstViFpnCorrectionInfo);
596 HI_S32 SAMPLE_COMM_VI_DisableFpnCorrection(VI_PIPE ViPipe, SAMPLE_VI_FPN_CORRECTION_INFO_S *pstViFpnCorrectionInfo);
597 
598 HI_S32 SAMPLE_COMM_VI_ResetMipi(SAMPLE_VI_CONFIG_S *pstViConfig);
599 HI_S32 SAMPLE_COMM_VI_UnresetMipi(SAMPLE_VI_CONFIG_S *pstViConfig);
600 HI_S32 SAMPLE_COMM_VI_EnableMipiClock(SAMPLE_VI_CONFIG_S *pstViConfig);
601 HI_S32 SAMPLE_COMM_VI_SetMipiHsMode(lane_divide_mode_t enHsMode);
602 HI_U32 SAMPLE_COMM_VI_GetMipiLaneDivideMode(SAMPLE_VI_CONFIG_S *pstViConfig);
603 
604 HI_S32 SAMPLE_COMM_VPSS_Start(VPSS_GRP VpssGrp, HI_BOOL *pabChnEnable, VPSS_GRP_ATTR_S *pstVpssGrpAttr,
605     VPSS_CHN_ATTR_S *pastVpssChnAttr);
606 HI_S32 SAMPLE_COMM_VPSS_Stop(VPSS_GRP VpssGrp, HI_BOOL *pabChnEnable);
607 
608 HI_S32 SAMPLE_COMM_VO_GetWH(VO_INTF_SYNC_E enIntfSync, HI_U32 *pu32W, HI_U32 *pu32H, HI_U32 *pu32Frm);
609 HI_S32 SAMPLE_COMM_VO_MemConfig(VO_DEV VoDev, HI_CHAR *pcMmzName);
610 HI_S32 SAMPLE_COMM_VO_StartDev(VO_DEV VoDev, VO_PUB_ATTR_S *pstPubAttr);
611 HI_S32 SAMPLE_COMM_VO_StopDev(VO_DEV VoDev);
612 HI_S32 SAMPLE_COMM_VO_StartLayer(VO_LAYER VoLayer, const VO_VIDEO_LAYER_ATTR_S *pstLayerAttr);
613 HI_S32 SAMPLE_COMM_VO_StopLayer(VO_LAYER VoLayer);
614 HI_S32 SAMPLE_COMM_VO_StartChn(VO_LAYER VoLayer, SAMPLE_VO_MODE_E enMode);
615 HI_S32 SAMPLE_COMM_VO_StopChn(VO_LAYER VoLayer, SAMPLE_VO_MODE_E enMode);
616 HI_S32 SAMPLE_COMM_VO_BindVpss(VO_LAYER VoLayer, VO_CHN VoChn, VPSS_GRP VpssGrp, VPSS_CHN VpssChn);
617 HI_S32 SAMPLE_COMM_VO_UnBindVpss(VO_LAYER VoLayer, VO_CHN VoChn, VPSS_GRP VpssGrp, VPSS_CHN VpssChn);
618 HI_S32 SAMPLE_COMM_VO_BindVi(VO_LAYER VoLayer, VO_CHN VoChn, VI_CHN ViChn);
619 HI_S32 SAMPLE_COMM_VO_UnBindVi(VO_LAYER VoLayer, VO_CHN VoChn);
620 HI_S32 SAMPLE_COMM_VO_HdmiStart(VO_INTF_SYNC_E enIntfSync);
621 HI_S32 SAMPLE_COMM_VO_HdmiStartByDyRg(VO_INTF_SYNC_E enIntfSync, DYNAMIC_RANGE_E enDyRg);
622 HI_S32 SAMPLE_COMM_VO_HdmiStop(HI_VOID);
623 HI_S32 SAMPLE_COMM_VO_GetDefConfig(SAMPLE_VO_CONFIG_S *pstVoConfig);
624 HI_S32 SAMPLE_COMM_VO_StopVO(SAMPLE_VO_CONFIG_S *pstVoConfig);
625 HI_S32 SAMPLE_COMM_VO_StartVO(SAMPLE_VO_CONFIG_S *pstVoConfig);
626 HI_S32 SAMPLE_COMM_VO_StartLayerChn(SAMPLE_COMM_VO_LAYER_CONFIG_S *pstVoLayerConfig);
627 HI_S32 SAMPLE_COMM_VO_StopLayerChn(SAMPLE_COMM_VO_LAYER_CONFIG_S *pstVoLayerConfig);
628 HI_VOID SAMPLE_COMM_VO_Exit(HI_VOID);
629 
630 HI_S32 SAMPLE_COMM_VENC_MemConfig(HI_VOID);
631 HI_S32 SAMPLE_COMM_VENC_Create(VENC_CHN VencChn, PAYLOAD_TYPE_E enType, PIC_SIZE_E enSize, SAMPLE_RC_E enRcMode,
632     HI_U32 u32Profile, HI_BOOL bRcnRefShareBuf, VENC_GOP_ATTR_S *pstGopAttr);
633 HI_S32 SAMPLE_COMM_VENC_Start(VENC_CHN VencChn, PAYLOAD_TYPE_E enType, PIC_SIZE_E enSize, SAMPLE_RC_E enRcMode,
634     HI_U32 u32Profile, HI_BOOL bRcnRefShareBuf, VENC_GOP_ATTR_S *pstGopAttr);
635 HI_S32 SAMPLE_COMM_VENC_Stop(VENC_CHN VencChn);
636 HI_S32 SAMPLE_COMM_VENC_SnapStart(VENC_CHN VencChn, SIZE_S *pstSize, HI_BOOL bSupportDCF);
637 HI_S32 SAMPLE_COMM_VENC_SnapProcess(VENC_CHN VencChn, HI_U32 SnapCnt, HI_BOOL bSaveJpg, HI_BOOL bSaveThm);
638 HI_S32 SAMPLE_COMM_VENC_SaveJpeg(VENC_CHN VencChn, HI_U32 SnapCnt);
639 HI_S32 SAMPLE_COMM_VENC_SnapStop(VENC_CHN VencChn);
640 HI_S32 SAMPLE_COMM_VENC_StartGetStream(VENC_CHN VeChn[], HI_S32 s32Cnt);
641 HI_S32 SAMPLE_COMM_VENC_StopGetStream(void);
642 HI_S32 SAMPLE_COMM_VENC_StartGetStream_Svc_t(HI_S32 s32Cnt);
643 HI_S32 SAMPLE_COMM_VENC_GetGopAttr(VENC_GOP_MODE_E enGopMode, VENC_GOP_ATTR_S *pstGopAttr);
644 HI_S32 SAMPLE_COMM_VENC_QpmapSendFrame(VPSS_GRP VpssGrp, VPSS_CHN VpssChn, VENC_CHN VeChn[], HI_S32 s32Cnt,
645     SIZE_S stSize);
646 HI_S32 SAMPLE_COMM_VENC_StopSendQpmapFrame(void);
647 HI_S32 SAMPLE_COMM_VENC_SaveStream(FILE *pFd, VENC_STREAM_S *pstStream);
648 
649 HI_S32 SAMPLE_COMM_REGION_Create(HI_S32 HandleNum, RGN_TYPE_E enType);
650 HI_S32 SAMPLE_COMM_REGION_Destroy(HI_S32 HandleNum, RGN_TYPE_E enType);
651 HI_S32 SAMPLE_COMM_REGION_AttachToChn(HI_S32 HandleNum, RGN_TYPE_E enType, MPP_CHN_S *pstMppChn);
652 HI_S32 SAMPLE_COMM_REGION_DetachFrmChn(HI_S32 HandleNum, RGN_TYPE_E enType, MPP_CHN_S *pstMppChn);
653 HI_S32 SAMPLE_COMM_REGION_SetBitMap(RGN_HANDLE Handle, PIXEL_FORMAT_E enPixelFmt);
654 HI_S32 SAMPLE_COMM_REGION_GetUpCanvas(RGN_HANDLE Handle);
655 HI_S32 SAMPLE_COMM_REGION_GetMinHandle(RGN_TYPE_E enType);
656 
657 HI_S32 SAMPLE_COMM_AUDIO_CreateTrdAiAo(AUDIO_DEV AiDev, AI_CHN AiChn, AUDIO_DEV AoDev, AO_CHN AoChn);
658 HI_S32 SAMPLE_COMM_AUDIO_CreateTrdAiAenc(AUDIO_DEV AiDev, AI_CHN AiChn, AENC_CHN AeChn);
659 HI_S32 SAMPLE_COMM_AUDIO_CreateTrdAencAdec(AENC_CHN AeChn, ADEC_CHN AdChn, FILE *pAecFd);
660 HI_S32 SAMPLE_COMM_AUDIO_CreateTrdFileAdec(ADEC_CHN AdChn, FILE *pAdcFd);
661 HI_S32 SAMPLE_COMM_AUDIO_CreateTrdAoVolCtrl(AUDIO_DEV AoDev);
662 HI_S32 SAMPLE_COMM_AUDIO_DestroyTrdAi(AUDIO_DEV AiDev, AI_CHN AiChn);
663 HI_S32 SAMPLE_COMM_AUDIO_DestroyTrdAencAdec(AENC_CHN AeChn);
664 HI_S32 SAMPLE_COMM_AUDIO_DestroyTrdFileAdec(ADEC_CHN AdChn);
665 HI_S32 SAMPLE_COMM_AUDIO_DestroyTrdAoVolCtrl(AUDIO_DEV AoDev);
666 HI_S32 SAMPLE_COMM_AUDIO_DestroyAllTrd(void);
667 HI_S32 SAMPLE_COMM_AUDIO_AoBindAdec(AUDIO_DEV AoDev, AO_CHN AoChn, ADEC_CHN AdChn);
668 HI_S32 SAMPLE_COMM_AUDIO_AoUnbindAdec(AUDIO_DEV AoDev, AO_CHN AoChn, ADEC_CHN AdChn);
669 HI_S32 SAMPLE_COMM_AUDIO_AoBindAi(AUDIO_DEV AiDev, AI_CHN AiChn, AUDIO_DEV AoDev, AO_CHN AoChn);
670 HI_S32 SAMPLE_COMM_AUDIO_AoUnbindAi(AUDIO_DEV AiDev, AI_CHN AiChn, AUDIO_DEV AoDev, AO_CHN AoChn);
671 HI_S32 SAMPLE_COMM_AUDIO_AencBindAi(AUDIO_DEV AiDev, AI_CHN AiChn, AENC_CHN AeChn);
672 HI_S32 SAMPLE_COMM_AUDIO_AencUnbindAi(AUDIO_DEV AiDev, AI_CHN AiChn, AENC_CHN AeChn);
673 HI_S32 SAMPLE_COMM_AUDIO_CfgAcodec(const AIO_ATTR_S *pstAioAttr);
674 HI_S32 SAMPLE_COMM_AUDIO_StartAi(AUDIO_DEV AiDevId, HI_S32 s32AiChnCnt, AIO_ATTR_S *pstAioAttr,
675     AUDIO_SAMPLE_RATE_E enOutSampleRate, HI_BOOL bResampleEn, const HI_VOID *pstAiVqeAttr, HI_U32 u32AiVqeType);
676 HI_S32 SAMPLE_COMM_AUDIO_StopAi(AUDIO_DEV AiDevId, HI_S32 s32AiChnCnt, HI_BOOL bResampleEn, HI_BOOL bVqeEn);
677 HI_S32 SAMPLE_COMM_AUDIO_StartAo(AUDIO_DEV AoDevId, HI_S32 s32AoChnCnt, AIO_ATTR_S *pstAioAttr,
678     AUDIO_SAMPLE_RATE_E enInSampleRate, HI_BOOL bResampleEn);
679 HI_S32 SAMPLE_COMM_AUDIO_StopAo(AUDIO_DEV AoDevId, HI_S32 s32AoChnCnt, HI_BOOL bResampleEn);
680 HI_S32 SAMPLE_COMM_AUDIO_StartAenc(HI_S32 s32AencChnCnt, const AIO_ATTR_S *pstAioAttr, PAYLOAD_TYPE_E enType);
681 HI_S32 SAMPLE_COMM_AUDIO_StopAenc(HI_S32 s32AencChnCnt);
682 HI_S32 SAMPLE_COMM_AUDIO_StartAdec(ADEC_CHN AdChn, PAYLOAD_TYPE_E enType);
683 HI_S32 SAMPLE_COMM_AUDIO_StopAdec(ADEC_CHN AdChn);
684 
685 HI_S32 SAMPLE_COMM_VDEC_InitVBPool(HI_U32 ChnNum, SAMPLE_VDEC_ATTR *pastSampleVdec, HI_U32 arr_num);
686 HI_VOID SAMPLE_COMM_VDEC_ExitVBPool(HI_VOID);
687 HI_VOID SAMPLE_COMM_VDEC_StartSendStream(HI_S32 s32ChnNum, VDEC_THREAD_PARAM_S *pstVdecSend, pthread_t *pVdecThread,
688     HI_U32 arr_len);
689 HI_VOID SAMPLE_COMM_VDEC_StopSendStream(HI_S32 s32ChnNum, VDEC_THREAD_PARAM_S *pstVdecSend, pthread_t *pVdecThread,
690     HI_U32 arr_len);
691 HI_VOID *SAMPLE_COMM_VDEC_SendStream(HI_VOID *pArgs);
692 HI_VOID SAMPLE_COMM_VDEC_StartGetPic(HI_S32 s32ChnNum, VDEC_THREAD_PARAM_S *pstVdecGet, pthread_t *pVdecThread);
693 HI_VOID SAMPLE_COMM_VDEC_StopGetPic(HI_S32 s32ChnNum, VDEC_THREAD_PARAM_S *pstVdecGet, pthread_t *pVdecThread);
694 HI_S32 SAMPLE_COMM_VDEC_Start(HI_S32 s32ChnNum, SAMPLE_VDEC_ATTR *pastSampleVdec, HI_U32 arr_num);
695 HI_S32 SAMPLE_COMM_VDEC_Stop(HI_S32 s32ChnNum);
696 
697 #ifdef __cplusplus
698 #if __cplusplus
699 }
700 #endif
701 #endif /* End of #ifdef __cplusplus */
702 #endif /* End of #ifndef SAMPLE_COMMON_H */
703