A possible bug in RTCP XR module

ML
Maxim Loschilov
Mon, May 25, 2020 12:33 PM

Hello,

Part of RTCP XR report is about discard/lost packets.
As I see, we report discard/lost events to RTCP XR module only in
pjmedia_rtcp_rx_rtp2()
For example,

/* Report RTCP XR about packet losses /
for (i=seq_st.diff-1; i>0; --i) {
pjmedia_rtcp_xr_rx_rtp(&sess->xr_session, seq - i,
1,    /
lost    /
0,    /
dup    /
0,    /
discard /
-1,    /
jitter  /
-1, 0);    /
toh    */
}

But one more part of discard/lost statistics is collected inside jitter
buffer in "pjmedia_jbuf" structure by updating the following fields:

struct pjmedia_jbuf
{
...
unsigned    jb_lost; /< Number of lost frames.    */
unsigned    jb_discard; /
< Number of discarded frames.    */
}

But I cannot find in code how this data is taken into account by RTCP XR
module.
Am I missing something or it is a bug in RTCP XR module?

Thanks,
Maxim

Hello, Part of RTCP XR report is about discard/lost packets. As I see, we report discard/lost events to RTCP XR module only in pjmedia_rtcp_rx_rtp2() For example, /* Report RTCP XR about packet losses */ for (i=seq_st.diff-1; i>0; --i) { pjmedia_rtcp_xr_rx_rtp(&sess->xr_session, seq - i, 1, /* lost */ 0, /* dup */ 0, /* discard */ -1, /* jitter */ -1, 0); /* toh */ } But one more part of discard/lost statistics is collected inside jitter buffer in "pjmedia_jbuf" structure by updating the following fields: struct pjmedia_jbuf { ... unsigned jb_lost; /**< Number of lost frames. */ unsigned jb_discard; /**< Number of discarded frames. */ } But I cannot find in code how this data is taken into account by RTCP XR module. Am I missing something or it is a bug in RTCP XR module? Thanks, Maxim