Browse Source

MT#63317 annotate rtp_payload

Change-Id: Ib8ba5e2002c75ec711c2f8e04b4e98b9a5fc8e0a
pull/2008/head
Richard Fuchs 5 months ago
parent
commit
3540a8334f
6 changed files with 12 additions and 14 deletions
  1. +1
    -1
      daemon/jitter_buffer.c
  2. +1
    -1
      daemon/media_socket.c
  3. +3
    -3
      daemon/rtp.c
  4. +4
    -7
      lib/rtplib.c
  5. +2
    -1
      lib/rtplib.h
  6. +1
    -1
      recording-daemon/packet.c

+ 1
- 1
daemon/jitter_buffer.c View File

@ -93,7 +93,7 @@ static int get_clock_rate(struct media_packet *mp, int payload_type) {
}
static struct jb_packet* get_jb_packet(struct media_packet *mp, const str *s) {
if (rtp_payload(&mp->rtp, &mp->payload, s))
if (!(mp->rtp = rtp_payload(&mp->payload, s)))
return NULL;
char *buf = bufferpool_alloc(media_bufferpool, s->len + RTP_BUFFER_HEAD_ROOM + RTP_BUFFER_TAIL_ROOM);


+ 1
- 1
daemon/media_socket.c View File

@ -2320,7 +2320,7 @@ static void media_packet_rtp_in(struct packet_handler_ctx *phc)
const char *unkern = NULL;
if (G_LIKELY(!phc->rtcp && !rtp_payload(&phc->mp.rtp, &phc->mp.payload, &phc->s))) {
if (G_LIKELY(!phc->rtcp && (phc->mp.rtp = rtp_payload(&phc->mp.payload, &phc->s)))) {
unkern = __stream_ssrc_in(phc->in_srtp, phc->mp.rtp->ssrc, &phc->mp.ssrc_in,
&phc->mp.media->ssrc_hash_in);


+ 3
- 3
daemon/rtp.c View File

@ -109,7 +109,7 @@ int rtp_avp2savp(str *s, struct crypto_context *c, struct ssrc_entry_call *ssrc_
if (G_UNLIKELY(!ssrc_ctx))
return -1;
if (rtp_payload(&rtp, &payload, s))
if (!(rtp = rtp_payload(&payload, s)))
return -1;
if (check_session_keys(c))
return -1;
@ -149,7 +149,7 @@ int rtp_update_index(str *s, struct packet_stream *ps, struct ssrc_entry_call *s
if (G_UNLIKELY(!ssrc))
return -1;
if (rtp_payload(&rtp, NULL, s))
if (!(rtp = rtp_payload(NULL, s)))
return -1;
g_autoptr(crypto_debug_string) cds = NULL;
packet_index(ssrc, rtp, &cds);
@ -165,7 +165,7 @@ int rtp_savp2avp(str *s, struct crypto_context *c, struct ssrc_entry_call *ssrc_
if (G_UNLIKELY(!ssrc_ctx))
return -1;
if (rtp_payload(&rtp, &payload, s))
if (!(rtp = rtp_payload(&payload, s)))
return -1;
if (check_session_keys(c))
return -1;


+ 4
- 7
lib/rtplib.c View File

@ -59,7 +59,7 @@ const int num_rfc_rtp_payload_types = G_N_ELEMENTS(rfc_rtp_payload_types);
int rtp_payload(struct rtp_header **out, str *p, const str *s) {
struct rtp_header *rtp_payload(str *p, const str *s) {
struct rtp_header *rtp;
struct rtp_extension *ext;
const char *err;
@ -74,7 +74,7 @@ int rtp_payload(struct rtp_header **out, str *p, const str *s) {
goto error;
if (!p)
goto done;
return rtp;
*p = *s;
/* fixed header */
@ -95,14 +95,11 @@ int rtp_payload(struct rtp_header **out, str *p, const str *s) {
goto error;
}
done:
*out = rtp;
return 0;
return rtp;
error:
ilog(LOG_DEBUG | LOG_FLAG_LIMIT, "Error parsing RTP header: %s", err);
return -1;
return NULL;
}


+ 2
- 1
lib/rtplib.h View File

@ -127,7 +127,8 @@ extern const struct rtp_payload_type rfc_rtp_payload_types[];
extern const int num_rfc_rtp_payload_types;
int rtp_payload(struct rtp_header **out, str *p, const str *s);
__attribute__((nonnull(2)))
struct rtp_header *rtp_payload(str *p, const str *s);
int rtp_padding(const struct rtp_header *header, str *payload);
const struct rtp_payload_type *rtp_get_rfc_payload_type(unsigned int type);
const struct rtp_payload_type *rtp_get_rfc_codec(const str *codec);


+ 1
- 1
recording-daemon/packet.c View File

@ -184,7 +184,7 @@ void packet_process(stream_t *stream, unsigned char *buf, unsigned len) {
if (rtcp_demux_is_rtcp(&bufstr))
goto ignore; // for now
if (rtp_payload(&packet->rtp, &packet->payload, &bufstr))
if (!(packet->rtp = rtp_payload(&packet->payload, &bufstr)))
goto err;
if (rtp_padding(packet->rtp, &packet->payload))
goto err;


Loading…
Cancel
Save