summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorOlha Vorobiova (GitHub) <86727408+OlhaVorobiova@users.noreply.github.com>2022-01-12 00:27:25 +0200
committerGitHub <noreply@github.com>2022-01-11 17:27:25 -0500
commit94d6a89f471f8f6a707585465945c4ca77ae6e7e (patch)
tree039312c06a110c5298cefa3bf874acd8eb0c21d4 /src
parent47c10a0fff783b485264593a689f355912823835 (diff)
downloadsdl_core-94d6a89f471f8f6a707585465945c4ca77ae6e7e.tar.gz
Convert Common_SamplingRate and Common_BitsPerSample enums to uint (#3837)
Diffstat (limited to 'src')
-rw-r--r--src/components/application_manager/src/hmi_capabilities_impl.cc2
-rw-r--r--src/components/media_manager/include/media_manager/media_manager_impl.h2
-rw-r--r--src/components/media_manager/src/media_manager_impl.cc81
3 files changed, 63 insertions, 22 deletions
diff --git a/src/components/application_manager/src/hmi_capabilities_impl.cc b/src/components/application_manager/src/hmi_capabilities_impl.cc
index a1a85a7a44..6052382bb1 100644
--- a/src/components/application_manager/src/hmi_capabilities_impl.cc
+++ b/src/components/application_manager/src/hmi_capabilities_impl.cc
@@ -332,6 +332,7 @@ void HMICapabilitiesImpl::set_audio_pass_thru_capabilities(
void HMICapabilitiesImpl::set_pcm_stream_capabilities(
const smart_objects::SmartObject& pcm_stream_capabilities) {
+ SDL_LOG_AUTO_TRACE();
auto new_value =
std::make_shared<smart_objects::SmartObject>(pcm_stream_capabilities);
sync_primitives::AutoWriteLock lock(hmi_capabilities_lock_);
@@ -538,6 +539,7 @@ HMICapabilitiesImpl::audio_pass_thru_capabilities() const {
const smart_objects::SmartObjectSPtr
HMICapabilitiesImpl::pcm_stream_capabilities() const {
+ SDL_LOG_AUTO_TRACE();
sync_primitives::AutoReadLock lock(hmi_capabilities_lock_);
return pcm_stream_capabilities_;
}
diff --git a/src/components/media_manager/include/media_manager/media_manager_impl.h b/src/components/media_manager/include/media_manager/media_manager_impl.h
index faa51feec9..2e4e46ed88 100644
--- a/src/components/media_manager/include/media_manager/media_manager_impl.h
+++ b/src/components/media_manager/include/media_manager/media_manager_impl.h
@@ -111,8 +111,6 @@ class MediaManagerImpl : public MediaManager,
std::map<protocol_handler::ServiceType, MediaAdapterImplPtr> streamer_;
std::map<protocol_handler::ServiceType, MediaListenerPtr> streamer_listener_;
- uint32_t bits_per_sample_;
- uint32_t sampling_rate_;
uint64_t stream_data_size_;
std::chrono::time_point<std::chrono::system_clock>
socket_audio_stream_start_time_;
diff --git a/src/components/media_manager/src/media_manager_impl.cc b/src/components/media_manager/src/media_manager_impl.cc
index 8a73101b47..c71012b1c9 100644
--- a/src/components/media_manager/src/media_manager_impl.cc
+++ b/src/components/media_manager/src/media_manager_impl.cc
@@ -66,8 +66,6 @@ MediaManagerImpl::MediaManagerImpl(
, protocol_handler_(NULL)
, a2dp_player_(NULL)
, from_mic_recorder_(NULL)
- , bits_per_sample_(16)
- , sampling_rate_(16000)
, stream_data_size_(0ull)
, application_manager_(application_manager) {
Init();
@@ -165,23 +163,6 @@ void MediaManagerImpl::Init() {
streamer_[ServiceType::kAudio]->AddListener(
streamer_listener_[ServiceType::kAudio]);
}
-
- if (application_manager_.hmi_capabilities().pcm_stream_capabilities()) {
- const auto pcm_caps =
- application_manager_.hmi_capabilities().pcm_stream_capabilities();
-
- if (pcm_caps->keyExists(application_manager::strings::bits_per_sample)) {
- bits_per_sample_ =
- pcm_caps->getElement(application_manager::strings::bits_per_sample)
- .asUInt();
- }
-
- if (pcm_caps->keyExists(application_manager::strings::sampling_rate)) {
- sampling_rate_ =
- pcm_caps->getElement(application_manager::strings::sampling_rate)
- .asUInt();
- }
- }
}
void MediaManagerImpl::StartMicrophoneRecording(
@@ -317,6 +298,11 @@ void MediaManagerImpl::OnMessageReceived(
socket_audio_stream_start_time_)
.count();
uint32_t ms_stream_remaining = ms_for_all_data - ms_since_stream_start;
+ SDL_LOG_DEBUG("stream_data_size_: "
+ << stream_data_size_
+ << " ms_for_all_data: " << ms_for_all_data
+ << " ms_since_stream_start: " << ms_since_stream_start
+ << " ms_stream_remaining: " << ms_stream_remaining);
app->WakeUpStreaming(service_type, ms_stream_remaining);
} else {
@@ -341,8 +327,63 @@ const MediaManagerSettings& MediaManagerImpl::settings() const {
}
uint32_t MediaManagerImpl::DataSizeToMilliseconds(uint64_t data_size) const {
+ uint32_t bits_per_sample = 16;
+ uint32_t sampling_rate = 16000;
+
+ if (application_manager_.hmi_capabilities().pcm_stream_capabilities()) {
+ const auto pcm_caps =
+ application_manager_.hmi_capabilities().pcm_stream_capabilities();
+
+ if (pcm_caps->keyExists(application_manager::strings::bits_per_sample)) {
+ auto type = static_cast<hmi_apis::Common_BitsPerSample::eType>(
+ pcm_caps->getElement(application_manager::strings::bits_per_sample)
+ .asUInt());
+ switch (type) {
+ case hmi_apis::Common_BitsPerSample::RATE_8_BIT: {
+ bits_per_sample = 8;
+ break;
+ }
+ case hmi_apis::Common_BitsPerSample::RATE_16_BIT: {
+ bits_per_sample = 16;
+ break;
+ }
+ default:
+ break;
+ }
+ }
+
+ if (pcm_caps->keyExists(application_manager::strings::sampling_rate)) {
+ auto type = static_cast<hmi_apis::Common_SamplingRate::eType>(
+ pcm_caps->getElement(application_manager::strings::sampling_rate)
+ .asUInt());
+ switch (type) {
+ case hmi_apis::Common_SamplingRate::RATE_8KHZ: {
+ sampling_rate = 8000;
+ break;
+ }
+ case hmi_apis::Common_SamplingRate::RATE_16KHZ: {
+ sampling_rate = 16000;
+ break;
+ }
+ case hmi_apis::Common_SamplingRate::RATE_22KHZ: {
+ sampling_rate = 22000;
+ break;
+ }
+ case hmi_apis::Common_SamplingRate::RATE_44KHZ: {
+ sampling_rate = 44000;
+ break;
+ }
+ default:
+ break;
+ }
+ }
+ }
+
+ SDL_LOG_DEBUG("Params of pcm_stream_capabilities: bits_per_sample: "
+ << bits_per_sample << " sampling_rate: " << sampling_rate);
+
constexpr uint16_t latency_compensation = 500;
- return 1000 * data_size / (sampling_rate_ * bits_per_sample_ / 8) +
+ return 1000 * data_size / (sampling_rate * bits_per_sample / 8) +
latency_compensation;
}