Skip to content

Releases: OpenFTC/EasyOpenCV

v1.7.3

15 Jun 18:44
Compare
Choose a tag to compare
  • Updates libjpeg-turbo to 3.0.3
  • Updates OpenCV to v4.10.0
  • Show more detail about camera supported resolutions and formats when user requests unsupported configuration
  • Show warning if performance could be improved by using MJPEG format

v1.7.2

19 Jan 02:48
Compare
Choose a tag to compare

Fix race conditions when handling exception during viewport insertion

v1.7.1

20 Dec 22:56
Compare
Choose a tag to compare
  • IMPORTANT NOTE: SDK v9.0 or higher is now required!
  • Build against FTC SDK v9.x; remove support for Vuforia integration
    • Fixes inability to use CameraFactory in OnBotJava due to reference of Vuforia classes no longer in SDK
    • Fixes entire RC app crash due to ABI breakage when user pipeline throws an exception
  • Handle exceptions in user-provided canvas annotators the same way exceptions in pipelines are handled to prevent entire RC app crash
  • Use the modern stacktrace display when handling user exceptions instead of the legacy ESTOP telemetry message

v1.7.0

17 Jun 17:36
Compare
Choose a tag to compare
  • Adds new NATIVE_VIEW viewport renderer option
    • Attempts to provide a balance between the stability of the SOFTWARE renderer and the speedup seen with the GPU_ACCELERATED renderer
    • Drawing is done on the UI thread using the GPU accelerated main canvas, instead of making another canvas as the GPU_ACCELERATED renderer does
  • Uses anti-aliasing when drawing the statistics overlay to make text more readable on low resolution screens
  • Adds ability for user pipelines to hook into the Canvas rendering of frames to the live view
    • This is an alternate means besides OpenCV calls to draw annotations from a pipeline
    • Allows drawing annotations at the full screen resolution even if performing image processing at a much lower resolution (e.g. 320x240). This allows e.g. drawing actually legible text on a low res image feed.
    • Because live view rendering happens on a different thread than the image processing, in order to make use of this feature, pipelines must call requestViewportDrawHook(object) during processFrame(), providing any type of context object they may wish which encapsulates the data needed to draw the annotations. Pipelines then also need to override onDrawFrame(...) which can receive that same object back, and perform the annotation drawing there.
    • The image sent to the DriverStation is now rendered using an offsceen canvas to ensure that annotations rendered using the canvas will be visible on the DS as well.
  • Adds support for MJPEG streaming for webcams
    • Requires FTC SDK v8.2
    • Uses libjpeg-turbo for JPEG decompression routine
    • Allows for streaming at full frame rate at higher resolutions (e.g. 1280x720) which were previously limited to 10FPS due to bandwidth constraints
    • Improves ability to use multiple cameras simultaneously by reducing bandwidth usage
    • CPU load will be increased due to additional overhead from JPEG decompression
    • Uncompressed streaming is still the default; in order to request MJPEG, use the overloaded startStreaming() method in OpenCvWebcam which takes a StreamFormat argument
  • Fixes a deadlock when trying to switch cameras when using OpenCvSwitchableWebcam
  • Fixes cases where mutex might not be released in internal camera v2 implementation
  • Updates OpenCV-Repackaged transitive dependency to 4.7.0-A

v1.6.2

28 Feb 02:19
Compare
Choose a tag to compare
  • Add generic getControl() method to OpenCvWebcam
  • Fix corrupted camera frame delivery when using Camera2 API on some devices
  • Prevent deadlock if pipeline tried to perform a synchronized UI thread operation and the device orientation was changed

v1.6.1

24 Feb 03:18
Compare
Choose a tag to compare
  • Fixes bug where if using a webcam, frames were not delivered to user pipeline when calling startStreaming() after a previous call to stopStreaming() even though the stream was in fact restarted successfully (#65)
  • Scales viewport statistics overlay based on pixel density so that it's not overly large on some devices

v1.6.0

07 Feb 21:16
Compare
Choose a tag to compare
  • Add support for getting WhiteBalanceControl for webcams
  • Handle pipeline returning empty Mat for viewport display with an error message instead of an unclear exception
  • Add SENSOR_NATIVE to camera rotation enum
  • Desynchronize setPipeline() from active pipeline frame processing (fixes #58)
  • Synchronize getting webcam controls with opening/closing camera
  • Add support for getting the CameraCalibrationIdentity for an OpenCvWebcam
  • Improve memory leak detection warning

v1.5.3

22 Dec 18:03
Compare
Choose a tag to compare
  • Dependency on OpenCV-Repackaged has been changed to a version which bundles the OpenCV native library with the artifact instead of requiring it to be copied to external storage manually. This change was made because:
    1. The original reason for not bundling the native library was to reduce APK size for wireless deploy time, but that was something that it seems I cared about more than anyone else, and people often seem to have difficulty with setting it up properly for some reason
    2. There have been multiple requests for 64-bit support, which would have made the dynamic loading from external storage even more complicated
  • 64-bit support added
  • Increases default webcam permission timeout to 5 seconds
  • Removes app name resource strings which shouldn't have ever been there in the first place

OBJ USERS PLEASE NOTE: A build for OBJ is not provided for v1.5.3 since there is functionally no code difference for OBJ users vs. the OBJ build available for 1.5.2.

v1.5.2

14 Sep 15:16
Compare
Choose a tag to compare
  • Fixes compatibility with SDK v8.0. You MUST use v1.5.2 (or later) for SDK 8.0. Previous versions Will not work!! Backwards compatibility is NOT maintained for this release unfortunately!
  • Fixes possible leak of framebuffer when viewport render thread was restarted

v1.5.1

10 Nov 03:12
e2d0e69
Compare
Choose a tag to compare

Fixes crash with SDK v7.0 when memory leak warning was generated