void iptv_rtsp_init ( void );
void iptv_pipe_init ( void );
-ssize_t iptv_rtp_read ( iptv_mux_t *im, udp_multirecv_t *um );
+ssize_t iptv_rtp_read ( iptv_mux_t *im, udp_multirecv_t *um,
+ void (*pkt_cb)(iptv_mux_t *im, uint8_t *buf, int len) );
#endif /* __IPTV_PRIVATE_H__ */
r = recv(im->mm_iptv_fd2, buf, sizeof(buf), MSG_DONTWAIT);
} while (r > 0);
- r = iptv_rtp_read(im, um);
+ r = iptv_rtp_read(im, um, NULL);
if (r < 0 && ERRNO_AGAIN(errno))
r = 0;
return r;
}
ssize_t
-iptv_rtp_read ( iptv_mux_t *im, udp_multirecv_t *um )
+iptv_rtp_read ( iptv_mux_t *im, udp_multirecv_t *um,
+ void (*pkt_cb)(iptv_mux_t *im, uint8_t *pkt, int len) )
{
ssize_t len, hlen;
uint8_t *rtp;
if (len < 12)
continue;
+ if (pkt_cb)
+ pkt_cb(im, rtp, len);
+
/* Version 2 */
if ((rtp[0] & 0xC0) != 0x80)
continue;
{
udp_multirecv_t *um = im->im_data;
- return iptv_rtp_read(im, um);
+ return iptv_rtp_read(im, um, NULL);
}
/*