audio_haltests: feed dummy data before pcm start 26/264726/2 accepted/tizen/unified/20211101.140214 submit/tizen/20211013.065211 submit/tizen/20211015.121039 submit/tizen/20211028.130933 submit/tizen/20211101.022107
authorSeungbae Shin <seungbae.shin@samsung.com>
Wed, 29 Sep 2021 03:05:26 +0000 (12:05 +0900)
committerSeungbae Shin <seungbae.shin@samsung.com>
Tue, 12 Oct 2021 03:53:52 +0000 (12:53 +0900)
[Version] 0.0.15
[Issue Type] Bug

Change-Id: I1e0b2298387e56304c22fdf1fe413bb021a991c5

packaging/hal-api-audio.spec
testcase/audio_haltests.cpp

index 1ad7dae122b121e7d557639a9245d38fe21ad9cc..542ce2fbf64c84730da53f1056492bccba021ef7 100644 (file)
@@ -1,6 +1,6 @@
 Name:       hal-api-audio
 Summary:    TIZEN Audio HAL
-Version:    0.0.14
+Version:    0.0.15
 Release:    0
 Group:      System/Libraries
 License:    Apache-2.0
index d78386393a0fb05afacaf1ed6265a74a60b25771..e648ade73d5027f966f09453f3f10b52180f8a60 100644 (file)
@@ -92,9 +92,10 @@ class AudioHalTest : public testing::Test
                static void HalMessageCallback(const char *name, int value, void *user_data);
 
                // Todo : following value may vary depends on targets
-               static constexpr int default_frames = 6400;
-               static constexpr int default_periods = 5;
-               static constexpr int default_rate = 44100;
+               static constexpr int default_buffer_size = 16384;
+               static constexpr int default_periods = 4;
+               static constexpr int default_period_size = default_buffer_size / default_periods;
+               static constexpr int default_rate = 48000;
                static constexpr int default_channels = 2;
 
                void *m_h;
@@ -180,7 +181,8 @@ int32_t AudioHalTest::WritePcmFromFile(pcm_handle pcm_h)
 
        cout << "start to play dtmf+noise sounds ( " << res_path << " ) for 5 sec. " << endl;
 
-       vector<char> buffer(65536);
+       vector<char> buffer(FramesToBytes(default_buffer_size));
+       cout << "allocated temporal buffer size " << buffer.size() << " bytes" << endl;
 
        while (true) {
                ret = hal_audio_pcm_avail(m_h, pcm_h, &avail_frames);
@@ -193,10 +195,10 @@ int32_t AudioHalTest::WritePcmFromFile(pcm_handle pcm_h)
                }
 
 #ifdef USE_IFSTREAM
-               fs.read(buffer.data(), FramesToBytes(avail_frames));
+               fs.read(buffer.data(), min(FramesToBytes(avail_frames), static_cast<uint32_t>(buffer.size())));
                bytes_read = fs.gcount();
 #else
-               bytes_read = read(fd, buffer.data(), FramesToBytes(avail_frames));
+               bytes_read = read(fd, buffer.data(), min(FramesToBytes(avail_frames), static_cast<uint32_t>(buffer.size())));
 #endif
 
                cout << "avail frames : " << avail_frames << ", read_n : " << bytes_read << endl;
@@ -290,7 +292,7 @@ uint32_t AudioHalTest::FramesToBytes(uint32_t frames) const
 
 uint32_t AudioHalTest::GetDefaultFrames() const
 {
-       return BytesToFrames(default_frames);
+       return default_period_size;
 }
 
 void AudioHalTest::HalMessageCallback(const char *name, int value, void *user_data)
@@ -981,6 +983,10 @@ TEST_F(AudioHalTest, PcmOpenWriteCloseP)
 
        ASSERT_EQ(ret, AUDIO_RET_OK);
 
+       vector<char> buffer(FramesToBytes(default_period_size));
+       ret = hal_audio_pcm_write(m_h, pcm_h, buffer.data(), default_period_size);
+       EXPECT_EQ(ret, AUDIO_RET_OK);
+
        ret = hal_audio_pcm_start(m_h, pcm_h);
        EXPECT_EQ(ret, AUDIO_RET_OK);