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

Commit 431207df authored by Vignesh Kulothungan's avatar Vignesh Kulothungan Committed by Gerrit - the friendly Code Review server
Browse files

hal: use compr config only for offload usecases

Add check before using compr config codec structure
which is set only for offload usecases.

Change-Id: Ia74e5a20011a0d0c57dbdd97a32d5344c1c283fa
parent 5eaf023f
Loading
Loading
Loading
Loading
+13 −9
Original line number Original line Diff line number Diff line
@@ -250,15 +250,19 @@ bool passthru_should_drop_data(struct stream_out * out)
     *stream has PCM format or
     *stream has PCM format or
     *if a compress offload (DSP decode) session
     *if a compress offload (DSP decode) session
     */
     */

    if(out->compr_config.codec != NULL) {
#ifdef AUDIO_GKI_ENABLED
#ifdef AUDIO_GKI_ENABLED
        /* out->compr_config.codec->reserved[0] is for compr_passthr */
        /* out->compr_config.codec->reserved[0] is for compr_passthr */
        compr_passthr = out->compr_config.codec->reserved[0];
        compr_passthr = out->compr_config.codec->reserved[0];
#else
#else
        compr_passthr = out->compr_config.codec->compr_passthr;
        compr_passthr = out->compr_config.codec->compr_passthr;
#endif
#endif
    }

    if (compare_device_type(&out->device_list, AUDIO_DEVICE_OUT_AUX_DIGITAL) &&
    if (compare_device_type(&out->device_list, AUDIO_DEVICE_OUT_AUX_DIGITAL) &&
        (((out->format & AUDIO_FORMAT_MAIN_MASK) == AUDIO_FORMAT_PCM) ||
        (((out->format & AUDIO_FORMAT_MAIN_MASK) == AUDIO_FORMAT_PCM) ||
        ((out->compr_config.codec != NULL) && (compr_passthr == LEGACY_PCM)))) {
        (compr_passthr == LEGACY_PCM))) {
        if (android_atomic_acquire_load(&compress_passthru_active) > 0) {
        if (android_atomic_acquire_load(&compress_passthru_active) > 0) {
            ALOGI("drop data as pass thru is active");
            ALOGI("drop data as pass thru is active");
            return true;
            return true;
@@ -484,8 +488,6 @@ void passthru_update_stream_configuration(
            ALOGV("%s:NO PASSTHROUGH", __func__);
            ALOGV("%s:NO PASSTHROUGH", __func__);
            compr_passthr = LEGACY_PCM;
            compr_passthr = LEGACY_PCM;
       }
       }
    }

#ifdef AUDIO_GKI_ENABLED
#ifdef AUDIO_GKI_ENABLED
        /* out->compr_config.codec->reserved[0] is for compr_passthr */
        /* out->compr_config.codec->reserved[0] is for compr_passthr */
        out->compr_config.codec->reserved[0] = compr_passthr;
        out->compr_config.codec->reserved[0] = compr_passthr;
@@ -494,6 +496,8 @@ void passthru_update_stream_configuration(
#endif
#endif
    }
    }


}

bool passthru_is_passthrough_stream(struct stream_out *out)
bool passthru_is_passthrough_stream(struct stream_out *out)
{
{
    //check passthrough system property
    //check passthrough system property
+5 −3
Original line number Original line Diff line number Diff line
@@ -9097,12 +9097,14 @@ static void platform_check_hdmi_backend_cfg(struct audio_device* adev,
          ", usecase = %d", __func__, bit_width,
          ", usecase = %d", __func__, bit_width,
          sample_rate, channels, usecase->id);
          sample_rate, channels, usecase->id);


    if (is_offload_usecase(usecase->id)) {
#ifdef AUDIO_GKI_ENABLED
#ifdef AUDIO_GKI_ENABLED
        /* out->compr_config.codec->reserved[0] is for compr_passthr */
        /* out->compr_config.codec->reserved[0] is for compr_passthr */
        compr_passthr = usecase->stream.out->compr_config.codec->reserved[0];
        compr_passthr = usecase->stream.out->compr_config.codec->reserved[0];
#else
#else
        compr_passthr = usecase->stream.out->compr_config.codec->compr_passthr;
        compr_passthr = usecase->stream.out->compr_config.codec->compr_passthr;
#endif
#endif
    }


    if (audio_extn_passthru_is_enabled() && audio_extn_passthru_is_active()
    if (audio_extn_passthru_is_enabled() && audio_extn_passthru_is_active()
        && (compr_passthr != 0)) {
        && (compr_passthr != 0)) {