diff options
Diffstat (limited to 'rotord')
| -rwxr-xr-x | rotord/src/rotor.cpp | 29 | ||||
| -rwxr-xr-x | rotord/src/rotor.h | 3 |
2 files changed, 20 insertions, 12 deletions
diff --git a/rotord/src/rotor.cpp b/rotord/src/rotor.cpp index 647313f..f96fbc3 100755 --- a/rotord/src/rotor.cpp +++ b/rotord/src/rotor.cpp @@ -62,7 +62,9 @@ void Node::update_params(const Time_spec& time){ //compute connected parameters } bool Signal_output::render(const float duration, const float framerate,string &xml_out){ //testing signal routes - cerr << "Rotor: Signal_output rendering " << duration << " seconds at " << framerate << " frames per second" << endl; + Logger& logger = Logger::get("Rotor"); + logger.information("SIgnal_output rendering "+ofToString(duration)+" seconds at "+ofToString(framerate)+" fps"); + float step=1.0f/framerate; float v=0.0f; float min=10000000.0f; @@ -210,7 +212,8 @@ bool Video_output::render(const float duration, const float framerate,const stri bool usingaudio=audioloader.setup(audio_filename); - cerr << "Rotor: Video_output rendering " << duration << " seconds at " << framerate << " fps, audio frame size: " << exporter.get_audio_framesize()<<endl; + Logger& logger = Logger::get("Rotor"); + logger.information("Video_output rendering "+output_filename+": "+ofToString(duration)+" seconds at "+ofToString(framerate)+" fps, audio frame size: "+ofToString(exporter.get_audio_framesize())); //25fps video and 43.06640625fps audio? hmm //how to get the timecodes correct for the interleaved files @@ -258,8 +261,8 @@ bool Video_output::render(const float duration, const float framerate,const stri float mtime = ((end.tv_sec-start.tv_sec) + (end.tv_usec-start.tv_usec)/1000000.0) + 0.5; - printf("Rotor Video_output: rendered in %02f seconds\n", mtime); - + logger.information("Video_output: rendered "+output_filename+": in "+ofToString(mtime)+" seconds"); + if (usingaudio) audioloader.close(); return true; @@ -269,20 +272,22 @@ bool Video_output::render(const float duration, const float framerate,const stri return false; } -bool Video_loader::load(const string &filename){ - +bool Video_loader::load(const string &_filename){ + Logger& logger = Logger::get("Rotor"); if (isLoaded) { player.cleanup(); ///should be in decoder class? isLoaded=false; } Poco::Path path; - string uri="file://"+filename; + string uri="file://"+_filename; isLoaded=player.open(uri); if (isLoaded){ - cerr<<"Rotor::Video_loader: "<<filename<<", "<<player.getNumberOfFrames()<<" frames "<<", "<<player.getWidth()<<"x"<<player.getHeight()<<endl; - return true; + logger.information("Video_loader loaded "+filename+": "+ofToString(player.getNumberOfFrames())+" frames, "+ofToString(player.getWidth())+"x"+ofToString(player.getHeight())); + return true; } - cerr<<"Rotor::Video_loader: failed to load "<<filename<<endl; + + logger.error("Video_loader failed to load "+filename); + return false; } Image* Video_loader::output(const Frame_spec &frame){ @@ -291,7 +296,9 @@ Image* Video_loader::output(const Frame_spec &frame){ int wanted=(((int) ((frame.time*frame.framerate)+0.5))%(player.getNumberOfFrames()-1))+1; //+1 is necessary because 1st frame in a video is number 1? if (!player.fetchFrame(frame.w,frame.h,wanted)) { //seek fail - cerr<<"Rotor: failed to seek frame "<<wanted<<endl; + Logger& logger = Logger::get("Rotor"); + logger.error("Video_loader failed to seek frame "+ofToString(wanted)+" of "+filename); + if (image.w>0) return ℑ //just return the previous frame if possible else return nullptr; }; diff --git a/rotord/src/rotor.h b/rotord/src/rotor.h index f9cafa2..85e7ac4 100755 --- a/rotord/src/rotor.h +++ b/rotord/src/rotor.h @@ -1043,7 +1043,7 @@ namespace Rotor { Video_loader(map<string,string> &settings) { base_settings(settings); isLoaded=false; - string filename=find_setting(settings,"filename",""); + filename=find_setting(settings,"filename",""); if (filename!="") { load(find_setting(settings,"media_path","")+filename); } @@ -1056,6 +1056,7 @@ namespace Rotor { private: libav::decoder player; Image image; + string filename; }; /* class CVideo_loader: public Image_node { |
