memblockq: Drop check for chunk index alignment, require aligned length

There is no requirement for chunk index to be aligned, we only need chunk length
to be multiple of sample frame size.

Fixes: 6434853b0 ("memblockq: Do not allow non-frame indices in the memblock queue")
Fixes: 22827a5e1 ("protocol-native: Fail if trying to push unaligned memblock into queue")
Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/779>
This commit is contained in:
Igor V. Kovalenko 2023-02-08 10:39:26 +03:00 committed by PulseAudio Marge Bot
parent 5ab2b9cb0e
commit 15e76a69bf
2 changed files with 3 additions and 4 deletions

View file

@ -286,7 +286,6 @@ int pa_memblockq_push(pa_memblockq* bq, const pa_memchunk *uchunk) {
pa_assert(uchunk->index + uchunk->length <= pa_memblock_get_length(uchunk->memblock));
pa_assert(uchunk->length % bq->base == 0);
pa_assert(uchunk->index % bq->base == 0);
if (!can_push(bq, uchunk->length))
return -1;

View file

@ -5068,9 +5068,9 @@ static void pstream_memblock_callback(pa_pstream *p, uint32_t channel, int64_t o
playback_stream *ps = PLAYBACK_STREAM(stream);
size_t frame_size = pa_frame_size(&ps->sink_input->sample_spec);
if (chunk->index % frame_size != 0 || chunk->length % frame_size != 0) {
pa_log_warn("Client sent non-aligned memblock: index %d, length %d, frame size: %d",
(int) chunk->index, (int) chunk->length, (int) frame_size);
if (chunk->length % frame_size != 0) {
pa_log_warn("Client sent non-aligned memblock: length %d, frame size: %d",
(int) chunk->length, (int) frame_size);
return;
}