res_rtp_asterisk: Fix placement of txcount increment

Commit 1bce690ccb was incrementing txcount
for rtcp packets as well as rtp packets and that was causing sender reports
to be generated instead of receiver reports in cases where no rtp was actually
being sent.

Moved the txcount increment from __rtp_sento, which handles both rtp and rtcp,
to rtp_sento which only handles rtp packets.

Discovered by the hep/rtcp-receiver test.

Change-Id: Ie442e4bb947a68847a676497021ba10ffaf376d5
This commit is contained in:
George Joseph
2016-03-30 08:46:32 -06:00
parent c7eb18d865
commit 8dc8d6ceb8

View File

@@ -2252,7 +2252,6 @@ static int __rtp_sendto(struct ast_rtp_instance *instance, void *buf, size_t siz
struct ast_rtp *rtp = ast_rtp_instance_get_data(instance); struct ast_rtp *rtp = ast_rtp_instance_get_data(instance);
struct ast_srtp *srtp = ast_rtp_instance_get_srtp(instance); struct ast_srtp *srtp = ast_rtp_instance_get_srtp(instance);
int res; int res;
int hdrlen = 12;
*ice = 0; *ice = 0;
@@ -2260,9 +2259,6 @@ static int __rtp_sendto(struct ast_rtp_instance *instance, void *buf, size_t siz
return -1; return -1;
} }
rtp->txcount++;
rtp->txoctetcount += (len - hdrlen);
#ifdef HAVE_PJPROJECT #ifdef HAVE_PJPROJECT
if (rtp->ice) { if (rtp->ice) {
pj_thread_register_check(); pj_thread_register_check();
@@ -2289,7 +2285,16 @@ static int rtcp_sendto(struct ast_rtp_instance *instance, void *buf, size_t size
static int rtp_sendto(struct ast_rtp_instance *instance, void *buf, size_t size, int flags, struct ast_sockaddr *sa, int *ice) static int rtp_sendto(struct ast_rtp_instance *instance, void *buf, size_t size, int flags, struct ast_sockaddr *sa, int *ice)
{ {
return __rtp_sendto(instance, buf, size, flags, sa, 0, ice, 1); struct ast_rtp *rtp = ast_rtp_instance_get_data(instance);
int hdrlen = 12;
int res;
if ((res = __rtp_sendto(instance, buf, size, flags, sa, 0, ice, 1)) > 0) {
rtp->txcount++;
rtp->txoctetcount += (res - hdrlen);
}
return res;
} }
static int rtp_get_rate(struct ast_format *format) static int rtp_get_rate(struct ast_format *format)