This is merely a historical archive of years 2008-2021, before the migration to mailman3.
A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.
Max gerrit-no-reply at lists.osmocom.orgHello Harald Welte, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/948 to look at the new patch set (#2). Unify RTP receiving * Remove code duplication * Use return value of rtp_get_payload() instead of pointer arithmetic Change-Id: Id42e85b55eab33c5eb81ac7a2cdea7962b2e30ef --- M src/trau/osmo_ortp.c 1 file changed, 19 insertions(+), 31 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-abis refs/changes/48/948/2 diff --git a/src/trau/osmo_ortp.c b/src/trau/osmo_ortp.c index e990487..818aea7 100644 --- a/src/trau/osmo_ortp.c +++ b/src/trau/osmo_ortp.c @@ -143,6 +143,20 @@ rtp_session_resync(rs); } +static inline bool recv_with_cb(struct osmo_rtp_socket *rs) +{ + mblk_t *mblk = rtp_session_recvm_with_ts(rs->sess, rs->rx_user_ts); + if (!mblk) + return false; + + int plen = rtp_get_payload(mblk, &mblk->b_rptr); + /* hand into receiver */ + if (rs->rx_cb) + rs->rx_cb(rs, mblk->b_rptr, plen, rtp_get_seqnumber(mblk), + rtp_get_timestamp(mblk), rtp_get_markbit(mblk)); + freemsg(mblk); + return true; +} /*! \brief poll the socket for incoming data * \param[in] rs the socket to be polled @@ -150,28 +164,14 @@ */ int osmo_rtp_socket_poll(struct osmo_rtp_socket *rs) { - mblk_t *mblk; if (rs->flags & OSMO_RTP_F_DISABLED) return 0; - mblk = rtp_session_recvm_with_ts(rs->sess, rs->rx_user_ts); - if (mblk) { - rtp_get_payload(mblk, &mblk->b_rptr); - /* hand into receiver */ - if (rs->rx_cb) - rs->rx_cb(rs, mblk->b_rptr, - mblk->b_wptr - mblk->b_rptr, - rtp_get_seqnumber(mblk), - rtp_get_timestamp(mblk), - rtp_get_markbit(mblk)); - //rs->rx_user_ts += 160; - freemsg(mblk); + if (recv_with_cb(rs)) return 1; - } else { - LOGP(DLMIB, LOGL_INFO, "osmo_rtp_poll(%u): ERROR!\n", - rs->rx_user_ts); - return 0; - } + + LOGP(DLMIB, LOGL_INFO, "osmo_rtp_poll(%u): ERROR!\n", rs->rx_user_ts); + return 0; } /* Osmo FD callbacks */ @@ -179,7 +179,6 @@ static int osmo_rtp_fd_cb(struct osmo_fd *fd, unsigned int what) { struct osmo_rtp_socket *rs = fd->data; - mblk_t *mblk; if (what & BSC_FD_READ) { /* in polling mode, we don't want to be called here */ @@ -187,18 +186,7 @@ fd->when &= ~BSC_FD_READ; return 0; } - mblk = rtp_session_recvm_with_ts(rs->sess, rs->rx_user_ts); - if (mblk) { - rtp_get_payload(mblk, &mblk->b_rptr); - /* hand into receiver */ - if (rs->rx_cb) - rs->rx_cb(rs, mblk->b_rptr, - mblk->b_wptr - mblk->b_rptr, - rtp_get_seqnumber(mblk), - rtp_get_timestamp(mblk), - rtp_get_markbit(mblk)); - freemsg(mblk); - } else + if (!recv_with_cb(rs)) LOGP(DLMIB, LOGL_INFO, "recvm_with_ts(%u): ERROR!\n", rs->rx_user_ts); rs->rx_user_ts += 160; -- To view, visit https://gerrit.osmocom.org/948 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: newpatchset Gerrit-Change-Id: Id42e85b55eab33c5eb81ac7a2cdea7962b2e30ef Gerrit-PatchSet: 2 Gerrit-Project: libosmo-abis Gerrit-Branch: master Gerrit-Owner: Max <msuraev at sysmocom.de> Gerrit-Reviewer: Harald Welte <laforge at gnumonks.org> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Max <msuraev at sysmocom.de>