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>