Пример #1
0
/**
 * @brief Captures a new frame from the camera (if available)
 */
void VICamera::update()
{
	setNewFrame( false );

	// If we have a new frame
	if( m_viCamera.isFrameNew( m_deviceId ) )	
	{
		// Calculate the format
		int npixels			= m_viCamera.getWidth( m_deviceId ) * m_viCamera.getHeight( m_deviceId );
		size_t frameSize	= m_viCamera.getSize( m_deviceId );
		GraphicsType format = ( npixels == frameSize )? GRAYSCALE: RGB;
		int nChannels = format == RGB? 3: 1;

		// we get the pixels by passing in out buffer which gets 
		setNewFrameData(  m_viCamera.getPixels( m_deviceId, true, true ),  m_viCamera.getWidth( m_deviceId ),  m_viCamera.getHeight( m_deviceId ), format, m_viCamera.getWidth( m_deviceId ) * nChannels );
		setNewFrame( true );
	}
}
ProtocolParser::ProtocolParserStatus PushProtocolParser::parse(int &bytesParsed) {
	
	bytesParsed = getBufferSize();
	const std::vector<uint8> *buffer = getBuffer();

	Frame *frame = new Frame();
	frame->append(buffer, bytesParsed);

	setNewFrame(frame);

	return FRAME_FINISHED;


	//return NEED_MORE;
}