Browse Source

MT#63317 annotate rtcp_payload

Change-Id: I2a08441c0c7e262d3d7a43e8fabc0a5766de7c7f
pull/2008/head
Richard Fuchs 5 months ago
parent
commit
eddff91357
3 changed files with 10 additions and 10 deletions
  1. +1
    -1
      daemon/media_socket.c
  2. +7
    -8
      daemon/rtcp.c
  3. +2
    -1
      include/rtcp.h

+ 1
- 1
daemon/media_socket.c View File

@ -2350,7 +2350,7 @@ static void media_packet_rtp_in(struct packet_handler_ctx *phc)
g_atomic_pointer_set(&phc->mp.stream->rtp_stats_cache, rtp_s);
}
}
else if (phc->rtcp && !rtcp_payload(&phc->mp.rtcp, NULL, &phc->s)) {
else if (phc->rtcp && (phc->mp.rtcp = rtcp_payload(NULL, &phc->s))) {
unkern = __stream_ssrc_in(phc->in_srtp, phc->mp.rtcp->ssrc, &phc->mp.ssrc_in,
&phc->mp.media->ssrc_hash_in);
}


+ 7
- 8
daemon/rtcp.c View File

@ -797,7 +797,7 @@ error:
return -1;
}
int rtcp_payload(struct rtcp_packet **out, str *p, const str *s) {
struct rtcp_packet *rtcp_payload(str *p, const str *s) {
struct rtcp_packet *rtcp;
const char *err;
@ -829,17 +829,16 @@ int rtcp_payload(struct rtcp_packet **out, str *p, const str *s) {
ok:
if (!p)
goto done;
return rtcp;
*p = *s;
str_shift(p, sizeof(*rtcp));
done:
*out = rtcp;
return 0;
return rtcp;
error:
ilogs(rtcp, LOG_DEBUG | LOG_FLAG_LIMIT, "Error parsing RTCP header: %s", err);
return -1;
return NULL;
}
/* rfc 3711 section 3.4 */
@ -851,7 +850,7 @@ int rtcp_avp2savp(str *s, struct crypto_context *c, struct ssrc_entry_call *ssrc
if (G_UNLIKELY(!ssrc_ctx))
return -1;
if (rtcp_payload(&rtcp, &payload, s))
if (!(rtcp = rtcp_payload(&payload, s)))
return -1;
if (check_session_keys(c))
return -1;
@ -900,7 +899,7 @@ int rtcp_savp2avp(str *s, struct crypto_context *c, struct ssrc_entry_call *ssrc
if (G_UNLIKELY(!ssrc_ctx))
return -1;
if (rtcp_payload(&rtcp, &payload, s))
if (!(rtcp = rtcp_payload(&payload, s)))
return -1;
if (check_session_keys(c))
return -1;


+ 2
- 1
include/rtcp.h View File

@ -20,7 +20,8 @@ extern struct rtcp_handler *rtcp_sink_handler;
int rtcp_avp2savp(str *, struct crypto_context *, struct ssrc_entry_call *);
int rtcp_savp2avp(str *, struct crypto_context *, struct ssrc_entry_call *);
int rtcp_payload(struct rtcp_packet **out, str *p, const str *s);
__attribute__((nonnull(2)))
struct rtcp_packet *rtcp_payload(str *p, const str *s);
int rtcp_parse(GQueue *q, struct media_packet *);
void rtcp_list_free(GQueue *q);


Loading…
Cancel
Save