[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [58820] branches/soc-2013-vse/source/ blender/sequencer: Cleanup API in seqBucket and seqEngine
Alexander Kuznetsov
kuzsasha at gmail.com
Fri Aug 2 08:10:53 CEST 2013
Revision: 58820
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=58820
Author: alexk
Date: 2013-08-02 06:10:53 +0000 (Fri, 02 Aug 2013)
Log Message:
-----------
Cleanup API in seqBucket and seqEngine
Modified Paths:
--------------
branches/soc-2013-vse/source/blender/sequencer/sequencer_seqBucket.cpp
branches/soc-2013-vse/source/blender/sequencer/sequencer_seqBucket.h
branches/soc-2013-vse/source/blender/sequencer/sequencer_seqEngine.h
Modified: branches/soc-2013-vse/source/blender/sequencer/sequencer_seqBucket.cpp
===================================================================
--- branches/soc-2013-vse/source/blender/sequencer/sequencer_seqBucket.cpp 2013-08-02 06:02:00 UTC (rev 58819)
+++ branches/soc-2013-vse/source/blender/sequencer/sequencer_seqBucket.cpp 2013-08-02 06:10:53 UTC (rev 58820)
@@ -1,11 +1,13 @@
#include "sequencer_seqBucket.h"
+#include "sequencer_seqFrame.h"
-seqBucket::seqBucket(void):
-next(NULL),
-prev(NULL),
+void seq_frame_ref_dec(seqEngine *se, seqFrame *frame);
+
+seqBucket::seqBucket(seqEngine *engine):
+ MutexRef(&omutex),
bid(0),
-refcount(0),
+//refcount(0),
framep(NULL),
status(0),
devreq(0),
@@ -13,10 +15,10 @@
device_associated(NULL),
type(0),
dl(NULL),
-internalImg(0)
+internalImg(0),
+se(engine)
{
- pthread_mutex_init(&this->bucket_mutex, NULL);
}
@@ -48,10 +50,9 @@
//if(bucket->ImStack) MEM_freeN(bucket->ImStack);
if(dl) delete [] dl;
+ framep->Release();
-
-
}
Modified: branches/soc-2013-vse/source/blender/sequencer/sequencer_seqBucket.h
===================================================================
--- branches/soc-2013-vse/source/blender/sequencer/sequencer_seqBucket.h 2013-08-02 06:02:00 UTC (rev 58819)
+++ branches/soc-2013-vse/source/blender/sequencer/sequencer_seqBucket.h 2013-08-02 06:10:53 UTC (rev 58820)
@@ -2,7 +2,7 @@
#define __SEQUENCER_BUCKET_H__
-typedef struct seqFrame seqFrame;
+class seqFrame;
class seq_CommandBase;
@@ -11,22 +11,17 @@
class seqOutputImage;
class seqBucket_deplist;
class seqFrame;
+class seqDevice;
-//CHANGE!!
-typedef union seqDevice seqDevice;
-
#include <vector>
-
-#include "MEM_guardedalloc.h"
-
-
-
-
#include "pthread.h"
#include "sequencer_main.h"
#include "sequencer_seqImageStorage.h"
+#include "sequencer_include.h"
+#include "sequencer_seqCommand.h"
+#include "sequencer_MutexRef.h"
class seqBucket_deplist
{
@@ -52,19 +47,16 @@
void seq_bucket_ref_dec(seqEngine *se, seqBucket *bucket);
void seq_bucket_ref_init(seqEngine *se, seqFrame *frm, seqBucket *bucket);
-class seqBucket
+class seqBucket : public MutexRef
{
public:
- seqBucket *next, *prev;
-
uint bid;
- ThreadMutex bucket_mutex;
- int refcount;
+ smutex omutex;
seqFrame *framep;
@@ -82,13 +74,12 @@
size_t dl_num;
seqBucket_deplist * dl;
+ uint implementation;
-// size_t imagest_num;
-// seqImageStackInfo *ImStack;
+ seqEngine *se;
-
seqImageStorage firstImgOutput;
seqImageStorage *internalImg;
@@ -100,29 +91,41 @@
- void Retain(void)
+
+ void init(seqEngine *se, seqFrame *frm)
{
- pthread_mutex_lock(&this->bucket_mutex);
- this->refcount++;
- pthread_mutex_unlock(&this->bucket_mutex);
+
+ seq_bucket_ref_init(se, frm, this);
+
}
- void Release(void)
+
+ void prepare_done(void)
{
- seq_bucket_ref_dec(0, this);
+ implementation = ~0;
+
+ for(std::vector<seq_CommandBase*>::iterator it = commands_cpp.begin();
+ it!=commands_cpp.end(); ++it )
+ {
+ seq_CommandBase *c = *it;
+ implementation = c->get_implementation() & implementation;
+
+ }
+
+
}
- void init(seqEngine *se, seqFrame *frm)
- {
- seq_bucket_ref_init(se, frm, this);
+ unsigned int get_implementation(void)
+ {
+ return implementation;
}
- seqBucket(void);
- ~seqBucket(void);
+ seqBucket(seqEngine *engine);
+ virtual ~seqBucket(void);
MEM_CXX_CLASS_ALLOC_FUNCS("seqBucket");
Modified: branches/soc-2013-vse/source/blender/sequencer/sequencer_seqEngine.h
===================================================================
--- branches/soc-2013-vse/source/blender/sequencer/sequencer_seqEngine.h 2013-08-02 06:02:00 UTC (rev 58819)
+++ branches/soc-2013-vse/source/blender/sequencer/sequencer_seqEngine.h 2013-08-02 06:10:53 UTC (rev 58820)
@@ -10,35 +10,43 @@
}
#endif
+#include <list>
+#include <vector>
+#include "sequencer_seqDevice.h"
+#include "sequencer_include.h"
+
class seqEngine
{
-private:
- void setListBase(ListBase *l)
- {
- l->first = l->last = NULL;
- }
public:
int init;
- ListBase devicelist;
- ListBase clplatformlist;
+ std::list<seqDevice*> devicelist;
+ std::vector<seqCLPlatform*> clplatformlist;
+ std::list<seqBucket*> list_buckets_todo;
- ListBase list_buckets_todo;
+ scond buckets_notifiication;
+ smutex omutex;
- ThreadMutex engine_mutex;
+ seqEngine(void):
+ buckets_notifiication(&omutex)
+ {
- seqEngine(void)
+ }
+
+
+
+ void NotifyBucketChange()
{
- setListBase(&devicelist);
- setListBase(&clplatformlist);
- setListBase(&list_buckets_todo);
- pthread_mutex_init(&engine_mutex, NULL);
+ buckets_notifiication.lock();
+ buckets_notifiication.broadcast();
+ buckets_notifiication.unlock();
}
+ MEM_CXX_CLASS_ALLOC_FUNCS("seqEngine");
};
More information about the Bf-blender-cvs
mailing list