Peter Johnson
883fd5b062
For property events, provide property name rather than source name.
...
This is much more useful.
2017-01-02 23:17:00 -08:00
Peter Johnson
7ddbf20108
Create VideoCamera base class and move camera settings functions to it.
...
This makes them available for both UsbCamera and HttpCamera / AxisCamera.
To avoid virtual functions in the public-facing interface, move the
implementation of the camera settings functions to the core library.
2017-01-02 23:17:00 -08:00
Peter Johnson
23135d7a5a
Allow Sink.SetSource() to be given an empty source.
...
In Java, allow source to be null (pointers are not used in C++, so
this isn't necessary).
2017-01-02 23:17:00 -08:00
Thad House
b91ab0b44f
Gets builds working on Windows (VS 2015) ( #37 )
...
Def files will be updated after the latest PR with new definitions gets
added.
2017-01-02 23:16:35 -08:00
Peter Johnson
58931e1d30
Be even more permissive on valid JPEG formats.
2016-12-25 01:45:35 -08:00
Peter Johnson
9016a9e8b8
Start implementing HttpCamera.
...
This is a work in progress that does not yet support camera settings.
2016-12-23 22:26:27 -08:00
Peter Johnson
4c8c41fdc0
CvSink: Support grayscale images.
...
Also support 4-channel BGRx images and provide better error reporting
on bad images passed to PutFrame.
2016-12-23 22:25:11 -08:00
Peter Johnson
205d3b1d04
Some cameras don't provide the JFIF header, so don't require it.
...
This fixes DHT not being inserted on some images.
2016-12-23 22:21:11 -08:00
Peter Johnson
1575fff07a
MjpegServer: Limit the number of simultaneous clients to 10.
...
This prevents client issues from swamping the network.
2016-12-23 22:01:35 -08:00
Peter Johnson
3d28275675
UsbCamera: Simplify the message passing implementation.
2016-12-23 10:58:11 -08:00
Peter Johnson
6f41b3cde7
UsbCamera: Implement LifeCam HD-3000 exposure quirk.
...
On Linux, the V4L exposure setting is logarithmic and only accepts
certain exact values.
2016-12-22 23:44:40 -08:00
Peter Johnson
ced2608afd
Move ExtCtrlIoctl to UsbCameraProperty::DeviceQuery.
2016-12-22 22:44:46 -08:00
Peter Johnson
adbca532c0
Break up UsbCameraImpl::DeviceProcessCommands().
2016-12-22 22:36:07 -08:00
Peter Johnson
5e38d8f28a
Refactor UsbCameraProperty.
2016-12-22 22:11:54 -08:00
Peter Johnson
d6ef2c04a5
Start refactoring source property implementations.
2016-12-22 21:19:50 -08:00
Peter Johnson
ce69783871
UsbCamera: Scale some properties to make them constently percentages.
...
The "raw" version of these properties are still available, just prefixed
with "raw_".
2016-12-22 20:51:04 -08:00
Peter Johnson
10b13da3da
Refactor USB vendor/product to product string to UsbUtil.h.
...
Also implement reading of /var/lib/usbutils/usb.ids for systems that
have it (e.g. desktop Linux).
2016-12-21 10:56:40 -08:00
Peter Johnson
88afefe464
Avoid crash in SourceImpl constructor.
...
The Frame constructor calls back into SourceImpl (the passed this reference),
and when in-place constructed in the SourceImpl constructor, SourceImpl
is only partially constructed.
2016-12-21 10:56:40 -08:00
Peter Johnson
80abf6bf24
Support per-stream resolution settings.
...
The code now automatically resizes as required.
This change also disconnects camera resolution settings from MJPEG
stream connections; setting the camera resolution can now only be done
via code.
2016-12-20 20:48:31 -08:00
Peter Johnson
8501b7c9e2
CvSourceImpl::CreateProperty(): Use lock_guard instead of unique_lock.
2016-12-18 09:13:52 -08:00
Peter Johnson
e1dabbc2d5
cscore_cpp.cpp: Fix include order.
2016-12-18 09:13:01 -08:00
Peter Johnson
c08a489e27
Improve error message for VIDIOC_STREAMON "no space left on device".
2016-12-18 09:13:01 -08:00
Peter Johnson
28a2ba4bf8
Add external logger interface.
2016-12-18 09:13:01 -08:00
Peter Johnson
2b8b8e7403
Improve logging consistency by using source/sink name throughout.
2016-12-18 09:12:59 -08:00
Peter Johnson
7c2f994a66
Refactor source IsConnected() and connected notification.
2016-12-18 09:05:03 -08:00
Peter Johnson
b5fd15e052
CvSink::GrabFrame(): Add delays like MjpegServer to avoid consuming CPU.
2016-12-04 21:45:37 -08:00
Peter Johnson
ecfc684174
MjpegServer: Increase bad frame wait from 10 to 20 ms.
2016-12-04 21:45:37 -08:00
Peter Johnson
4600ea135c
Frame: Make Data struct public.
2016-12-04 21:45:37 -08:00
Peter Johnson
3b82ba8945
Refactor JPEG functions to JpegUtil.
2016-12-04 21:45:37 -08:00
Peter Johnson
c32fc57ce1
Refactor HTTP utilities.
2016-12-04 21:45:37 -08:00
Peter Johnson
9a8f66e3e5
SourceImpl: Add no-copy PutFrame.
2016-12-04 21:45:37 -08:00
Peter Johnson
ef39713219
Revert "Don't output \r\n before boundary. This throws off some clients."
...
This reverts commit ae8c8ec230 .
2016-12-04 21:45:37 -08:00
Peter Johnson
1f93a4ab4f
Change acronym class names to use MixedCase (UsbCamera, MjpegServer). ( #22 )
2016-12-04 00:08:47 -08:00
Thad House
3625f11e08
Adds C methods that take a cv::Mat* ( #21 )
...
Some implementations of OpenCV use cv::Mat as their native pointer
rather then CvMat, so we need to support both in the C interface
2016-11-30 22:00:44 -08:00
Peter Johnson
ae8c8ec230
Don't output \r\n before boundary. This throws off some clients.
2016-11-18 19:52:22 -08:00
Peter Johnson
ec8c0eb3c2
Fix FPS setting and crash in reapplying settings.
2016-11-18 19:23:35 -08:00
Peter Johnson
3d898dd8f7
MJPEGServer: Fix URI %xx-decoding.
2016-11-18 19:03:35 -08:00
Peter Johnson
df18e178ee
MJPEGServer: Provide a bare-bones HTML root page.
2016-11-18 18:58:03 -08:00
Peter Johnson
71a6e08988
MJPEGServer: Make a couple of tweaks for Axis camera compatibility.
2016-11-18 18:33:49 -08:00
Peter Johnson
a05636d9a6
Add data accessors for USBCamera and MJPEGServer.
...
USBCamera: getPath()
MJPEGServer: getListenAddress() and getPort()
2016-11-18 17:21:03 -08:00
Peter Johnson
5eecbfd9bf
Implement immediate notify on network interfaces event.
2016-11-18 16:27:26 -08:00
Peter Johnson
65514b3028
USBCamera: Update description on reconnect.
2016-11-18 16:16:04 -08:00
Peter Johnson
bad4ca4666
Add event for network interfaces change.
2016-11-18 12:41:08 -08:00
Peter Johnson
5fecc57e8a
Add methods to get the hostname and network interfaces.
2016-11-18 12:41:08 -08:00
Peter Johnson
9945459a41
Notify sink enable and disable events.
2016-11-18 12:41:08 -08:00
Peter Johnson
22c11fad36
Notify source property events.
2016-11-18 12:41:08 -08:00
Peter Johnson
c6b527d452
Notify source connect, disconnect, and video mode changes.
2016-11-18 12:41:08 -08:00
Peter Johnson
8e9911d330
Notify on sink source change.
2016-11-18 12:41:08 -08:00
Peter Johnson
b245725941
Notify on source and sink create and destroy.
2016-11-18 12:41:08 -08:00
Peter Johnson
154ae5dcbf
Notifier: Take Impl rather than handle in notification functions.
...
Also take CS_EventKind rather than RawEvent::Kind.
Still provide the handle methods for the basic events (this is particularly
useful for create and destroy events).
This makes these functions easier to use from within the implementation.
2016-11-18 12:41:08 -08:00