diff options
Diffstat (limited to 'rotord/rotor.cpp')
| -rwxr-xr-x | rotord/rotor.cpp | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/rotord/rotor.cpp b/rotord/rotor.cpp index 59a1697..52c76df 100755 --- a/rotord/rotor.cpp +++ b/rotord/rotor.cpp @@ -12,7 +12,7 @@ Node_factory::Node_factory(){ add_type("signal_output",new Signal_output()); add_type("testcard",new Testcard()); add_type("video_output",new Video_output()); - add_type("video_input",new Video_input()); + add_type("video_loader",new Video_loader()); add_type("on_off",new On_off()); add_type("invert",new Invert()); add_type("video_cycler",new Video_cycler()); @@ -30,6 +30,11 @@ bool Signal_input::connect(Signal_node* source) { } else return false; } +void Parameter_input::update(const Time_spec& time){ //gets input and updates variable + if (receiver){ + *receiver=((Signal_node*)connection)->get_output(time); + } +} bool Image_input::connect(Image_node* source) { if (source->output_type=="image") { connection=(Node*)source; @@ -215,7 +220,7 @@ bool Video_output::render(const float duration, const float framerate,const stri return false; } -bool Video_input::load(const string &filename){ +bool Video_loader::load(const string &filename){ //gstreamer needs absolute paths ALWAYS //string uri="file:///home/tim/workspace/rotor/rotord/"+filename; Poco::Path path; @@ -226,13 +231,13 @@ bool Video_input::load(const string &filename){ player->setPaused(true); player->setFrameByFrame(true); player->update(); - cerr<<"Rotor::Video_input loaded "<<filename<<", "<<player->getDuration()<<" seconds "<<", "<<player->getWidth()<<"x"<<player->getHeight()<<endl; + cerr<<"Rotor::Video_loader: "<<filename<<", "<<player->getDuration()<<" seconds "<<", "<<player->getWidth()<<"x"<<player->getHeight()<<endl; image->setup_fromRGB(player->getWidth(),player->getHeight(),(uint8_t*) player->getPixels()); return true; } return false; } -Image* Video_input::get_output(const Frame_spec &frame){ +Image* Video_loader::output(const Frame_spec &frame){ //wonder about the actual mechanism used by gstreamer //have to implment callback when seek is ready? //presume gstreamer caches a loaded frame? @@ -260,7 +265,7 @@ Image* Video_input::get_output(const Frame_spec &frame){ //} player->update(); image->RGBdata=player->getPixels(); //don't really know why this is needed every frame - //cerr<<"Video_input: retrieving frame "<<((int) (frame.time*frame.framerate))<<endl; + //cerr<<"Video_loader: retrieving frame "<<((int) (frame.time*frame.framerate))<<endl; return image; } return nullptr; |
