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