
Good day. I'm developing an application that transfer video data and there is problem with transfer big data chunk (~600 Kb) over UDP. Data processing consumes 50% CPU and performance is not good ( i need transfer 25 chunks in sec, but really there is about 18). Below is code snippet: ....... // Get video data chunk void Receive(ISample* pSample) { // Divide chunk on RTP packets IPacketIterator* iter = m_accessor->GetIterator(pSample); SendDatagram(iter); } // Send datagram void SendDatagram(IPacketIterator* iter) { if (iter->IsValid()) { IProtocolPacket* packet = iter->Next(); std::vectorasio::const_buffer buffs(2); buffs.push_back(asio::const_buffer(packet->GetHeader(), packet->GetHeaderSize()); buffs.push_back(asio::const_buffer(packet->GetBody(), packet->GetBodySize()); m_socket.async_send_to(buffs, m_endpoint, boost::bind(&CChannel::handle_send, this, iter, placeholders::error, placeholders::bytes_transferred); } else { // Query next chunk ........ } } void handle_send(IPacketIterator* iter, const boost::system::error_code& error, size_t bytes_trans) { if (!error) SendDatagram(iter); } Anyone can help me with that problem? Best regards, Vadim