From 343afc68943fc7f1815e5eb5fd2df3a8cd201d3c Mon Sep 17 00:00:00 2001 From: Comment Date: Fri, 18 Oct 2013 08:30:16 -0700 Subject: json loader fixes --- rotord/src/graph.cpp | 54 ++++++++++++++++++++++++++++++---------------------- 1 file changed, 31 insertions(+), 23 deletions(-) diff --git a/rotord/src/graph.cpp b/rotord/src/graph.cpp index e6443d3..c33c59d 100644 --- a/rotord/src/graph.cpp +++ b/rotord/src/graph.cpp @@ -112,7 +112,7 @@ bool Graph::video_render(const string &output_filename,const float framerate,int } // //setup defaults - + AVCodecID codecId=AV_CODEC_ID_H264; //MPEG4; std::string container; Poco::StringTokenizer t(output_filename,"."); @@ -212,7 +212,7 @@ bool Graph::video_render(const string &output_filename,const float framerate,int //cerr<<"videoloader: "<get_image_output(Frame_spec(vf,framerate,duration,outW,outH,a)); } @@ -227,7 +227,7 @@ bool Graph::video_render(const string &output_filename,const float framerate,int if (usingaudio) {delete a;}; } - + //exporter.encodeFrame(i->RGBdata,true); //final keyframe; exporter.finishRecord(); @@ -317,16 +317,25 @@ bool Graph::parseJson(string &data,string &media_path){ init(root["ID"].asString(),root["description"].asString()); Json::Value jnodes = root["nodeDefinitions"]; for ( int i = 0; i < jnodes.size(); ++i ) { + string nodeID=jnodes[i]["id"].asString(); //cerr<<"json found node: "< settings; vector attrs; - //iterate members settings["type"]=jnodes[i]["type"].asString(); - settings["title"]=jnodes[i]["title"].asString(); - settings["description"]=jnodes[i]["description"].asString(); + if (settings["type"]=="video_cycler"){ + //breakpoint + cerr<<"making video cycler"<(nodes[nodeID])!=nullptr) { + + + //handle expandable inputs + if ((((Image_node*)nodes[nodeID])->image_inputs.size()<=jnodes[i]["image_inputs"].size())&&((Image_node*)nodes[nodeID])->duplicate_inputs){ + string desc=((Image_node*)nodes[nodeID])->image_inputs[0]->description; + string title=((Image_node*)nodes[nodeID])->image_inputs[0]->title; + while(((Image_node*)nodes[nodeID])->image_inputs.size()<=jnodes[i]["image_inputs"].size()){ + ((Image_node*)nodes[nodeID])->create_image_input(desc,title); + cerr<<"creating an image input"<image_inputs.size()<=k) { if (nodes[nodeID]->duplicate_inputs) { @@ -400,22 +424,6 @@ bool Graph::parseJson(string &data,string &media_path){ else cerr << "Rotor: cannot find parameter '" << parameter << "' of "<create_attribute("media_path","","",media_path); - for (int m=0;mattributes.find(attribute)!=nodes[nodeID]->attributes.end()) { - string val=jnodes[i]["attributes"][m]["value"].asString(); - if (val!=nodes[nodeID]->attributes.find(attribute)->second->value){ - nodes[nodeID]->attributes.find(attribute)->second->value=val; - nodes[nodeID]->init_attribute(attribute); - cerr << "Rotor: set attribute '"<attributes.find(attribute)->second->value=val; - } - else cerr << "Rotor: cannot find attribute '" << attribute << "' of "<