|
- #include "rtp-ext.h"
- #include <inttypes.h>
- #include <stdint.h>
- #include <stdlib.h>
- #include <string.h>
- #include <assert.h>
- #include <stdio.h>
-
- // https://datatracker.ietf.org/doc/html/rfc5450
- /*
- 0 1 2 3
- 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- | ID | len=2 | transmission offset |
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- */
- int rtp_ext_toffset_parse(const uint8_t* data, int bytes, uint32_t* timestamp)
- {
- if (bytes < 3)
- return -1;
-
- *timestamp = ((uint32_t)data[0] << 16) | ((uint32_t)data[1] << 8) | data[2];
- return 0;
- }
-
- int rtp_ext_toffset_write(uint8_t* data, int bytes, uint32_t timestamp)
- {
- if (bytes < 3)
- return -1;
-
- data[0] = (uint8_t)(timestamp >> 16);
- data[1] = (uint8_t)(timestamp >> 8);
- data[2] = (uint8_t)(timestamp >> 0);
- return 3;
- }
|