/** * @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; }