libcvd-members
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[libcvd-members] libcvd/cvd readaheadvideobuffer.h


From: Edward Rosten
Subject: [libcvd-members] libcvd/cvd readaheadvideobuffer.h
Date: Mon, 01 Dec 2008 09:02:20 +0000

CVSROOT:        /cvsroot/libcvd
Module name:    libcvd
Changes by:     Edward Rosten <edrosten>        08/12/01 09:02:20

Modified files:
        cvd            : readaheadvideobuffer.h 

Log message:
        Makes a live stream flushable.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/libcvd/cvd/readaheadvideobuffer.h?cvsroot=libcvd&r1=1.4&r2=1.5

Patches:
Index: readaheadvideobuffer.h
===================================================================
RCS file: /cvsroot/libcvd/libcvd/cvd/readaheadvideobuffer.h,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- readaheadvideobuffer.h      16 May 2006 13:31:08 -0000      1.4
+++ readaheadvideobuffer.h      1 Dec 2008 09:02:20 -0000       1.5
@@ -42,7 +42,8 @@
        VideoBuffer<T>& vbuffer;
     public:
        virtual ~ReadAheadVideoBuffer() {}
-       ReadAheadVideoBuffer(VideoBuffer<T>& vb, size_t maxReadAhead=10) : 
vbuffer(vb) {}
+       ReadAheadVideoBuffer(VideoBuffer<T>& vb, size_t maxReadAhead=10) 
+       : VideoBuffer<T>(vb.type()),vbuffer(vb) {}
        /// The size of the VideoFrames returned by this buffer
        ImageRef size() { return vbuffer.size(); }
        /// Returns the next frame from the buffer. This function blocks until 
a frame is ready.
@@ -75,6 +76,18 @@
        Synchronized vblock;
        EventObject qevent;
        Thread thread;
+
+       typedef typename VideoBuffer<T>::Type Type;
+       
+
+       static Type type_update(Type t)
+       {
+               if(t== VideoBuffer<T>::NotLive)
+                       return t; 
+               else
+                       return VideoBuffer<T>::Flushable;
+       }
+
     public:
        virtual ~ReadAheadVideoBuffer() {
            qevent.lock();
@@ -83,7 +96,8 @@
            qevent.unlock();
            thread.join();          
        }
-       ReadAheadVideoBuffer(VideoBuffer<T>& vb, size_t maxReadAhead=10) : 
vbuffer(vb), maxRA(maxReadAhead) {
+       ReadAheadVideoBuffer(VideoBuffer<T>& vb, size_t maxReadAhead=10) 
+       : VideoBuffer<T>(type_update(vb.type())), vbuffer(vb), 
maxRA(maxReadAhead) {
            thread.start(this);     
        }
 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]