From caf495afbda7c12da090a9fc7b08c4e7d44420ff Mon Sep 17 00:00:00 2001 From: Tim Redfern Date: Mon, 29 Apr 2013 18:05:08 +0100 Subject: reading all frames but dropping frames --- rotord/rotor.cpp | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/rotord/rotor.cpp b/rotord/rotor.cpp index 6d99f1c..d295c9f 100755 --- a/rotord/rotor.cpp +++ b/rotord/rotor.cpp @@ -170,6 +170,8 @@ bool Video_output::render(const float duration, const float framerate,const stri bool usingaudio=audioloader.setup(audio_filename); //at the moment it crashes if you render before audio is loaded + float spct=100.0f/duration; + if (exporter->setup(outW,outH,bitRate,frameRate,container)) { //codecId, if (exporter->record(output_filename)) { @@ -184,6 +186,13 @@ bool Video_output::render(const float duration, const float framerate,const stri cerr << "Rotor: video output failed"<99.5){ + + cerr<<"stop here"<finishRecord(); cerr << "Rotor: Video_output finished "<< endl; @@ -203,6 +212,7 @@ bool Video_input::load(const string &filename){ if (player->loadMovie(uri)){ player->play(); player->setPaused(true); + player->setFrameByFrame(true); player->update(); cerr<<"Rotor::Video_input loaded "<getDuration()<<" seconds "<<", "<getWidth()<<"x"<getHeight()<setup_fromRGB(player->getWidth(),player->getHeight(),(uint8_t*) player->getPixels()); @@ -228,13 +238,14 @@ Image* Video_input::get_output(const Frame_spec &frame){ //trace frame that is being read if (player->isLoaded()){ //player->setPosition(frame.time); - int wanted=((int) (frame.time*frame.framerate))%player->getTotalNumFrames(); + int wanted=((int) (frame.time*frame.framerate))%(player->getTotalNumFrames()-1); player->setFrame(wanted); - while (player->getCurrentFrame()!=wanted){ - cerr << "seeking to "<getCurrentFrame()<update(); - sleep(.001); - } + //while (player->getCurrentFrame()!=wanted){ + // cerr << "seeking to "<getCurrentFrame()<setFrame(wanted); + //player->update(); + // sleep(.001); + //} 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))<