summaryrefslogtreecommitdiff
path: root/rotord/src
diff options
context:
space:
mode:
authorTim Redfern <tim@eclectronics.org>2013-11-08 10:43:55 +0000
committerTim Redfern <tim@eclectronics.org>2013-11-08 10:43:55 +0000
commitb0a84b45721643298870322bd2335e20c359b10d (patch)
tree84ece9bd8d0d3cb68c2f27a54d60bebcc1f8d259 /rotord/src
parenta22751cac56d143e41f1336b962d83032e06dd61 (diff)
fix log disable
Diffstat (limited to 'rotord/src')
-rw-r--r--rotord/src/rotor.h31
-rw-r--r--rotord/src/rotord.h2
2 files changed, 33 insertions, 0 deletions
diff --git a/rotord/src/rotor.h b/rotord/src/rotor.h
index a54fedd..2720e47 100644
--- a/rotord/src/rotor.h
+++ b/rotord/src/rotor.h
@@ -396,6 +396,9 @@ namespace Rotor {
description="Cycles through video inputs according to selector signal";
duplicate_inputs=true;
UID="93dd9d76-2d09-11e3-9589-5bbbeea1b304";
+ segment=0;
+ segment_start=0.0f;
+ lastframe=0;
}
Video_cycler(map<string,string> &settings):Video_cycler() {
base_settings(settings);
@@ -408,6 +411,34 @@ namespace Rotor {
int im2=(im1+1)%image_inputs.size();
//work out timing
+ float ph=inputs[0]->get((Time_spec)frame);
+ int seg=((int)ph);
+ int thisframe=((Time_spec)frame).frame();
+ if(thisframe==lastframe||thisframe==lastframe+1){
+ if (segment!=seg){
+ //start of new segment
+ cerr<<"Video_cycler: segment "<<seg<<" started: "<<((Time_spec)frame).time<<endl;
+ segment=seg;
+ segment_start=((Time_spec)frame).time;
+ }
+ }
+ else {
+ if (thisframe==0){
+ segment_start=0.0f;
+ segment=seg;
+ }
+ else {
+ //find segment start
+ Time_spec testframe=(Time_spec)frame.lastframe();
+ while ((int)inputs[0]->get(testframe)==seg&&testframe.frame()>0){
+ testframe=testframe.lastframe();
+
+ }
+ segment_start=testframe.time;
+ segment=seg;
+ }
+ }
+ float wanted=(((Time_spec)frame).time-segment_start);
float f=fmod(inputs[0]->get((Time_spec)frame),1.0f);
Image *in1=image_inputs[im1]->get(frame);
diff --git a/rotord/src/rotord.h b/rotord/src/rotord.h
index 6324fd2..dd6a25c 100644
--- a/rotord/src/rotord.h
+++ b/rotord/src/rotord.h
@@ -142,6 +142,8 @@ int main(int argc, char** argv)
AutoPtr<Formatter> formatter(new PatternFormatter("%d-%m-%Y %H:%M:%S %s: %t"));
AutoPtr<Channel> formattingChannel(new FormattingChannel(formatter, splitterChannel));
+ Logger& sLog = Logger::create("Rotor", formattingChannel, Message::PRIO_TRACE);
+
Logger& logger = Logger::get("Rotor");
logger.information("starting rendering daemon");