Webcam Server.
Dependencies: uvchost FatFileSystem mbed HTTPServer NetServicesMin
WebcamInput.cpp
- Committer:
- va009039
- Date:
- 2012-08-14
- Revision:
- 1:7a4f2c038803
- Parent:
- 0:2b4ea8a138e5
File content as of revision 1:7a4f2c038803:
#include "WebcamServerConfig.h" #include "WebcamInput.h" #include "WebcamHandler.h" #include "myjpeg.h" //#define __DEBUG #include "mydbg.h" DigitalOut led1(LED1), led2(LED2), led3(LED3), led4(LED4); WebcamInput::WebcamInput(int cam) :m_seq(0),m_cam(cam) { DBG("%p cam=%d\n", this, cam); m_t.reset(); m_t.start(); m_size = IMAGE_SIZE; m_image_buf = new uint8_t[m_size]; DBG_ASSERT(m_image_buf); } void WebcamInput::input(uint16_t frame, uint8_t* buf, int len) { if (len <= 12) { return; } uint8_t* data = buf+12; int data_len = len - 12; switch(m_seq) { case 0: if (m_t.read_ms() > INTERVAL_MS) { m_seq++; } break; case 1: if (!WebcamHandler::busy()) { m_seq++; } break; case 2: if ((buf[1]^m_bfh)&0x01) { // FID change m_pos = 0; if (m_cam == 0) { led3 = 1; } else { led4 = 1; } m_seq++; } else { break; } case 3: for(int i = 0; m_pos < IMAGE_SIZE && i < data_len; i++) { m_image_buf[m_pos++] = data[i]; } if (buf[1]&0x02) { // EOF #ifdef UVC_INSERT_DHT myjpeg JPEG(m_image_buf, m_pos, m_size); JPEG.analytics(); if (JPEG.DHT_pos == 0) { m_pos = JPEG.insertDHT(); } #endif // UVC_INSERT_DHT WebcamHandler::setImage(m_image_buf, m_pos, m_cam); m_t.reset(); m_seq = 0; if (m_cam == 0) { led3 = 0; } else { led4 = 0; } } break; } m_bfh = buf[1]; if (m_cam == 0) { led1 = buf[1]&1; // FID } else { led2 = buf[1]&1; // FID } //led4 = WebcamHandler::busy(); }