mirror of
https://github.com/openharmony/third_party_tinyalsa.git
synced 2026-07-01 20:14:06 -04:00
prepare in pcm_generic_transfer
This commit is contained in:
@@ -29,7 +29,6 @@ static size_t read_frames(void **frames)
|
||||
fprintf(stderr, "failed to open PCM\n");
|
||||
return 0;
|
||||
}
|
||||
pcm_prepare(pcm);
|
||||
|
||||
unsigned int frame_size = pcm_frames_to_bytes(pcm, 1);
|
||||
unsigned int frames_per_sec = pcm_get_rate(pcm);
|
||||
|
||||
@@ -70,7 +70,6 @@ static int write_frames(const void * frames, size_t byte_count){
|
||||
fprintf(stderr, "failed to open PCM\n");
|
||||
return -1;
|
||||
}
|
||||
pcm_prepare(pcm);
|
||||
|
||||
unsigned int frame_count = pcm_bytes_to_frames(pcm, byte_count);
|
||||
|
||||
|
||||
@@ -1637,6 +1637,10 @@ static int pcm_generic_transfer(struct pcm *pcm, void *data,
|
||||
if (frames > INT_MAX)
|
||||
return -EINVAL;
|
||||
|
||||
if (pcm_state(pcm) == PCM_STATE_SETUP && pcm_prepare(pcm) != 0) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
again:
|
||||
|
||||
if (pcm->flags & PCM_MMAP)
|
||||
|
||||
@@ -47,7 +47,6 @@ class PcmInTest : public ::testing::Test {
|
||||
pcm_object = pcm_open(kLoopbackCard, kLoopbackCaptureDevice, PCM_IN, &kDefaultConfig);
|
||||
ASSERT_NE(pcm_object, nullptr);
|
||||
ASSERT_TRUE(pcm_is_ready(pcm_object));
|
||||
pcm_prepare(pcm_object);
|
||||
}
|
||||
|
||||
virtual void TearDown() override {
|
||||
@@ -74,6 +73,7 @@ class PcmInTest : public ::testing::Test {
|
||||
};
|
||||
|
||||
TEST_F(PcmInTest, GetDelay) {
|
||||
pcm_prepare(pcm_object);
|
||||
long delay = pcm_get_delay(pcm_object);
|
||||
std::cout << delay << std::endl;
|
||||
ASSERT_GE(delay, 0);
|
||||
|
||||
@@ -160,7 +160,6 @@ TEST(PcmLoopbackTest, LoopbackS16le) {
|
||||
};
|
||||
pcm *pcm_in = pcm_open(kLoopbackCard, kLoopbackCaptureDevice, PCM_IN, &kInConfig);
|
||||
ASSERT_TRUE(pcm_is_ready(pcm_in));
|
||||
pcm_prepare(pcm_in);
|
||||
|
||||
static constexpr pcm_config kOutConfig = {
|
||||
.channels = kDefaultChannels,
|
||||
@@ -175,7 +174,6 @@ TEST(PcmLoopbackTest, LoopbackS16le) {
|
||||
};
|
||||
pcm *pcm_out = pcm_open(kLoopbackCard, kLoopbackPlaybackDevice, PCM_OUT, &kOutConfig);
|
||||
ASSERT_TRUE(pcm_is_ready(pcm_out));
|
||||
pcm_prepare(pcm_out);
|
||||
|
||||
ASSERT_EQ(pcm_link(pcm_in, pcm_out), 0);
|
||||
|
||||
|
||||
@@ -47,7 +47,6 @@ class PcmOutTest : public ::testing::Test {
|
||||
pcm_object = pcm_open(kLoopbackCard, kLoopbackPlaybackDevice, PCM_OUT, &kDefaultConfig);
|
||||
ASSERT_NE(pcm_object, nullptr);
|
||||
ASSERT_TRUE(pcm_is_ready(pcm_object));
|
||||
pcm_prepare(pcm_object);
|
||||
}
|
||||
|
||||
virtual void TearDown() override {
|
||||
@@ -177,7 +176,6 @@ class PcmOutMmapTest : public PcmOutTest {
|
||||
&kDefaultConfig);
|
||||
ASSERT_NE(pcm_object, nullptr);
|
||||
ASSERT_TRUE(pcm_is_ready(pcm_object));
|
||||
pcm_prepare(pcm_object);
|
||||
}
|
||||
|
||||
virtual void TearDown() override {
|
||||
|
||||
@@ -231,7 +231,6 @@ unsigned int capture_sample(FILE *file, unsigned int card, unsigned int device,
|
||||
pcm_get_error(pcm));
|
||||
return 0;
|
||||
}
|
||||
pcm_prepare(pcm);
|
||||
|
||||
size = pcm_frames_to_bytes(pcm, pcm_get_buffer_size(pcm));
|
||||
buffer = malloc(size);
|
||||
|
||||
@@ -192,7 +192,6 @@ int ctx_init(struct ctx* ctx, const struct cmd *cmd)
|
||||
pcm_close(ctx->pcm);
|
||||
return -1;
|
||||
}
|
||||
pcm_prepare(ctx->pcm);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user