You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

84 lines
2.1 KiB

  1. #include "XNetSDKTest.h"
  2. int CALLBACK Test_FaceImageCallBack(XSDK_HANDLE hMedia, const unsigned char *pData, int nDataLen, int nDataType, void *pDataInfo, int nDataInfoSize, void *pUserData)
  3. {
  4. if (EXSDK_DATA_FORMATE_FACE_IMAGE == nDataType && pDataInfo)
  5. {
  6. SXSDK_IA_FR_REC_S *pInfo = (SXSDK_IA_FR_REC_S *)pDataInfo;
  7. #if 1
  8. char szFileName[128] = {0};
  9. static int s_index = 0;
  10. sprintf(szFileName, "D:\\pic\\%d_%d_%d_A.jpg", pInfo->comm.framID, pInfo->comm.picSubType, s_index);
  11. ToFile(szFileName, pData, nDataLen);
  12. //sprintf(szFileName, "%d_%d_%d_B.jpg", pInfo->comm.framID, pInfo->comm.picSubType, s_index);
  13. //ToFile(szFileName, pData, nDataLen + 4);
  14. //sprintf(szFileName, "%d_%d_%d_C.jpg", pInfo->comm.framID, pInfo->comm.picSubType, s_index);
  15. //ToFile(szFileName, pData, nDataLen + 4 + nDataInfoSize);
  16. s_index++;
  17. #endif
  18. printf("FacePicture__B__%x_%d_%d[DataLen=%d]\r\n", hMedia, pInfo->comm.picSubType, pInfo->comm.framID, nDataLen);
  19. }
  20. else if (EXSDK_DATA_MEDIA_ON_PLAY_STATE == nDataType)
  21. {
  22. printf("EXSDK_DATA_MEDIA_ON_PLAY_STATE[%d][%d]\r\n", hMedia, nDataLen);
  23. }
  24. else if (ESXSDK_MEDIA_START_FACE_IMAGE == nDataType)
  25. {
  26. printf("ESXSDK_MEDIA_START_FACE_IMAGE[%d][%d]\r\n", hMedia, nDataLen);
  27. }
  28. else
  29. {
  30. printf("Media[hMedia:%ld][Len:%d][Type:%d]\r\n", hMedia, nDataLen, nDataType);
  31. }
  32. return 0;
  33. }
  34. int TestMediaFaceImage()
  35. {
  36. printf("%s\r\n", __FUNCTION__);
  37. XSDK_HANDLE hPlayer = 0;
  38. char c = 0;
  39. do
  40. {
  41. switch(c)
  42. {
  43. case 's':
  44. {
  45. if (hPlayer)
  46. {
  47. XSDK_MediaStop(hPlayer);
  48. hPlayer = 0;
  49. }
  50. SXMediaFaceImageReq param = {0};
  51. param.nChannel = 0;
  52. param.nImgTypeMsk = 2;
  53. strcpy(param.szIntelType, "Face");
  54. param.pMediaCallback = Test_FaceImageCallBack;
  55. param.pUserData = (void *)0x23456;
  56. hPlayer = XSDK_MediaGetFaceImage(g_hDevice, &param);
  57. }
  58. break;
  59. case 't':
  60. {
  61. if (hPlayer)
  62. {
  63. XSDK_MediaStop(hPlayer);
  64. hPlayer = 0;
  65. }
  66. }
  67. break;
  68. }
  69. }while((c = getchar()) != 'q');
  70. if (hPlayer)
  71. {
  72. XSDK_MediaStop(hPlayer);
  73. hPlayer = 0;
  74. }
  75. return 0;
  76. }