diff --git a/src/zm_packetqueue.cpp b/src/zm_packetqueue.cpp index c89347692..588355287 100644 --- a/src/zm_packetqueue.cpp +++ b/src/zm_packetqueue.cpp @@ -38,17 +38,20 @@ PacketQueue::PacketQueue(): /* Assumes queue is empty when adding streams * Assumes first stream added will be the video stream */ -void PacketQueue::addStreamId(int p_stream_id) { +int PacketQueue::addStream() { deleting = false; - if ( video_stream_id == -1 ) - video_stream_id = p_stream_id; - if ( max_stream_id < p_stream_id ) { - if ( packet_counts ) delete[] packet_counts; - max_stream_id = p_stream_id; - packet_counts = new int[max_stream_id+1]; - for ( int i=0; i <= max_stream_id; ++i ) - packet_counts[i] = 0; + if ( max_stream_id == -1 ) { + video_stream_id = 0; + max_stream_id = 0; + } else { + max_stream_id ++; } + + if ( packet_counts ) delete[] packet_counts; + packet_counts = new int[max_stream_id+1]; + for ( int i=0; i <= max_stream_id; ++i ) + packet_counts[i] = 0; + return max_stream_id; } PacketQueue::~PacketQueue() { diff --git a/src/zm_packetqueue.h b/src/zm_packetqueue.h index cd88648b9..c0ba045b8 100644 --- a/src/zm_packetqueue.h +++ b/src/zm_packetqueue.h @@ -48,7 +48,7 @@ class PacketQueue { std::list::const_iterator end() const { return pktQueue.end(); } std::list::const_iterator begin() const { return pktQueue.begin(); } - void addStreamId(int p_stream_id); + int addStream(); void setMaxVideoPackets(int p); bool queuePacket(ZMPacket* packet);