Hi!
I'm using ccrtp-1.3.6 and my inbound rtp sessions do not send receiver reports.
I've looked into the code and in the method
QueueRTCPManager::sendControlToDestinations(unsigned char* buffer, size_t len)
There is a loop over all added destinations, but this list is empty for inbound
sessions.
I added a loop over all sync sources and it seams to work. Is this a bug or is
there something I've misunderstood? (When writing this I realize that my loop
is probably not thread-safe so that has to be added).
Actually, should it not always be enough to look at the list of sync sources?
Any thoughts are appreciated.
/Jörgen
-------------------------------------------------------------
size_t
QueueRTCPManager::sendControlToDestinations(unsigned char* buffer, size_t len)
{
size_t count = 0;
lockDestinationList();
if ( isSingleDestination() ) {
count = sendControl(buffer,len);
} else {
// when no destination has been added, NULL == dest.
for (std::list<TransportAddress*>::iterator i =
destList.begin(); destList.end() != i; i++) {
std::cerr << "In loop over destinations" << std::endl;
TransportAddress* dest = *i;
setControlPeer(dest->getNetworkAddress(),
dest->getControlTransportPort());
count += sendControl(buffer,len);
}
}
unlockDestinationList();
SyncSourcesIterator iter = begin();
while (iter != end()) {
setControlPeer(iter->getNetworkAddress(),
iter->getControlTransportPort());
count += sendControl(buffer,len);
iter++;
}
return count;
}
_______________________________________________
Ccrtp-devel mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/ccrtp-devel