Omm::AvStream::Frame* FFmpegMeta::readFrame() { AVPacket packet; LOG(ffmpeg, trace, "ffmpeg::av_read_frame() ..."); int ret = av_read_frame(_pFormatContext, &packet); _frameNumber++; if (ret < 0) { LOG(ffmpeg, error, "ffmpeg::av_read_frame() returns: " + Poco::NumberFormatter::format(ret) + " (" + errorMessage(ret) + ")"); return new Omm::AvStream::Frame(_frameNumber, streamInfo(0), true); } FFmpegFrame* pFrame = new FFmpegFrame(_frameNumber, streamInfo(packet.stream_index)); LOG(ffmpeg, trace, "av_dup_packet()"); if (av_dup_packet(&packet) < 0) { LOG(ffmpeg, warning, "av_dup_packet() failed"); } // allocate AVPacket struc LOG(ffmpeg, trace, "av_malloc()"); pFrame->_pAvPacket = (AVPacket*)av_malloc(sizeof(AVPacket)); // copy fields of AVPacket struc *(pFrame->_pAvPacket) = packet; pFrame->_data = (char*)packet.data; pFrame->_size = packet.size; pFrame->setPts(packet.pts); return pFrame; }
void HttpCookie::readFile() { std::string inString = cocos2d::FileUtils::getInstance()->getStringFromFile(_cookieFileName); if(inString.length() != 0) { std::vector<std::string> cookiesVec; cookiesVec.clear(); std::stringstream stream(inString); std::string item; while(std::getline(stream, item, '\n')) { cookiesVec.push_back(item); } if(cookiesVec.empty()) return; _cookies.clear(); for(auto iter = cookiesVec.begin();iter != cookiesVec.end(); iter++) { std::string cookie = *iter; if(cookie.length() == 0) continue; if(cookie.find("#HttpOnly_") != std::string::npos) { cookie = cookie.substr(10); } if(cookie.at(0) == '#') continue; CookiesInfo co; std::stringstream streamInfo(cookie); std::vector<std::string> elems; std::string elemsItem; while (std::getline(streamInfo, elemsItem, '\t')) { elems.push_back(elemsItem); } co.domain = elems[0]; if (co.domain.at(0) == '.') { co.domain = co.domain.substr(1); } co.tailmatch = strcmp("TRUE", elems[1].c_str())?true: false; co.path = elems[2]; co.secure = strcmp("TRUE", elems[3].c_str())?true: false; co.expires = elems[4]; co.name = elems[5]; co.value = elems[6]; _cookies.push_back(co); } } }