/* mkvmerge -- utility for splicing together matroska files from component media subtypes queue.cpp Written by Moritz Bunkus Distributed under the GPL see the file COPYING for details or visit http://www.gnu.org/copyleft/gpl.html */ /*! \file \version \$Id: queue.h,v 1.9 2003/04/13 15:23:03 mosu Exp $ \brief class definition for the queueing class \author Moritz Bunkus */ #ifndef __QUEUE_H #define __QUEUE_H #include "error.h" #include "pr_generic.h" // q_page_t is used internally only typedef struct q_page { packet_t *pack; struct q_page *next; } q_page_t; class q_c: public generic_packetizer_c { private: static int64_t id; struct q_page *first, *current; public: q_c(track_info_t *nti) throw (error_c); virtual ~q_c(); virtual int64_t add_packet(unsigned char *data, int lenth, int64_t timestamp, int64_t bref = 0, int64_t fref = 0); virtual packet_t *get_packet(); virtual int packet_available(); virtual stamp_t get_smallest_timestamp(); virtual long get_queued_bytes(); }; #endif // __QUEUE_H