Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

51 рядки
1.6KB

  1. #ifndef _aio_rtmp_transport_h_
  2. #define _aio_rtmp_transport_h_
  3. #include "aio-transport.h"
  4. #include <stdint.h>
  5. #include <stddef.h>
  6. #ifdef __cplusplus
  7. extern "C" {
  8. #endif
  9. typedef struct aio_rtmp_transport_t aio_rtmp_transport_t;
  10. struct aio_rtmp_handler_t
  11. {
  12. /// aio_rtmp_transport_t object destroy
  13. /// @param[in] param aio_rtmp_transport_create param
  14. void (*ondestroy)(void* param);
  15. /// @param[in] param aio_rtmp_transport_create param
  16. /// @param[in] data rtmp data
  17. /// @param[in] bytes >= 0
  18. void (*onrecv)(void* param, int code, const void* data, size_t bytes);
  19. /// @param[in] param aio_rtmp_transport_create param
  20. /// @param[in] bytes remain unsent bytes, 0-all sent
  21. void (*onsend)(void* param, int code, size_t bytes);
  22. };
  23. /// @param[in] socket CONNECTED aio socket handle
  24. /// @param[in] handler tcp data send/recv handler
  25. /// @param[in] param user-defined parameter
  26. /// @return NULL-failed, other-transport
  27. aio_rtmp_transport_t* aio_rtmp_transport_create(aio_socket_t socket, struct aio_rtmp_handler_t* handler, void* param);
  28. int aio_rtmp_transport_destroy(aio_rtmp_transport_t* transport);
  29. /// start/stop rtmp recv/send (CALL one-time only)
  30. int aio_rtmp_transport_start(aio_rtmp_transport_t* transport);
  31. int aio_rtmp_transport_send(aio_rtmp_transport_t* transport, const void* header, size_t len, const void* payload, size_t bytes);
  32. size_t aio_rtmp_transport_get_unsend(aio_rtmp_transport_t* transport);
  33. /// set recv/send timeout in ms(default 2min, 0-infinite)
  34. void aio_rtmp_transport_set_timeout(aio_rtmp_transport_t* transport, int recv, int send);
  35. #ifdef __cplusplus
  36. }
  37. #endif
  38. #endif /* !_aio_rtmp_transport_h_ */