edgetpuvision (7-1) mendel-eagle; urgency=medium

  * Switching from python3-edgetpu to python3-pycoral.
  * Compatible with Frogfish release.

 -- Coral Team <coral-support@google.com>  Tue, 10 Nov 2020 13:00:16 -0800

edgetpuvision (6-4) mendel-eagle; urgency=medium

  * Switch to native glbox.
  * Switch to v4l2convert for HW decoder format conversion.

 -- Coral Team <coral-support@google.com>  Thu, 29 Oct 2020 13:04:30 -0700

edgetpuvision (6-3) mendel-eagle; urgency=medium

  * Update support for the mipi camera pipeline.
  * Use glbox as the scaler.

 -- Coral Team <coral-support@google.com>  Thu, 17 Sep 2020 19:26:14 -0700

edgetpuvision (6-2) mendel-day; urgency=medium

  * Update scaler to use glcolorscale and v4l2convert.

 -- Coral Team <coral-support@google.com>  Mon, 08 Jun 2020 16:25:45 -0700

edgetpuvision (6-1) mendel-day; urgency=medium

  * Cut for day release.

 -- Coral <coral-support@google.com>  Mon, 07 Oct 2019 13:21:30 -0500

edgetpuvision (5-1) mendel-chef; urgency=medium

  * Honor bufferpool stride alignment when rendering overlays.

 -- Coral <coral-support@google.com>  Wed, 03 Apr 2019 17:08:25 -0700

edgetpuvision (4-1) mendel-chef; urgency=medium

  * Disable QoS for all pipelines that render to the display.
  * Bump the changelog version for Chef build #3.

 -- Coral <coral-support@google.com>  Tue, 02 Apr 2019 17:08:25 -0700

edgetpuvision (3-1) mendel-chef; urgency=medium

  * Disable QoS events in live camera pipeline.
  * Bump the changelog version for Chef build #2.

 -- Coral <coral-support@google.com>  Thu, 28 Mar 2019 17:08:25 -0700

edgetpuvision (2-1) mendel-chef; urgency=medium

  * Render full size overlays, draw with glvideomixer
  * Add visual separation between text lines.

 -- Coral <coral-support@google.com>  Tue, 19 Mar 2019 17:08:25 -0700

edgetpuvision (1.3-1) mendel-beaker; urgency=medium

  * Add --loop command line parameter for video.
  * Get rid of start/stop buttons in web UI.
  * Set window title to 'Coral'
  * Add parameter to disable SIGINT handling from run_pipeline().
  * Add env var to override index.html file location.
  * Set stdin back to blocking state on exit.
  * Set default streaming resolution to 640x480.
  * Fix missing dependencies.
  * Upload rendered overlays as textures and display with glimagesink.
  * Display model title in overlay.
  * Update classification overlay rendering.
  * Remove demo script from edgetpuvision.
  * Use monospace font to calculate label backround rects.
  * Add Coral logo, fonts, and initial css style.
  * Bug fix: use white color when labels file is not specified.
  * Move info to the bottom left corner on black background.
  * Add shadow to bounding boxes.
  * Add custom bbox color command line parameter.
  * Make server scripts functionally compatible with console ones.
  * Making pipeline code more reusable.
  * Use different colors for different detected objects.
  * Add convenient object representation for detection.
  * Add --bitrate command line param.
  * Simplify code that renders gstreamer pipelines.
  * Remove code redundancy and group some params together.
  * Get rid of explicit use of vpudec filter.
  * Add correct favicon and change web page title.
  * Support relative filenames and paths with spaces.
  * Add width and height values to generated SVGs.
  * Reuse inference code in streaming server.
  * Add headless gstreamer pipelines.
  * Add bounding box area filtering.
  * Move gstreamer pipelines into a separate file.
  * Fix problem with using JPEG images as a source.

 -- Coral <coral-support@google.com>  Fri, 22 Feb 2019 13:56:05 -0800

edgetpuvision (1.2-1) mendel-beaker; urgency=medium

  * Update command line examples and help strings.

 -- Coral <coral-support@google.com>  Mon, 28 Jan 2019 15:01:00 -0800

edgetpuvision (1.1-1) mendel-beaker; urgency=medium

  * Better gstreamer pipelines
  * Inference on image files
  * Streaming from .mp4 file
  * Streaming from any v4l2 source
  * Switching between .tflite models in runtime
  * tpudemo script
  * Simplified API based on python generators

 -- Coral <coral-support@google.com>  Thu, 24 Jan 2019 14:27:56 -0800

edgetpuvision (1.0-1) unstable; urgency=low

  * Initial release.

 -- Coral <coral-support@google.com>  Wed, 16 Jan 2019 21:25:55 +0000
