From b04122f3f7884de08eb5d59bb3fd2bff829f9039 Mon Sep 17 00:00:00 2001 From: deva Date: Sun, 22 May 2005 15:49:22 +0000 Subject: Added multithreaded encoding support. --- src/frame.h | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) (limited to 'src/frame.h') diff --git a/src/frame.h b/src/frame.h index aebe3cb..72cfe8e 100644 --- a/src/frame.h +++ b/src/frame.h @@ -31,6 +31,9 @@ /* * $Log$ + * Revision 1.6 2005/05/22 15:49:22 deva + * Added multithreaded encoding support. + * * Revision 1.5 2005/05/03 08:31:59 deva * Removed the error object, and replaced it with a more generic info object. * @@ -45,17 +48,48 @@ #ifndef __FRAME_H__ #define __FRAME_H__ +// Definition of vector +#include + +// Definition of priority_queue +#include + class Frame { public: Frame(unsigned char *d, int sz); ~Frame(); + /* + // Smaller frame number is higher priority + bool operator<(const Frame& f) const { + return number > f.number; + } + */ + unsigned char *data; int size; + unsigned int number; + bool shoot; bool freeze; bool record; }; +#include + +template +struct frame_priority : std::binary_function { + bool operator() (const T& a, const T& b) const { + return ((Frame*)a)->number > ((Frame*)b)->number; + } +}; + +// Additional helper types. +typedef std::vector< Frame* > FrameVector; +typedef std::queue< FrameVector* > FrameVectorQueue; +typedef std::priority_queue< Frame*, + std::vector, + frame_priority > FramePriorityQueue; + #endif/*__FRAME_H__*/ -- cgit v1.2.3