Skip to content

Commit f246f11

Browse files
committed
module: source: Add level frame alignment helpers
Add source_align_frames_round_up() and source_align_frames_round_nearest() helpers based on existing audio_stream_* alignment utilities, adapting them to operate on source api. Signed-off-by: Adrian Warecki <adrian.warecki@intel.com>
1 parent 6633729 commit f246f11

1 file changed

Lines changed: 25 additions & 0 deletions

File tree

src/include/module/audio/source_api.h

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -339,4 +339,29 @@ static inline enum sof_audio_buffer_state source_get_state(const struct sof_sour
339339
return source->audio_stream_params->state;
340340
}
341341

342+
static inline uint32_t source_align_frames_round_up(struct sof_source *source, uint32_t frames)
343+
{
344+
uint16_t align = source->audio_stream_params->align_frame_cnt;
345+
uint32_t aligned_frames;
346+
347+
if (!align)
348+
return frames;
349+
350+
aligned_frames = ROUND_DOWN(frames, align);
351+
if (aligned_frames < frames)
352+
aligned_frames += align;
353+
354+
return aligned_frames;
355+
}
356+
357+
static inline uint32_t source_align_frames_round_nearest(struct sof_source *source, uint32_t frames)
358+
{
359+
uint16_t align = source->audio_stream_params->align_frame_cnt;
360+
361+
if (!align)
362+
return frames;
363+
364+
return ROUND_DOWN(frames + (align >> 1), align);
365+
}
366+
342367
#endif /* __MODULE_AUDIO_SOURCE_API_H__ */

0 commit comments

Comments
 (0)