diff --git a/android/hal-audio-sbc.c b/android/hal-audio-sbc.c
index ad20f51..0c31035 100644
--- a/android/hal-audio-sbc.c
+++ b/android/hal-audio-sbc.c
out_frame_len = sbc_get_frame_length(&sbc_data->enc);
num_frames = sbc_data->payload_len / out_frame_len;
+ if (num_frames > MAX_FRAMES_IN_PAYLOAD)
+ num_frames = MAX_FRAMES_IN_PAYLOAD;
+
sbc_data->in_frame_len = in_frame_len;
sbc_data->in_buf_size = num_frames * in_frame_len;
while (len - consumed >= sbc_data->in_frame_len &&
mp_data_len - encoded >= sbc_data->out_frame_len &&
- frame_count < MAX_FRAMES_IN_PAYLOAD) {
+ frame_count < sbc_data->frames_per_packet) {
ssize_t read;
ssize_t written = 0;