Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f6990bb3 authored by Manisha Agarwal's avatar Manisha Agarwal Committed by Gerrit - the friendly Code Review server
Browse files

dsp: Bit rate mode support for aac codec



Add variable bit rate mode support for aac codec.

Change-Id: Iedd9fe0df2d3a12e3d4e6c2916305399da10873f
Signed-off-by: default avatarManisha Agarwal <maniagar@codeaurora.org>
parent 70561ef6
Loading
Loading
Loading
Loading
+26 −1
Original line number Diff line number Diff line
@@ -3980,6 +3980,7 @@ static int q6afe_send_enc_config(u16 port_id,
	struct asm_aptx_ad_speech_mode_cfg_t speech_codec_init_param;
	struct param_hdr_v3 param_hdr;
	int ret;
	uint32_t frame_size_ctl_value_v2;

	pr_debug("%s:update DSP for enc format = %d\n", __func__, format);

@@ -4067,6 +4068,7 @@ static int q6afe_send_enc_config(u16 port_id,
			frame_ctl_param.ctl_type = enc_blk_param.
				enc_blk_config.aac_config.frame_ctl.ctl_type;
			frame_ctl_param.ctl_value = frame_size_ctl_value;

			pr_debug("%s: send AFE_PARAM_ID_AAC_FRM_SIZE_CONTROL\n",
				__func__);
			ret = q6afe_pack_and_set_param_in_band(port_id,
@@ -4079,6 +4081,29 @@ static int q6afe_send_enc_config(u16 port_id,
				goto exit;
			}
		}
		frame_size_ctl_value_v2 = enc_blk_param.enc_blk_config.
				aac_config.frame_ctl_v2.ctl_value;
		if (frame_size_ctl_value_v2 > 0) {
			param_hdr.param_id =
				AFE_PARAM_ID_AAC_FRM_SIZE_CONTROL;
			param_hdr.param_size = sizeof(frame_ctl_param);
			frame_ctl_param.ctl_type = enc_blk_param.
				enc_blk_config.aac_config.frame_ctl_v2.ctl_type;
			frame_ctl_param.ctl_value = enc_blk_param.
				enc_blk_config.aac_config.frame_ctl_v2.ctl_value;

			pr_debug("%s: send AFE_PARAM_ID_AAC_FRM_SIZE_CONTROL V2\n",
				__func__);
			ret = q6afe_pack_and_set_param_in_band(port_id,
					q6audio_get_port_index(port_id),
					param_hdr,
					(u8 *) &frame_ctl_param);
			if (ret) {
				pr_err("%s: AAC_FRM_SIZE_CONTROL with VBR support failed %d\n",
					__func__, ret);
				goto exit;
			}
		}
	}

	if (format == ASM_MEDIA_FMT_APTX) {
+2 −1
Original line number Diff line number Diff line
/* SPDX-License-Identifier: GPL-2.0-only */
/*
 * Copyright (c) 2012-2019, The Linux Foundation. All rights reserved.
 * Copyright (c) 2012-2020, The Linux Foundation. All rights reserved.
 */


@@ -4338,6 +4338,7 @@ struct asm_aac_frame_size_control_t {
struct asm_aac_enc_cfg_t {
	struct asm_aac_enc_cfg_v2_t aac_cfg;
	struct asm_aac_frame_size_control_t frame_ctl;
	struct asm_aac_frame_size_control_t frame_ctl_v2;
} __packed;

/* FMT ID for apt-X Classic */