int FFmpegEncoder::encodeVideoFrame(const uint8_t *frameData, PixelFormat format, int width, int height) { if (!this->opened) { LOGE("FFmpegEncoder::encodeVideoFrame, this->opened is false"); return -1; } if (!this->encodeVideo) { LOGE("FFmpegEncoder::encodeVideoFrame, this->encodeVideo is false"); return -1; } // Set input video param and encode the image frame AVPicture picture; FFmpegVideoParam inParam(width, height, format, 0, 0, ""); if(avpicture_fill(&picture, (uint8_t *)frameData, inParam.pixelFormat, inParam.width, inParam.height) == -1) { LOGE("FFmpegEncoder::encodeVideoFrame, fail to avpicture_fill"); return -1; } //LOGI("FFmpegEncoder::encodeVideoFrame, picture.data: %d, frame:%d", (int)picture.data[0], (int)frameData); return encodeVideoData(&picture, inParam); }
int FFmpegEncoder::encodeVideoFrame(const uint8_t *frameData, PixelFormat format, int width, int height) { if (!this->opened) { return -1; } if (!this->encodeVideo) { return -1; } // set input video param FFmpegVideoParam inParam(width, height, format, 0, 0, ""); // encode the image frame AVPicture picture; if(avpicture_fill(&picture, (uint8_t *)frameData, inParam.pixelFormat, inParam.width, inParam.height) == -1) { return -1; } return this->encodeVideoData(&picture, inParam); }
void readGeoGenParams(string paramFileName, Teuchos::ParameterList &geoparams, const RCP<const Teuchos::Comm<int> > & comm){ std::string input = ""; char inp[25000]; for(int i = 0; i < 25000; ++i){ inp[i] = 0; } bool fail = false; if(comm->getRank() == 0){ fstream inParam(paramFileName.c_str()); if (inParam.fail()) { fail = true; } if(!fail) { std::string tmp = ""; getline (inParam,tmp); while (!inParam.eof()){ if(tmp != ""){ tmp = trim_copy(tmp); if(tmp != ""){ input += tmp + "\n"; } } getline (inParam,tmp); } inParam.close(); for (size_t i = 0; i < input.size(); ++i){ inp[i] = input[i]; } } } int size = input.size(); if(fail){ size = -1; } comm->broadcast(0, sizeof(int), (char*) &size); if(size == -1){ throw "File " + paramFileName + " cannot be opened."; } comm->broadcast(0, size, inp); istringstream inParam(inp); string str; getline (inParam,str); while (!inParam.eof()){ if(str[0] != param_comment){ size_t pos = str.find('='); if(pos == string::npos){ throw "Invalid Line:" + str + " in parameter file"; } string paramname = trim_copy(str.substr(0,pos)); string paramvalue = trim_copy(str.substr(pos + 1)); geoparams.set(paramname, paramvalue); } getline (inParam,str); } }