a-zlm/3rdpart/media-server/librtp/include/rtp-queue.h

37 lines
793 B
C++

#ifndef _rtp_queue_h_
#define _rtp_queue_h_
#include "rtp-packet.h"
#if defined(__cplusplus)
extern "C" {
#endif
typedef struct rtp_queue_t rtp_queue_t;
rtp_queue_t* rtp_queue_create(int threshold, int frequency, void (*freepkt)(void*, struct rtp_packet_t*), void* param);
int rtp_queue_destroy(rtp_queue_t* queue);
/// @return 1-ok, 0-discard, <0-error
int rtp_queue_write(rtp_queue_t* queue, struct rtp_packet_t* pkt);
struct rtp_packet_t* rtp_queue_read(rtp_queue_t* queue);
struct rtp_queue_stats_t
{
int total;
int duplicate;
int reorder; // misorder
int late; // two late
int bad; // bad seq
int lost; // read discard by threshold
};
void rtp_queue_stats(rtp_queue_t* queue, struct rtp_queue_stats_t* stats);
#if defined(__cplusplus)
}
#endif
#endif /* !_rtp_queue_h_ */