Ejemplo n.º 1
0
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);
}
Ejemplo n.º 2
0
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);
}
Ejemplo n.º 3
0
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);
    }
}