-
Notifications
You must be signed in to change notification settings - Fork 608
Certification failed due to offset report not correct when playing music #973
Comments
I put the client side log:
FYI. I'm using gstream 1.12.3 |
Hello subjectxbj, Thank you for bringing this to our attention! Can you tell us what version your are experiencing this issue with? Thank you, |
Hello again subjectxbj, I was able to reproduce this with v1.9.0. We will continue to investigate. Thank you again, |
@scotthea-amazon, Thanks |
Hi @subjectxbj , can you tell me which release version did you use for this case? In v1.90, there was a fix for the incorrect playbackfinished offset. |
The out of order issue could be different |
Hi @visayamv , I'm using 1.9.0. So it seems this issue still exist on 1.9.0. |
@subjectxbj , |
Hi @subjectxbj , based on your log you have received an error when the playbackfinished event occurred and the offset is being queried from the gstreamer pipeline:
I was hoping if you can provide additional logging for this as I try to investigate the state of the gstreamer pipeline when this issue happens. Can you please open the Gstreamer verbose logging and also submit ALL the debug logs generated by SampleApp? You can do the following: export GST_DEBUG=6 #On your sample app build directory Please reproduce the failure case and upload the debug.log file here. Thanks! |
Yes, that is right |
Hi @visayamv , |
Hi @subjectxbj , that error can appear when the music is paused or has not started yet. It should not fail when the music finishes. I have compared my logs to yours and also noticed this error. The gst_element_query_position failure on saveOffserBeforeTeardown does not appear in my log when the song finishes so it was able to get the offset value properly. But when the song starts or is paused that error appears |
Hi @subjectxbj, have you had the chance to try the new build yet? Thanks! |
Hi @celinval ,
|
Changes in this update: **Enhancements** * New optional configuration for [EqualizerController](https://github.com/alexa/avs-device-sdk/blob/v1.10.0/Integration/AlexaClientSDKConfig.json#L154). The EqualizerController interface allows you to adjust equalizer settings on your product, such as decibel (dB) levels and modes. * Added reference implementation of the EqualizerController for GStreamer-based (MacOS, Linux, and Raspberry Pi) and OpenSL ES-based (Android) MediaPlayers. Note: In order to use with Android, it must support OpenSL ES. * New optional configuration for the [TemplateRuntime display card value](https://github.com/alexa/avs-device-sdk/blob/v1.10.0/Integration/AlexaClientSDKConfig.json#L144). * A configuration file generator script, `genConfig.sh` is now included with the SDK in the **tools/Install** directory. `genConfig.sh` and it's associated arguments populate `AlexaClientSDKConfig.json` with the data required to authorize with LWA. * Added Bluetooth A2DP source and AVRCP target support for Linux. * Added Amazon for Business (A4B) support, which includes support for handling the new [RevokeAuthorization](https://developer.amazon.com/docs/alexa-voice-service/system.html#revokeauth) directive in the Settings interface. A new CMake option has been added to enable A4B within the SDK, `-DA4B`. * Added locale support for IT and ES. * The Alexa Communication Library (ACL), `CBLAUthDelegate`, and sample app have been enhanced to detect de-authorization using the new `z` command. * Added `ExternalMediaPlayerObserver`, which receives notification of player state, track, and username changes. * `HTTP2ConnectionInterface` was factored out of `HTTP2Transport` to enable unit testing of `HTTP2Transport` and re-use of `HTTP2Connection` logic. **Bug Fixes** * Fixed a bug in which `ExternalMediaPlayer` adapter playback wasn't being recognized by AVS. * [Issue 973](#973) - Fixed issues related to `AudioPlayer` where progress reports were being sent out of order or with incorrect offsets. * An `EXPECTING`, state has been added to `DialogUXState` in order to handle `EXPECT_SPEECH` state for hold-to-talk devices. * [Issue 948](#948) - Fixed a bug in which the sample app was stuck in a listening state. * Fixed a bug where there was a delay between receiving a `DeleteAlert` directive, and deleting the alert. * [Issue 839](#839) - Fixed an issue where speech was being truncated due to the `DialogUXStateAggregator` transitioning between a `THINKING` and `IDLE` state. * Fixed a bug in which the `AudioPlayer` attempted to play when it wasn't in the `FOREGROUND` focus. * `CapabilitiesDelegateTest` now works on Android. * [Issue 950](#950) - Improved Android Media Player audio quality. * [Issue 908](#908) - Fixed compile error on g++ 7.x in which includes were missing.
Happy to hear @subjectxbj! I'm going to close this issue but feel free to reopen it if you find the same problem again. |
@subjectxbj , the out-of-order and incorrect offsets in progressReport* events have been fixed in 1.10. So please upgrade to 1.10. |
IMPORTANT: Before you create an issue, please take a look at our Issue Reporting Guide.
Briefly summarize your issue:
AVS certification team reported some blocker bugs on our unit. Some are related with the offiset report when playing music.
Issue 1: "progressReportDelayElapsed" is sent before "playbackStarted".
I checked the code, seems the timer of "progressReportDelayElapsed" is started right after receiving the "Play" directive. But actually the alexa client will take some seconds to download the audio stream and then start play and send "playbackStarted" once the audio is actually played. So if the value of "progressReportDelayInMilliseconds" is small, then it is very likely that the "progressReportDelayElapsed"is sent before "playbackStarted".
So is this really a bug?
Also seems the offset in playbackFinished event is not correct.
{noformat}
Actual logs :
17:29:12.542 play the song the devil in i by slipknot from my music library
{color:#d04437}17:29:25.459 progressReportDelayElapsed 1764 - sent before playbackStarted {color}
17:29:26.685 playbackStarted 0
17:29:51.101 stop
17:29:53.371 playbackStopped 25774
17:30:14.128 alexa resume
17:30:19.161 playbackStarted 25774
{color:#d04437}17:35:38.331 playbackNearlyFinished 24250 - wrong offset{color}
{color:#d04437}17:35:38.636 playbackFinished 24250 - wrong offset{color}
Expected logs :
17:29:12.542 play the song the devil in i by slipknot from my music library
17:29:26.685 playbackStarted 0
17:29:51.101 stop
17:29:53.371 playbackStopped 25774
17:30:14.128 alexa resume
17:30:19.161 playbackStarted 25774
{color:#d04437}17:35:38.331 playbackNearlyFinished 344774 - correct offset{color}
{color:#d04437}17:35:38.636 playbackFinished 344774 - correct offset{color}
{noformat}
I checked the AVSonline document, it mentioned 👍
https://developer.amazon.com/zh/docs/alexa-voice-service/audioplayer.html#progressreportintervalelapsed
That means the ProgressReportDelayElapsed event should be sent start from the real audio play. In that case, I think this is e SDK bug.
What is the expected behavior?
What behavior are you observing?
Provide the steps to reproduce the issue, if applicable:
Tell us about your environment:
What version of the AVS Device SDK are you using?
Tell us what hardware you're using:
Tell us about your OS (Type & version):
The text was updated successfully, but these errors were encountered: