diff --git a/coreapi/bellesip_sal/sal_sdp.c b/coreapi/bellesip_sal/sal_sdp.c index f5a55cb52..95fdd9ab6 100644 --- a/coreapi/bellesip_sal/sal_sdp.c +++ b/coreapi/bellesip_sal/sal_sdp.c @@ -331,7 +331,7 @@ static void stream_description_to_sdp ( belle_sdp_session_description_t *session } } - if ((rtp_port != 0) && ((stream->proto == SalProtoRtpAvpf) || (stream->proto == SalProtoRtpSavpf))) { + if ((rtp_port != 0) && sal_stream_description_has_avpf(stream)) { add_rtcp_fb_attributes(media_desc, md, stream); } diff --git a/coreapi/sal.c b/coreapi/sal.c index 7698e80b1..2c858298a 100644 --- a/coreapi/sal.c +++ b/coreapi/sal.c @@ -203,16 +203,51 @@ bool_t sal_stream_description_active(const SalStreamDescription *sd) { return (sd->rtp_port > 0); } +/*these are switch case, so that when a new proto is added we can't forget to modify this function*/ bool_t sal_stream_description_has_avpf(const SalStreamDescription *sd) { - return ((sd->proto == SalProtoRtpAvpf) || (sd->proto == SalProtoRtpSavpf) || (sd->proto == SalProtoUdpTlsRtpSavpf)); + switch (sd->proto){ + case SalProtoRtpAvpf: + case SalProtoRtpSavpf: + case SalProtoUdpTlsRtpSavpf: + return TRUE; + case SalProtoRtpAvp: + case SalProtoRtpSavp: + case SalProtoUdpTlsRtpSavp: + case SalProtoOther: + return FALSE; + } + return FALSE; } +/*these are switch case, so that when a new proto is added we can't forget to modify this function*/ bool_t sal_stream_description_has_srtp(const SalStreamDescription *sd) { - return ((sd->proto == SalProtoRtpSavp) || (sd->proto == SalProtoRtpSavpf)); + switch (sd->proto){ + case SalProtoRtpSavp: + case SalProtoRtpSavpf: + return TRUE; + case SalProtoRtpAvp: + case SalProtoRtpAvpf: + case SalProtoUdpTlsRtpSavpf: + case SalProtoUdpTlsRtpSavp: + case SalProtoOther: + return FALSE; + } + return FALSE; } bool_t sal_stream_description_has_dtls(const SalStreamDescription *sd) { - return ((sd->proto == SalProtoUdpTlsRtpSavp) || (sd->proto == SalProtoUdpTlsRtpSavpf)); + switch (sd->proto){ + case SalProtoUdpTlsRtpSavpf: + case SalProtoUdpTlsRtpSavp: + return TRUE; + case SalProtoRtpSavp: + case SalProtoRtpSavpf: + case SalProtoRtpAvp: + case SalProtoRtpAvpf: + case SalProtoOther: + return FALSE; + } + return FALSE; } bool_t sal_media_description_has_avpf(const SalMediaDescription *md) {