Thad House
a9371a7586
Fix missing exposure property on windows USB cameras ( #1571 )
2019-02-06 22:49:55 -08:00
Peter Johnson
6992f5421f
cscore: Avoid crash if invalid (null) source set in MjpegServer ( #1585 )
...
Fixes robotpy/robotpy-cscore#60
2019-02-03 00:22:07 -08:00
Thad House
910b9f3af7
Add support for camera descriptions on windows ( #1572 )
...
For now, has to force enumerate all cameras to find the matching one
2019-02-01 23:04:12 -08:00
Thad House
09d90b02fb
Remove prints and unecessary items from windows GetNetworkInterfaces ( #1573 )
2019-02-01 23:02:12 -08:00
Peter Johnson
88a09dd13a
cscore: Handle USB camera integer menus ( #1561 )
...
The Pi Camera is one of these. Previously, integers were just being
cast to a string instead of formatted as a string.
2019-01-24 22:46:29 -08:00
Peter Johnson
05d6660a6b
cscore: Add config json to VideoSink ( #1543 )
...
Same format as VideoSource.
Refactor properties json handling into PropertyContainer.
2019-01-11 20:33:05 -08:00
Peter Johnson
1349dd4bd8
Make MjpegServer functions public ( #1545 )
2019-01-11 17:53:44 -08:00
Thad House
308bdbe298
cscore: Windows UsbCamera: Use custom windows message for initial connection ( #1534 )
...
WM_CREATE is being called at a time where the message pump cannot be called back into.
2019-01-09 22:52:24 -08:00
Peter Johnson
f889b45d59
cscore: MjpegServer: Fix FPS limiting ( #1536 )
...
This uses a 1-second window average to try to hit the desired FPS.
2019-01-09 22:50:34 -08:00
Dustin Spicuzza
3635116049
cscore: set charset of displayed pages ( #1520 )
...
All of our strings are UTF-8, but the default charset for HTML<5 was ISO-8859-1
2018-12-30 23:49:24 -08:00
Peter Johnson
6105873cbe
Provide alternate device paths info for USB cameras ( #1519 )
...
This is primarily for use on Linux to get by-id or by-path device names.
This information is now part of UsbCameraInfo.
A new entry point was added to UsbCamera to get that camera's UsbCameraInfo.
The alternate paths are also returned in EnumerateUsbCameras.
2018-12-30 11:48:18 -08:00
Peter Johnson
e1bf623997
cscore: handle HTTP stream hangs ( #1513 )
...
Automatically disconnect the HTTP stream if no frames have been received
for 1 second.
2018-12-29 14:08:45 -08:00
Peter Johnson
73de3364b7
AxisCamera constructor: add StringRef overload ( #1458 )
...
This avoids a conversion ambiguity when StringRef is passed.
2018-11-30 22:35:56 -08:00
Thad House
c405188052
Fix directory iterators not working correctly ( #1454 )
...
The size of the directory_entry was different between translation units.
This was caused by the FILE_OFFSET_BITS macro when building wpiutil.
Removing that fixes the issue.
Should fix NavX USB issues.
2018-11-29 00:24:10 -08:00
Thad House
69cb53b51b
Add support for USB Webcams on Windows ( #1390 )
2018-11-17 23:16:35 -08:00
Tyler Veness
55493b0c18
Fix polymorphic exception types being caught by value ( #1426 )
...
Catching these by value breaks the build with GCC 8.2.1.
2018-11-12 19:39:49 -08:00
Thad House
ecd376be4c
Export C functions from JNI statically linked library ( #1425 )
...
The JNI libraries are useful from other tools, so they should contain the C functions.
2018-11-12 19:38:35 -08:00
Peter Johnson
9bc998f4b0
cscore: Add JSON for source settings ( #1423 )
...
This allows save and restore of camera settings. The restore is a bit
smarter than the save.
* Fix mime types in mjpeg server
* wpiutil: WPI_LOG: Make sure level is an unsigned int
2018-11-10 20:30:02 -08:00
Peter Johnson
193b0a222c
cscore: Add Shutdown() function
...
This allows ordered shutdown / destruction of sources and sinks prior to
global singleton destruction.
2018-11-09 23:33:55 -08:00
Peter Johnson
19caeca990
cscore: Use more standard naming for Instance public variables
2018-11-09 23:33:55 -08:00
Peter Johnson
0abae17653
cscore: Refactor sink and source creation
...
Also make sources and sinks members of Instance private, with appropriate
accessor functions.
2018-11-09 23:33:55 -08:00
Peter Johnson
81d10bc656
cscore: Build examples on Windows ( #1421 )
2018-11-09 22:42:04 -08:00
Peter Johnson
b6830638df
NetworkListener: use Pimpl idiom ( #1405 )
...
This enables different platforms to use very different implementations.
2018-11-02 13:14:06 -07:00
Peter Johnson
746f950a0b
Remove ifdefs from linux NetworkListener ( #1404 )
2018-11-01 23:27:22 -07:00
Peter Johnson
e27d6d7bb8
cscore: Change impl to only one singleton ( #1398 )
...
This avoids a number of shutdown use-after-free races by controlling the
destruction order. It also is a prerequisite to making the internal
interfaces mockable for unit testing.
2018-10-31 20:22:58 -07:00
Peter Johnson
9a1af132bf
Unify GetHostname() and use libuv implementation ( #1391 )
2018-10-28 19:01:48 -07:00
Thad House
a8aacd3657
Update build setup for raspbian and debug binaries ( #1384 )
...
- Build both debug and release binaries
- Append "d" to debug libraries in the style of opencv
- Split shared and static classifiers
- Add raspbian support
2018-10-27 00:19:38 -07:00
Peter Johnson
8ff81f5a2a
cscore: Separate platform-specific sources ( #1387 )
2018-10-23 22:59:47 -07:00
Peter Johnson
18c8cce6a7
SafeThread: Avoid use-after-free risk in thread shutdown ( #1355 )
...
Use shared_ptr to keep data alive until the thread has terminated.
2018-10-05 16:32:43 -07:00
Tyler Veness
8b1274d744
Replace typedefs in C++ with using declarations ( #1339 )
...
These are more readable than typedefs. C headers were left alone.
2018-09-26 00:09:25 -07:00
Peter Johnson
6df7425440
cmake: Compile cscore and wpiutil examples ( #1286 )
2018-08-19 23:22:52 -07:00
Peter Johnson
0a0d9245e2
cscore: Add connection strategy to sources ( #1252 )
...
By default, sources automatically manage their connection based on whether
any sinks are connected. This change allows the user to keep a connection
open or force it closed regardless of the number of connected sinks.
2018-07-29 21:18:45 -07:00
Peter Johnson
0e9172f9a7
Fix many errorprone warnings ( #1247 )
...
This fixes two real bugs:
- TimedRobot had a m_period that was hiding the IterativeRobotBase m_period
and was not getting initialized.
- PDPSim was swapping two parameters to getCurrent()
2018-07-29 16:47:22 -07:00
Peter Johnson
195e101816
cscore: Use Twine instead of StringRef in API ( #1244 )
2018-07-29 12:53:41 -07:00
Peter Johnson
9408fd5176
Add Doxygen comments for namespaces ( #1245 )
2018-07-29 12:49:28 -07:00
Thad House
00c2cd7dab
Improve JNI loading efficiency ( #1224 )
...
A hash is stored for each native library with the name libraryName.hash.
If the library is not found on the system search path, it is extracted to a cache directory.
Extracted libraries are named with the hash appended, so the library will not be
re-extracted if one with the same hash already exists.
Hashing without the hash file requires double traversing if the file is not in the cache,
but it is still faster than creating a new file in most cases. This won't be needed
after opencv is updated to provide a hash as well.
2018-07-29 10:20:41 -07:00
Austin Shalit
011f0ff536
UsbCamera: Make setConnectVerbose public and add test ( #1240 )
2018-07-29 00:48:00 -07:00
Peter Johnson
f2393feeef
cscore: Documentation cleanups ( #1236 )
...
Reformat the C++ documentation to use the normal comment style and
add doxygen grouping.
2018-07-28 17:35:33 -07:00
Peter Johnson
6b37ca9f9a
UsbCamera: Allow silencing of Connecting message ( #1231 )
2018-07-28 14:57:41 -07:00
Peter Johnson
8cbe7a6257
cscore: Move CvSourceImpl placeholders into SourceImpl ( #1230 )
...
This makes it easier to implement new non-camera Sources.
2018-07-27 23:15:35 -07:00
Peter Johnson
932308b497
MjpegServer: Add ability to set compression, etc in code ( #1229 )
...
This allows code to set the stream compression, resolution, and FPS used if
not specified in HTTP parameters by the client.
2018-07-27 23:00:15 -07:00
Peter Johnson
9398278250
cscore: Add properties support to VideoSink ( #1228 )
...
Refactor the Property internals into PropertyContainer.
2018-07-27 22:12:30 -07:00
Peter Johnson
c9a75a119a
cscore: Support multiple levels of JPEG compression ( #1223 )
...
This allows two streams with different compression levels, and also allows
a stream to receive a different compression level than provided by a JPEG
camera (decompress and recompress).
2018-07-27 21:51:40 -07:00
Peter Johnson
04ee8dbe79
UsbCamera: In JPEG mode, get size from image instead of mode ( #1222 )
...
Some cameras will accept a different resolution as the mode but then provide
JPEG images of a different size. Trust the JPEG image size if available.
This also validates the JPEG image is actually JPEG.
2018-07-27 21:50:28 -07:00
Thad House
57fc614074
Compile C headers in C mode, and fix cscore C ( #1179 )
2018-07-08 15:42:59 -07:00
Austin Shalit
9108a93598
Switch non-integration tests to JUnit 5 ( #1120 )
2018-06-11 15:01:49 -07:00
Austin Shalit
e548a5f705
Update and enable PMD 6.3.0 ( #1107 )
2018-06-03 10:00:53 -07:00
Thad House
307da3ad2d
Simplify allocation of JNI global classes and exceptions ( #1110 )
...
Helps ensure they get freed properly (We have had a few cases before where this wasn't the case).
2018-05-29 15:44:16 -07:00
Austin Shalit
40cc743cc7
Enable checkstyle on cscore, ntcore, wpiutil ( #1032 )
...
Also update to version 8.10.
2018-05-24 00:31:04 -04:00
Thad House
cbaff52850
Implements AutoCloseable for types, replacing free() ( #1048 )
2018-05-22 23:33:17 -07:00