int getSampleSize() noexcept;
void bindEchoCancelReferenceDeviceId(int id) noexcept;
int getEchoCancelReferenceDeviceId() noexcept;
+ void setNoiseSuppression(bool enable) noexcept;
+ bool getNoiseSuppression() noexcept;
/* Setter & Getter Utilities */
const char* getConvertedStreamType();
EAudioType __mAudioType;
int __mAudioIndex;
int __mReferenceDeviceId;
+ bool __mNoiseSuppression;
};
Name: capi-media-audio-io
Summary: An Audio Input & Audio Output library in Tizen Native API
-Version: 0.5.53
+Version: 0.5.54
Release: 0
Group: Multimedia/API
License: Apache-2.0
if (mDirection == CAudioInfo::EAudioDirection::AUDIO_DIRECTION_IN) {
int device_id;
+ bool enabled;
if ((errorCode = sound_manager_get_echo_cancel_reference_device(stream_info, &device_id)) != SOUND_MANAGER_ERROR_NONE)
THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT, "Can't get reference device [ret:%d]", errorCode); //LCOV_EXCL_LINE
if (device_id != SOUND_MANAGER_STREAM_NO_REFERENCE_DEVICE)
getAudioInfo().bindEchoCancelReferenceDeviceId(device_id);
+
+ if ((errorCode = sound_manager_get_noise_suppression(stream_info, &enabled)) != SOUND_MANAGER_ERROR_NONE)
+ THROW_ERROR_MSG_FORMAT(CAudioError::EError::ERROR_INVALID_ARGUMENT, "Can't get noise suppression status [ret:%d]", errorCode); //LCOV_EXCL_LINE
+
+ if (enabled)
+ getAudioInfo().setNoiseSuppression(enabled);
+
}
}
__mSampleType(ESampleType::SAMPLE_TYPE_U8),
__mAudioType(EAudioType::AUDIO_IN_TYPE_MEDIA),
__mAudioIndex(-1),
- __mReferenceDeviceId(0) {
+ __mReferenceDeviceId(0),
+ __mNoiseSuppression(false) {
}
CAudioInfo::CAudioInfo(unsigned int sampleRate, EChannel channel, ESampleType sampleType, EAudioType audioType, int audioIndex) :
__mSampleType(sampleType),
__mAudioType(audioType),
__mAudioIndex(audioIndex),
- __mReferenceDeviceId(0) {
+ __mReferenceDeviceId(0),
+ __mNoiseSuppression(false) {
// Check to invalid AudioInfo
if (sampleRate < CAudioInfo::MIN_SYSTEM_SAMPLERATE ||
sampleRate > CAudioInfo::MAX_SYSTEM_SAMPLERATE)
return __mReferenceDeviceId;
}
+void CAudioInfo::setNoiseSuppression(bool enable) noexcept {
+ __mNoiseSuppression = enable;
+}
+
+bool CAudioInfo::getNoiseSuppression() noexcept {
+ return __mNoiseSuppression;
+}
+
const char* CAudioInfo::getConvertedStreamType() {
if (__mAudioType < CAudioInfo::EAudioType::AUDIO_IN_TYPE_MEDIA ||
__mAudioType >= CAudioInfo::EAudioType::AUDIO_TYPE_MAX)
if (index >= 0)
pa_proplist_setf(__mpPropList, PA_PROP_MEDIA_PARENT_ID, "%u", (unsigned int) index);
- int reference_id = __mSpec.getAudioInfo().getEchoCancelReferenceDeviceId();
- if (reference_id > 0) {
- pa_proplist_setf(__mpPropList, PA_PROP_MEDIA_ECHO_CANCEL_METHOD, "%s", ec_method);
- pa_proplist_setf(__mpPropList, PA_PROP_MEDIA_ECHO_CANCEL_REFERENCE_DEVICE, "%d", reference_id);
+ if (__mDirection == EStreamDirection::STREAM_DIRECTION_RECORD) {
+ int reference_id = __mSpec.getAudioInfo().getEchoCancelReferenceDeviceId();
+ if (reference_id > 0) {
+ pa_proplist_setf(__mpPropList, PA_PROP_MEDIA_ECHO_CANCEL_METHOD, "%s", ec_method);
+ pa_proplist_setf(__mpPropList, PA_PROP_MEDIA_ECHO_CANCEL_REFERENCE_DEVICE, "%d", reference_id);
+ }
+
+ if (__mSpec.getAudioInfo().getNoiseSuppression())
+ pa_proplist_setf(__mpPropList, PA_PROP_MEDIA_NOISE_SUPPRESSION_ENABLE, "%d", true);
}
// Adds latency on proplist for delivery to PULSEAUDIO