dexter has uploaded this change for review. (
https://gerrit.osmocom.org/c/libosmocore/+/32740 )
Change subject: gsm630: make osmo_hr_check_sid compatible with RFC 5993
......................................................................
gsm630: make osmo_hr_check_sid compatible with RFC 5993
RFC 5993 specifies a one byte TOC at the beginning of the RTP payload,
while TS 101 318 does not have such a TOC byte. Since both formats are
used in the field, let's make sure that osmo_hr_check_sid will work with
both formats.
Related: OS#5688
Related: OS#5996
Change-Id: I25728299b757fbc87dd1b3f5adaec9b8b240c5d1
---
M src/codec/gsm620.c
1 file changed, 28 insertions(+), 4 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/40/32740/1
diff --git a/src/codec/gsm620.c b/src/codec/gsm620.c
index 4eae514..9b4083c 100644
--- a/src/codec/gsm620.c
+++ b/src/codec/gsm620.c
@@ -265,16 +265,24 @@
};
/*! Check whether RTP frame contains HR SID code word according to
- * TS 101 318 §5.2.2
+ * TS 101 318 §5.2.2 (payload may be supplied in TS 101 318 or RFC 5993 formt).
* \param[in] rtp_payload Buffer with RTP payload
* \param[in] payload_len Length of payload
* \returns true if code word is found, false otherwise
*/
bool osmo_hr_check_sid(const uint8_t *rtp_payload, size_t payload_len)
{
- struct bitvec bv = {
- .data = (uint8_t *)rtp_payload,
- .data_len = payload_len,
+ struct bitvec bv;
+ size_t offset = 0;
+
+ /* In case the payload is supplied in RFC 5993 format, we need to apply
+ * an offset to remove the one byte TOC at the beginning */
+ if (payload_len == GSM_HR_BYTES_RTP_RFC5993)
+ offset = 1;
+
+ bv = (struct bitvec) {
+ .data = (uint8_t *)rtp_payload + offset,
+ .data_len = payload_len - offset,
};
/* A SID frame is identified by a SID codeword consisting of 79 bits which are all 1,
--
To view, visit
https://gerrit.osmocom.org/c/libosmocore/+/32740
To unsubscribe, or for help writing mail filters, visit
https://gerrit.osmocom.org/settings
Gerrit-Project: libosmocore
Gerrit-Branch: master
Gerrit-Change-Id: I25728299b757fbc87dd1b3f5adaec9b8b240c5d1
Gerrit-Change-Number: 32740
Gerrit-PatchSet: 1
Gerrit-Owner: dexter <pmaier(a)sysmocom.de>
Gerrit-MessageType: newchange