summaryrefslogtreecommitdiff
path: root/src/components/include
diff options
context:
space:
mode:
authorAndrii Kalinich (GitHub) <AKalinich@luxoft.com>2020-10-05 13:24:52 -0400
committerGitHub <noreply@github.com>2020-10-05 13:24:52 -0400
commit42721d5c56dfc26e3d69f7d80d7806110e570cac (patch)
tree3c8f589d4f92beb7f8c5fd8b597ef4192c59f963 /src/components/include
parent049f7d8633ad99b7a3773eac5a64a67d3d9a531f (diff)
downloadsdl_core-42721d5c56dfc26e3d69f7d80d7806110e570cac.tar.gz
Fix streamer activity in case of suspend (#3488)
* Fix streamer activity in case of suspend The problem of the current implementation is that SDL kills streaming thread responsible for sending a/v streaming data to HMI when streaming timeout expires. This issue is observed when mobile app dumps 10-seconds audio file to SDL during 2 seconds and after that app does not send any data. In that case HMI will play audio file during 2 seconds + timeout = 5 seconds. At the 5th second SDL just kills streaming thread with all pending messages, however audio service is still open. As a result not a whole audio file is played. The correct behavior from SDL side in that case is not kill streaming thread when streaming timeout was expired. SDL should kill streaming thread only when service is actually stopped. Current SDL behavior was updated to align with a correct behavior described above. * Adjust fix to work with audio socket streaming * Revert "[WIP] initial fix of socket streaming by guessing playback time (#3057)" This reverts commit 7c442abce73c462e7724a64b3ce037bcb8e9093e. * Remove unused code after revert * Fix style issues
Diffstat (limited to 'src/components/include')
-rw-r--r--src/components/include/application_manager/application_manager.h4
-rw-r--r--src/components/include/media_manager/media_manager.h8
-rw-r--r--src/components/include/test/application_manager/mock_application_manager.h9
-rw-r--r--src/components/include/test/media_manager/mock_media_manager.h1
4 files changed, 7 insertions, 15 deletions
diff --git a/src/components/include/application_manager/application_manager.h b/src/components/include/application_manager/application_manager.h
index 72dfb71a29..45fc73b895 100644
--- a/src/components/include/application_manager/application_manager.h
+++ b/src/components/include/application_manager/application_manager.h
@@ -813,11 +813,11 @@ class ApplicationManager {
* @brief Callback calls when application starts/stops data streaming
* @param app_id Streaming application id
* @param service_type Streaming service type
- * @param state Shows if streaming started or stopped
+ * @param new_state Defines new streaming state
*/
virtual void OnAppStreaming(uint32_t app_id,
protocol_handler::ServiceType service_type,
- bool state) = 0;
+ const Application::StreamingState new_state) = 0;
/**
* @brief CreateRegularState create regular HMI state for application
diff --git a/src/components/include/media_manager/media_manager.h b/src/components/include/media_manager/media_manager.h
index 2d2201a949..0729adc7d8 100644
--- a/src/components/include/media_manager/media_manager.h
+++ b/src/components/include/media_manager/media_manager.h
@@ -70,14 +70,6 @@ class MediaManager {
*/
virtual const MediaManagerSettings& settings() const = 0;
- /**
- * \brief Convert an amount of audio bytes to an estimated time in ms
- * \param data_size number of bytes to be played
- * \return milliseconds required to play <data_size> many bytes with
- * the current pcm stream capabilities
- */
- virtual uint32_t DataSizeToMilliseconds(uint64_t data_size) const = 0;
-
virtual ~MediaManager() {}
};
diff --git a/src/components/include/test/application_manager/mock_application_manager.h b/src/components/include/test/application_manager/mock_application_manager.h
index 862c862a20..e5667ef266 100644
--- a/src/components/include/test/application_manager/mock_application_manager.h
+++ b/src/components/include/test/application_manager/mock_application_manager.h
@@ -309,10 +309,11 @@ class MockApplicationManager : public application_manager::ApplicationManager {
MOCK_METHOD1(OnAppUnauthorized, void(const uint32_t& app_id));
MOCK_METHOD1(ActivateApplication,
bool(application_manager::ApplicationSharedPtr app));
- MOCK_METHOD3(OnAppStreaming,
- void(uint32_t app_id,
- protocol_handler::ServiceType service_type,
- bool state));
+ MOCK_METHOD3(
+ OnAppStreaming,
+ void(uint32_t app_id,
+ protocol_handler::ServiceType service_type,
+ application_manager::Application::StreamingState new_state));
MOCK_CONST_METHOD6(CreateRegularState,
application_manager::HmiStatePtr(
application_manager::ApplicationSharedPtr app,
diff --git a/src/components/include/test/media_manager/mock_media_manager.h b/src/components/include/test/media_manager/mock_media_manager.h
index 364c495236..36e35352d6 100644
--- a/src/components/include/test/media_manager/mock_media_manager.h
+++ b/src/components/include/test/media_manager/mock_media_manager.h
@@ -64,7 +64,6 @@ class MockMediaManager : public media_manager::MediaManager {
MOCK_METHOD2(FramesProcessed,
void(int32_t application_key, int32_t frame_number));
MOCK_CONST_METHOD0(settings, const media_manager::MediaManagerSettings&());
- MOCK_CONST_METHOD1(DataSizeToMilliseconds, uint32_t(uint64_t data_size));
};
} // namespace media_manager_test