Skip to content
This repository has been archived by the owner on Jan 16, 2024. It is now read-only.

Releases: alexa/avs-device-sdk

v1.2.1

17 Nov 04:03
Compare
Choose a tag to compare
  • Enhancements

    • Added comments to AlexaClientSDKConfig.json. These descriptions provide additional guidance for what is expected for each field.
    • Enabled pause and resume controls for Pandora.
  • Bug Fixes

    • Bug fix for issue #329 - HTTP2Transport instances no longer leak when `SERVER_SIDE
    • Bug fix for issue #189 - Fixed a race condition in the Timer class that sometimes
    • Bug fix for a race condition that caused SpeechSynthesizer to ignore subsequent Speak directives.
    • Bug fix for corrupted mime attachments.

v1.2

31 Oct 18:04
Compare
Choose a tag to compare
  • Enhancements

    • Updated MediaPlayer to solve stability issues
    • All capability agents were refined to work with the updated MediaPlayer
    • Added the TemplateRuntime capability agent
    • Added the SpeakerManager capability agent
    • Added a configuration option ("sampleApp":"endpoint") that allows the endpoint that SampleApp connects to to be specified without changing code or rebuilding
    • Added very verbose capture of libcurl debug information
    • Added an observer interface to observer audio state changes from AudioPlayer
    • Added support for StreamMetadataExtracted Event. Stream tags found in the stream are represented in JSON and sent to AVS
    • Added to the SampleApp a simple GuiRenderer as an observer to the TemplateRuntime Capability Agent
    • Moved shared libcurl functionality to AVSCommon/Utils
    • Added a CMake option to exclude tests from the "make all" build. Use "cmake
      -DACSDK_EXCLUDE_TEST_FROM_ALL=ON" to enable it. When this option is enabled "make unit" and "make integration" still could be used to build and run the tests
  • Bug fixes:

    • Previously scheduled alerts now play following a restart
    • General stability fixes
    • Bug fix for CertifiedSender blocking forever if the network goes down while it's trying to send a message to AVS
    • Fixes for known issue of Alerts integration tests fail: AlertsTest.UserLongUnrelatedBargeInOnActiveTimer and AlertsTest.handleOneTimerWithVocalStop
    • Attempting to end a tap-to-talk interaction with the tap-to-talk button wouldn't work
    • SharedDataStream could encounter a race condition due to a combination of a blocking Reader and a Writer closing before writing any data
    • Bug-fix for the ordering of notifications within alerts scheduling. This fixes the issue where a local-stop on an alert would also stop a subsequent alert if it were to begin without delay
  • Known Issues

    • Capability agent for Notifications is not included in this release
    • Inconsistent playback behavior when resuming content ("Alexa, pause." / "Alexa, resume."). Specifically, handling playback offsets, which causes the content to play from the start. This behavior is also occasionally seen with "Next" /
      "Previous".
    • ACL's asynchronous receipt of audio attachments may manage resources poorly in scenarios where attachments are received but not consumed.
    • Music playback failures may result in an error Text to Speech being rendered repeatedly
    • Reminders and named timers don't sound when there is no connection
    • GUI cards don't show for Kindle

v1.1.0

03 Oct 17:47
Compare
Choose a tag to compare
  • Enhancements

    • Better GStreamer error reporting. MediaPlayer used to only report MEDIA_ERROR_UNKNOWN, now reports more specific errors as defined in ErrorType.h.
    • Codebase has been formatted for easier reading.
    • DirectiveRouter::removeDirectiveHandler() signature changed and now returns a bool indicating if given handler should be successfully removed or not.
    • Cleanup of raw and shared pointers in the creation of Transport objects.
    • HTTP2Streams now have IDs assigned as they are acquired as opposed to created, making associated logs easier to interpret.
    • AlertsCapabilityAgent has been refactored.
      • Alert management has been factored out into an AlertScheduler class.
    • Creation of Reminder (implements Alert) class.
    • Added new capability agent for PlaybackController with unit tests.
    • Added Settings interface with unit tests.
    • Return type of getOffsetInMilliseconds() changed from int64_t to std::chronology::milliseconds.
    • Added AudioPlayer unit tests.
    • Added teardown for all Integration tests except Alerts.
    • Implemented PlaylistParser.
  • Bug fixes:

  • Known Issues

  • Native components for the following capability agents are not included in this release: Speaker, TemplateRuntime, and Notifications

  • ACL's asynchronous receipt of audio attachments may manage resources poorly in scenarios where attachments are received but not consumed.

  • When an AttachmentReader does not deliver data for prolonged periods, MediaPlayer may not resume playing the delayed audio.

  • Without the refresh token in the JSON file, the sample app crashes on start up.

  • Alerts do not play after restarting the device.

  • Alexa's responses are cut off by about half a second when asking "What's up" or barging into an active alarm to ask the time.

  • Switching from Kindle to Amazon Music after pausing and resuming Kindle doesn't work.

  • Pause/resume on Amazon Music causes entire song to start over.

  • Stuck in listening state if ExpectSpeech comes in when the microphone has been turned off.

  • Pausing and resuming Pandora causes stuttering, looped audio.

  • Audible features are not fully supported.

  • Recognize event after regaining network connection and during an alarm going off can cause client to get stuck in Recognizing state.

  • Three Alerts integration tests fail: handleMultipleTimersWithLocalStop, AlertsTest.UserLongUnrelatedBargeInOnActiveTimer, AlertsTest.handleOneTimerWithVocalStop

  • MediaPlayerTest.testSetOffsetSeekableSource unit test fails intermittently on Linux.

v1.0.3

20 Sep 01:22
Compare
Choose a tag to compare

v1.0.2

24 Aug 21:05
Compare
Choose a tag to compare

Removed code from AIP which propagates ExpectSpeech initiator strings to subsequent Recognize events. This code will be re-introduced when AVS starts sending initiator strings.

v1.0.1

17 Aug 00:38
Compare
Choose a tag to compare
  • Added a fix to the sample app so that the StateSynchronization event is the first that gets sent to AVS.
  • Added a POST_CONNECTED enum to ConnectionStatusObserver.
  • StateSychronizer now automatically sends a StateSynchronization event when it receives a notification that ACL is CONNECTED.
  • Added make install for installing the AVS Device SDK.
  • Added an optional make networkIntegration for integration tests for slow network (only on Linux platforms).
  • Added shutdown management which fully cleans up SDK objects during teardown.
  • Fixed an issue with AudioPlayer barge-in which was preventing subsequent audio from playing.
  • Changed Mediaplayer buffering to reduce stuttering.
  • Known Issues:
    • Connection loss during listening keeps the app in that state even after connection is regained. Pressing ‘s’ unsticks the state.
    • Play/Pause media restarts it from the beginning.
    • SpeechSynthesizer shows wrong UX state during a burst of Speaks.
    • Quitting the sample app while AudioPlayer is playing something causes a segmentation fault.
    • AudioPlayer sending PlaybackPaused during flash briefing.
    • Long Delay playing live stations on iHeartRadio.
    • Teardown warnings at the end of integration tests.

v1.0

08 Aug 00:13
Compare
Choose a tag to compare
  • Added AudioPlayer capability agent.
    • Supports iHeartRadio.
  • StateSynchronizer has been updated to better enforce that System.SynchronizeState is the first Event sent on a connection to AVS.
  • Additional tests have been added to ACL.
  • The Sample App has been updated with several small fixes and improvements.
  • ADSL was updated such that all directives are now blocked while the handling of previous SpeechSynthesizer.Speak directives complete. Because any directive may now be blocked, the preHandleDirective() / handleDirective() path is now used for handling all directives.
  • Fixes for the following GitHub issues:
  • A bug causing ACL to not send a ping to AVS every 5 minutes, leading to periodic server disconnects, was fixed.
  • Subtle race condition issues were addressed in the Executor class, resolving some intermittent crashes.
  • Known Issues
    • Native components for the following capability agents are not included in this release: PlaybackController, Speaker, Settings, TemplateRuntime, and Notifications.
    • MediaPlayer
      • Long periods of buffer underrun can cause an error related with seeking and subsequent stopped playback.
      • Long periods of buffer underrun can cause flip flopping between buffer_underrun and playing states.
      • Playlist parsing is not supported unless -DTOTEM_PLPARSER=ON is specified.
    • AudioPlayer
      • Amazon Music, TuneIn, and SiriusXM are not supported in this release.
      • Our parsing of urls currently depends upon GNOME/totem-pl-parser which only works on some Linux platforms.
    • AlertsCapabilityAgent
      • Satisfies the AVS specification except for sending retrospective Events. For example, sending AlertStarted Event for an Alert which rendered when there was no internet connection.
    • Sample App:
      • Any connection loss during the Listening state keeps the app stuck in that state, unless the ongoing interaction is manually stopped by the user.
      • The user must wait several seconds after starting up the sample app before the sample app is properly usable.
    • Tests:
      • SpeechSynthesizer unit tests hang on some older versions of GCC due to a tear down issue in the test suite
      • Intermittent Alerts integration test failures caused by rigidness in expected behavior in the tests

v0.6

19 Jul 23:40
Compare
Choose a tag to compare

Changes in this update

  • Added a sample app that leverages the SDK.
  • Added an implementation of the Alerts capability agent.
  • Added the DefaultClient class.
  • Added the following classes to support directives and events in the Systems interface: StateSynchronizer, EndpointHandler, and ExceptionEncounteredSender.
  • Added unit tests for ACL.
  • Updated MediaPlayer to play local files given an std::istream.
  • Changed build configuration from Debug to Release.
  • Removed DeprecatedLogger class.
  • Known Issues:
    • MediaPlayer: Our GStreamer based implementation of MediaPlayer is not fully robust, and may result in fatal runtime errors, under the following conditions:
      • Attempting to play multiple simultaneous audio streams
      • Calling MediaPlayer::play() and MediaPlayer::stop() when the MediaPlayer is already playing or stopped, respectively.
      • Other miscellaneous issues, which will be addressed in the near future
    • AlertsCapabilityAgent:
      • This component has been temporarily simplified to work around the known MediaPlayer issues mentioned above
      • Fully satisfies the AVS specification except for sending retrospective Events, for example, sending AlertStarted for an Alert which rendered when there was no Internet connection
      • This component is not fully thread-safe, however, this will be addressed shortly
      • Alerts currently run indefinitely until stopped manually by the user. This will be addressed shortly by having a timeout value for an alert to stop playing.
      • Alerts do not play in the background when Alexa is speaking, but will continue playing after Alexa stops speaking.
    • Sample App:
      • Without the refresh token being filled out in the JSON file, the sample app crashes on start up.
      • Any connection loss during the Listening state keeps the app stuck in that state, unless the ongoing interaction is manually stopped by the user.
      • At the end of a shopping list with more than 5 items, the interaction in which Alexa asks the user if he/she would like to hear more does not finish properly.
    • Tests:
      • SpeechSynthesizer unit tests hang on some older versions of GCC due to a tear down issue in the test suite
      • Intermittent Alerts integration test failures caused by rigidness in expected behavior in the tests

v0.5

24 Jun 00:08
Compare
Choose a tag to compare

Release 0.5

Changes in this update

  • Added a getConfiguration() method to DirectiveHandlerInterface to register Capability Agents with Directive Sequencer.
  • Fix race condition with reading attachments before a writer exists.
  • Use of new Logging abstraction layer in modules - ADSL,AFML,ContextManager,AuthDelegate,AIP,KWD,Mediaplayer.
  • Added ACL stream processing with Pause and redrive.
  • Removed the dependency of ACL Library on Authdelegate.
  • Added and interface to allow ACL to Add/Remove ConnectionStatusObserverInterface.
  • Fixed compile errors in KittAi, DirectiveHandler and compiler warnings in AIP test.
  • Corrected formatting on the files.
  • Fixes for the following Github issues
    • #21 MessageRequest callbacks never triggered if disconnected
    • #25 AttachmentReader::read() returns ReadStatus::CLOSED if an AttachmentWriter has not been created yet

v0.4.1

09 Jun 23:51
Compare
Choose a tag to compare

Release 0.4.1