waiting_packet has to be a queue

main
Tom Early 4 years ago
parent 4336de4723
commit b26c26cf2b

@ -412,7 +412,7 @@ void CDV3003::FeedDevice()
} }
else else
{ {
waiting_packet[index] = packet; waiting_packet[index].push(packet);
if (needs_audio) if (needs_audio)
{ {
@ -455,7 +455,7 @@ void CDV3003::ReadDevice()
if (! GetResponse(p)) if (! GetResponse(p))
{ {
unsigned int channel = p.field_id - PKT_CHANNEL0; unsigned int channel = p.field_id - PKT_CHANNEL0;
auto packet = waiting_packet[channel]; auto packet = waiting_packet[channel].pop();
if (PKT_CHANNEL == p.header.packet_type) if (PKT_CHANNEL == p.header.packet_type)
{ {
if (12!=ntohs(p.header.payload_length) || PKT_CHAND!=p.payload.ambe.chand || 72!=p.payload.ambe.num_bits) if (12!=ntohs(p.header.payload_length) || PKT_CHAND!=p.payload.ambe.chand || 72!=p.payload.ambe.num_bits)

@ -116,7 +116,7 @@ private:
int fd; int fd;
std::atomic<unsigned int> ch_depth, sp_depth; std::atomic<unsigned int> ch_depth, sp_depth;
std::atomic<bool> keep_running; std::atomic<bool> keep_running;
std::shared_ptr<CTranscoderPacket> waiting_packet[3]; // the packet currently being processed in each vocoder CPacketQueue waiting_packet[3]; // the packet currently being processed in each vocoder
CPacketQueue input_queue; CPacketQueue input_queue;
std::future<void> feedFuture, readFuture; std::future<void> feedFuture, readFuture;
std::string devicepath, productid, version; std::string devicepath, productid, version;

Loading…
Cancel
Save

Powered by TurnKey Linux.