EasyStreamClientAPI.h 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. /*
  2. Copyright (c) 2013-2015 EasyDarwin.ORG. All rights reserved.
  3. Github: https://github.com/EasyDarwin
  4. WEChat: EasyDarwin
  5. Website: http://www.easydarwin.org
  6. */
  7. #ifndef _EASY_STREAM_CLIENT_API_H
  8. #define _EASY_STREAM_CLIENT_API_H
  9. #include "EasyTypes.h"
  10. /* 推送事件类型定义 */
  11. typedef enum __EASY_STREAM_CLIENT_STATE_T
  12. {
  13. EASY_STREAM_CLIENT_STATE_CONNECTING = 1, /* 连接中 */
  14. EASY_STREAM_CLIENT_STATE_CONNECTED, /* 连接成功 */
  15. EASY_STREAM_CLIENT_STATE_CONNECT_FAILED, /* 连接失败 */
  16. EASY_STREAM_CLIENT_STATE_CONNECT_ABORT, /* 连接中断 */
  17. EASY_STREAM_CLIENT_STATE_PUSHING, /* 推流中 */
  18. EASY_STREAM_CLIENT_STATE_DISCONNECTED, /* 断开连接 */
  19. EASY_STREAM_CLIENT_STATE_EXIT, /* 退出连接 */
  20. EASY_STREAM_CLIENT_STATE_ERROR
  21. } EASY_STREAM_CLIENT_STATE_T;
  22. /*
  23. _channelPtr: 通道对应对象,暂时不用
  24. _frameType: EASY_SDK_VIDEO_FRAME_FLAG/EASY_SDK_AUDIO_FRAME_FLAG/EASY_SDK_EVENT_FRAME_FLAG/...
  25. _pBuf: 回调的数据部分,具体用法看Demo
  26. _frameInfo: 帧结构数据
  27. */
  28. typedef int (Easy_APICALL *EasyStreamClientCallBack)(void *_channelPtr, int _frameType, void *pBuf, EASY_FRAME_INFO* _frameInfo);
  29. typedef int (Easy_APICALL *EasyDownloadCallBack)(void *userptr, const char* path);
  30. #ifdef __cplusplus
  31. extern "C"
  32. {
  33. #endif
  34. /* 创建EasyStreamClient句柄 返回0表示成功,返回非0表示失败 ; loglevel : 0 - quiet 1 - debug*/
  35. Easy_API int Easy_APICALL EasyStreamClient_Init(Easy_Handle *handle, int loglevel);
  36. /* 释放EasyStreamClient 参数为EasyStreamClient句柄 */
  37. Easy_API int Easy_APICALL EasyStreamClient_Deinit(Easy_Handle handle);
  38. /* 设置背景音 flag: 1 开启 0:关闭 url:背景音路径包含文件名 ret: 0:成功 < 0:配置失败 1:不支持背景音功能*/
  39. Easy_API int Easy_APICALL EasyStreamClient_SetBackAudio(Easy_Handle handle, int flag, char* url);
  40. /* 设置数据回调 */
  41. Easy_API int Easy_APICALL EasyStreamClient_SetCallback(Easy_Handle handle, EasyStreamClientCallBack callback);
  42. /* 设置叠加图片 */
  43. Easy_API int Easy_APICALL EasyStreamClient_SetOverlayImage(Easy_Handle handle, int left, int top, int scaleWidth, int scaleHeight, const char* imageFilePath);
  44. /* 打开网络流 */
  45. Easy_API int Easy_APICALL EasyStreamClient_OpenStream(Easy_Handle handle, char *url, EASY_RTP_CONNECT_TYPE connType, void *userPtr, int reconn, int timeout, int useExtraData);
  46. /* 获取输入流的context */
  47. Easy_API int Easy_APICALL EasyStreamClient_GetStreamContext(Easy_Handle handle, void** avFormatContext, void** avCodecContext);
  48. /* 获取快照 */
  49. Easy_API int Easy_APICALL EasyStreamClient_GetSnap(Easy_Handle handle);
  50. Easy_API int Easy_APICALL EasyStreamClient_ConvertFrame2Image(const unsigned int videoCodec, const unsigned char* keyFrameData, int keyFrameDataSize, unsigned char** outImage, int* outImageSize);
  51. Easy_API int Easy_APICALL EasyStreamClient_ReleaseImageData(unsigned char** imageData);
  52. /* 设置音频是否启用 */
  53. Easy_API int Easy_APICALL EasyStreamClient_SetAudioEnable(Easy_Handle handle, int enable);
  54. Easy_API int Easy_APICALL EasyStreamClient_SetAudioOutFormat(Easy_Handle handle, unsigned int audioFormat, int samplerate, int channels);
  55. /* 获取音频是否启用 */
  56. Easy_API int Easy_APICALL EasyStreamClient_GetAudioEnable(Easy_Handle handle);
  57. /*录像下载*/
  58. Easy_API int Easy_APICALL EasyStreamClient_SetDownloadCallback(EasyDownloadCallBack callback);
  59. Easy_API int Easy_APICALL EasyStreamClient_DownloadOneRecord(const char* rootPath, const char* streamName, const char* startTime, void* userPtr);
  60. Easy_API int Easy_APICALL EasyStreamClient_DownloadPeriod(const char* rootPath, const char* streamName, const char* startTime, const char* endTime, void* userPtr);
  61. #ifdef __cplusplus
  62. };
  63. #endif
  64. #endif