int stream_send(struct stream *s, bool marker, int pt, uint32_t ts, struct mbuf *mb) { int err = 0; if (!s) return EINVAL; if (!sa_isset(sdp_media_raddr(s->sdp), SA_ALL)) return 0; if (sdp_media_dir(s->sdp) != SDP_SENDRECV) return 0; metric_add_packet(&s->metric_tx, mbuf_get_left(mb)); if (pt < 0) pt = s->pt_enc; if (pt >= 0) { err = rtp_send(s->rtp, sdp_media_raddr(s->sdp), marker, pt, ts, mb); if (err) s->metric_tx.n_err++; } rtpkeep_refresh(s->rtpkeep, ts); return err; }
int stream_send(struct stream *s, bool marker, int pt, uint32_t ts, struct mbuf *mb) { int err = 0; if (!s) return EINVAL; if (!sa_isset(sdp_media_raddr(s->sdp), SA_ALL)) return 0; if (sdp_media_dir(s->sdp) != SDP_SENDRECV) return 0; s->stats.b_tx += mbuf_get_left(mb); if (pt < 0) pt = s->pt_enc; if (pt >= 0) { err = rtp_send(s->rtp, sdp_media_raddr(s->sdp), marker, pt, ts, mb); } rtpkeep_refresh(s->rtpkeep, ts); ++s->stats.n_tx; return err; }