code: func (w *Webcam) StartStreaming() error {
  	if w.streaming {
  		return errors.New("Already streaming")
  	}
  
  	err := mmapRequestBuffers(w.fd, &w.bufcount)
  
  	if err != nil {
  		return errors.New("Failed to map request buffers: " + string(err.Error()))
  	}
  
  	w.buffers = make([][]byte, w.bufcount, w.bufcount)
  	for index, _ := range w.buffers {
  		var length uint32
  
  		buffer, err := mmapQueryBuffer(w.fd, uint32(index), &length)
  
  		if err != nil {
  			return errors.New("Failed to map memory: " + string(err.Error()))
  		}
  
  		w.buffers[index] = buffer
  	}
  
  	for index, _ := range w.buffers {
  
  		err := mmapEnqueueBuffer(w.fd, uint32(index))
  
  		if err != nil {
  			return errors.New("Failed to enqueue buffer: " + string(err.Error()))
  		}
  
  	}
  
  	err = startStreaming(w.fd)
  
  	if err != nil {
  		return errors.New("Failed to start streaming: " + string(err.Error()))
  	}
  	w.streaming = true
  
  	return nil
  }
docs: // Start streaming process