mirror of https://github.com/thesofproject/sof.git
audio_stream: refactor: Move init_alignment_constants to C file
audio_stream_init_alignment_constants() isn't a particularly small function, isn't used in performance-sensitive contexts, and doesn't really belong in a header. Move to audio_stream.c for hygiene, and because it's about to be modified. Also move the depended-on function audio_stream_frame_align_get(), and (as it has no consumers outside of audio_stream) remove its declaration from the header. Signed-off-by: Andy Ross <andyross@google.com>
This commit is contained in:
parent
2cc63f239e
commit
d8edb5e566
|
@ -67,6 +67,32 @@ static int audio_stream_get_data(struct sof_source *source, size_t req_size,
|
|||
return 0;
|
||||
}
|
||||
|
||||
static uint32_t audio_stream_frame_align_get(const uint32_t byte_align,
|
||||
const uint32_t frame_align_req,
|
||||
uint32_t frame_size)
|
||||
{
|
||||
/* Figure out how many frames are needed to meet the byte_align alignment requirements */
|
||||
uint32_t frame_num = byte_align / gcd(byte_align, frame_size);
|
||||
|
||||
/** return the lcm of frame_num and frame_align_req*/
|
||||
return frame_align_req * frame_num / gcd(frame_num, frame_align_req);
|
||||
}
|
||||
|
||||
|
||||
void audio_stream_init_alignment_constants(const uint32_t byte_align,
|
||||
const uint32_t frame_align_req,
|
||||
struct audio_stream *stream)
|
||||
{
|
||||
uint32_t process_size;
|
||||
uint32_t frame_size = audio_stream_frame_bytes(stream);
|
||||
|
||||
stream->runtime_stream_params.align_frame_cnt =
|
||||
audio_stream_frame_align_get(byte_align, frame_align_req, frame_size);
|
||||
process_size = stream->runtime_stream_params.align_frame_cnt * frame_size;
|
||||
stream->runtime_stream_params.align_shift_idx =
|
||||
(is_power_of_2(process_size) ? 31 : 32) - clz(process_size);
|
||||
}
|
||||
|
||||
static int audio_stream_release_data(struct sof_source *source, size_t free_size)
|
||||
{
|
||||
struct audio_stream *audio_stream = container_of(source, struct audio_stream, source_api);
|
||||
|
|
|
@ -331,25 +331,6 @@ static inline uint32_t audio_stream_sample_bytes(const struct audio_stream *buf)
|
|||
return get_sample_bytes(buf->runtime_stream_params.frame_fmt);
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the frames that meet the align requirement of both byte_align and
|
||||
* frame_align_req.
|
||||
* @param byte_align Processing byte alignment requirement.
|
||||
* @param frame_align_req Processing frames alignment requirement.
|
||||
* @param frame_size Size of the frame in bytes.
|
||||
* @return frame number.
|
||||
*/
|
||||
static inline uint32_t audio_stream_frame_align_get(const uint32_t byte_align,
|
||||
const uint32_t frame_align_req,
|
||||
uint32_t frame_size)
|
||||
{
|
||||
/* Figure out how many frames are needed to meet the byte_align alignment requirements */
|
||||
uint32_t frame_num = byte_align / gcd(byte_align, frame_size);
|
||||
|
||||
/** return the lcm of frame_num and frame_align_req*/
|
||||
return frame_align_req * frame_num / gcd(frame_num, frame_align_req);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set align_shift_idx and align_frame_cnt of stream according to byte_align and
|
||||
* frame_align_req alignment requirement. Once the channel number,frame size
|
||||
|
@ -362,19 +343,9 @@ static inline uint32_t audio_stream_frame_align_get(const uint32_t byte_align,
|
|||
* @param frame_align_req Processing frames alignment requirement.
|
||||
* @param stream Sink or source stream structure which to be set.
|
||||
*/
|
||||
static inline void audio_stream_init_alignment_constants(const uint32_t byte_align,
|
||||
const uint32_t frame_align_req,
|
||||
struct audio_stream *stream)
|
||||
{
|
||||
uint32_t process_size;
|
||||
uint32_t frame_size = audio_stream_frame_bytes(stream);
|
||||
|
||||
stream->runtime_stream_params.align_frame_cnt =
|
||||
audio_stream_frame_align_get(byte_align, frame_align_req, frame_size);
|
||||
process_size = stream->runtime_stream_params.align_frame_cnt * frame_size;
|
||||
stream->runtime_stream_params.align_shift_idx =
|
||||
(is_power_of_2(process_size) ? 31 : 32) - clz(process_size);
|
||||
}
|
||||
void audio_stream_init_alignment_constants(const uint32_t byte_align,
|
||||
const uint32_t frame_align_req,
|
||||
struct audio_stream *stream);
|
||||
|
||||
/**
|
||||
* Applies parameters to the buffer.
|
||||
|
|
Loading…
Reference in New Issue