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.

44 lines
1.4KB

  1. #ifndef _rtp_member_h_
  2. #define _rtp_member_h_
  3. #include "rtcp-header.h"
  4. #define RTP_PROBATION 2
  5. #define RTP_DROPOUT 500
  6. #define RTP_MISORDER 100
  7. struct rtp_member
  8. {
  9. int32_t ref;
  10. uint32_t ssrc; // ssrc == rtcp_sr.ssrc == rtcp_rb.ssrc
  11. rtcp_sr_t rtcp_sr;
  12. //rtcp_rb_t rtcp_rb;
  13. rtcp_sdes_item_t sdes[9]; // SDES item
  14. uint64_t rtcp_clock; // last RTCP SR/RR packet clock(local time)
  15. uint16_t rtp_seq; // last send/received RTP packet RTP sequence(in packet header)
  16. uint32_t rtp_timestamp; // last send/received RTP packet RTP timestamp(in packet header)
  17. uint64_t rtp_clock; // last send/received RTP packet clock(local time)
  18. uint32_t rtp_packets; // send/received RTP packet count(include duplicate, late)
  19. uint64_t rtp_bytes; // send/received RTP octet count
  20. double jitter;
  21. uint32_t rtp_packets0; // last SR received RTP packets
  22. uint32_t rtp_expected0; // last SR expect RTP sequence number
  23. uint16_t rtp_probation;
  24. uint16_t rtp_seq_base; // init sequence number
  25. uint32_t rtp_seq_bad; // bad sequence number
  26. uint32_t rtp_seq_cycles; // high extension sequence number
  27. };
  28. struct rtp_member* rtp_member_create(uint32_t ssrc);
  29. void rtp_member_addref(struct rtp_member *member);
  30. void rtp_member_release(struct rtp_member *member);
  31. int rtp_member_setvalue(struct rtp_member *member, int item, const uint8_t* data, int bytes);
  32. #endif /* !_rtp_member_h_ */