diff options
author | Lennart Poettering <lennart@poettering.net> | 2009-02-18 21:55:55 +0100 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2009-02-18 21:55:55 +0100 |
commit | be81a681ac84ac56208c3bb315e04d04c2e53606 (patch) | |
tree | da5dfb6741f910b0b846638754f6391b29fd29b8 /src/pulse/context.c | |
parent | 1737a19c86d34d1a3721d019f649beaa9aea02b3 (diff) |
if we fail to import a memblock fill in silence to guarantee stability of timing
Diffstat (limited to 'src/pulse/context.c')
-rw-r--r-- | src/pulse/context.c | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/src/pulse/context.c b/src/pulse/context.c index 8686e0de..d8d0a51d 100644 --- a/src/pulse/context.c +++ b/src/pulse/context.c @@ -335,8 +335,7 @@ static void pstream_memblock_callback(pa_pstream *p, uint32_t channel, int64_t o pa_assert(p); pa_assert(chunk); - pa_assert(chunk->memblock); - pa_assert(chunk->length); + pa_assert(chunk->length > 0); pa_assert(c); pa_assert(PA_REFCNT_VALUE(c) >= 1); @@ -344,11 +343,11 @@ static void pstream_memblock_callback(pa_pstream *p, uint32_t channel, int64_t o if ((s = pa_dynarray_get(c->record_streams, channel))) { - pa_assert(seek == PA_SEEK_RELATIVE); - pa_assert(offset == 0); - - pa_memblockq_seek(s->record_memblockq, offset, seek); - pa_memblockq_push_align(s->record_memblockq, chunk); + if (chunk->memblock) { + pa_memblockq_seek(s->record_memblockq, offset, seek); + pa_memblockq_push_align(s->record_memblockq, chunk); + } else + pa_memblockq_seek(s->record_memblockq, offset+chunk->length, seek); if (s->read_callback) { size_t l; |