Commit Graph

172 Commits

Author SHA1 Message Date
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
0ce0855a6f Java: check for null and use new jni_util features. 2016-12-18 09:13:51 -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
bdaf60b2d6 Replace tabs with spaces in gradle files. 2016-12-18 09:05:03 -08:00
Peter Johnson
7c2f994a66 Refactor source IsConnected() and connected notification. 2016-12-18 09:05:03 -08:00
Peter Johnson
81fd0eefac usbcvstream example: Print error from GrabFrame. 2016-12-04 21:45:37 -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
Thad House
da68fea081 Fixes shared wpiutil switch on athena (#24) 2016-12-04 21:44:06 -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
7a587390ba Fixes OpenCV on windows when we get to it. (#23) 2016-12-04 00:08:26 -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
Thad House
1332ba3ad2 Adds JNI symbol check to ensure we don't miss any definitions (#19) 2016-11-27 23:17:26 -08:00
Thad House
a19b1b9341 Adds data accessor functions to JNI (#18) 2016-11-19 19:02:20 -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
881d55f858 VideoListener: Add move assignment operator. 2016-11-18 15:10:37 -08:00
Peter Johnson
cc20d9d0fe Add no-parameter constructors for specific sources/sinks. 2016-11-18 14:33:47 -08:00
Peter Johnson
35aa544415 VideoEvent: Make sourceHandle and sinkHandle public. 2016-11-18 13:20:50 -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
e1f4e3d2d7 Fix mapping into Java enums.
The values are bitmask not contiguous, so we need to use a switch instead
of an array.
2016-11-18 12:41:08 -08:00
Peter Johnson
5ace9e4189 Renumber event kind values. 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
Peter Johnson
bae2037086 Handle: Add methods to get Data struct from Impl pointer.
Also make a number of methods in UnlimitedHandleResource inline.
2016-11-18 12:41:08 -08:00