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/.
Pau Espin Pedrol gerrit-no-reply at lists.osmocom.orgHello Max, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/3070 to look at the new patch set (#2). osmo_ortp: Add osmo_rtp_drop_frame API This API will be used by osmo-bts to maintain the sampling clock of the RTP socket whenever a frame should be sent but it is not available, for instance due to low quality of signal. Change-Id: Id6099372b6231c0a4b6ea0716f46f5daee7049e1 --- M include/osmocom/trau/osmo_ortp.h M src/trau/osmo_ortp.c 2 files changed, 22 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-abis refs/changes/70/3070/2 diff --git a/include/osmocom/trau/osmo_ortp.h b/include/osmocom/trau/osmo_ortp.h index 9eb176f..fa6696c 100644 --- a/include/osmocom/trau/osmo_ortp.h +++ b/include/osmocom/trau/osmo_ortp.h @@ -76,6 +76,7 @@ int osmo_rtp_socket_connect(struct osmo_rtp_socket *rs, const char *ip, uint16_t port); int osmo_rtp_socket_set_pt(struct osmo_rtp_socket *rs, int payload_type); int osmo_rtp_socket_free(struct osmo_rtp_socket *rs); +int osmo_rtp_drop_frame(struct osmo_rtp_socket *rs, unsigned int duration); int osmo_rtp_send_frame(struct osmo_rtp_socket *rs, const uint8_t *payload, unsigned int payload_len, unsigned int duration); int osmo_rtp_send_frame_ext(struct osmo_rtp_socket *rs, const uint8_t *payload, diff --git a/src/trau/osmo_ortp.c b/src/trau/osmo_ortp.c index b2ee040..05817aa 100644 --- a/src/trau/osmo_ortp.c +++ b/src/trau/osmo_ortp.c @@ -436,6 +436,27 @@ return osmo_rtp_socket_fdreg(rs); } +/*! \brief Increment seq and timestamp on a RTP socket without sending any packet + * \param[in] rs OsmoRTP socket + * \param[in] duration duration in number of RTP clock ticks + * + * Useful if willing to update the RTP internal clock at a given time but no + * audio content is available. From receiver point of view, it will look like + * a packet was lost somewhere in the path. + * + * \returns 0 on success, <0 in case of error. + */ +int osmo_rtp_drop_frame(struct osmo_rtp_socket *rs, unsigned int duration) +{ + if (rs->flags & OSMO_RTP_F_DISABLED) + return 0; + + uint16_t next_seq = rtp_session_get_seq_number(rs->sess) + 1; + rtp_session_set_seq_number(rs->sess, next_seq); + rs->tx_timestamp += duration; + return 0; +} + /*! \brief Send one RTP frame via a RTP socket * \param[in] rs OsmoRTP socket * \param[in] payload pointer to buffer with RTP payload data -- To view, visit https://gerrit.osmocom.org/3070 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: newpatchset Gerrit-Change-Id: Id6099372b6231c0a4b6ea0716f46f5daee7049e1 Gerrit-PatchSet: 2 Gerrit-Project: libosmo-abis Gerrit-Branch: master Gerrit-Owner: Pau Espin Pedrol <pespin at sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: Max <msuraev at sysmocom.de> Gerrit-Reviewer: Pau Espin Pedrol <pespin at sysmocom.de>