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

Commit a372462d authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "hal: Enhance compress offload logging"

parents 2ababc8f 55820563
Loading
Loading
Loading
Loading
+20 −5
Original line number Diff line number Diff line
@@ -922,24 +922,30 @@ static void *offload_thread_loop(void *context)
        send_callback = false;
        switch(cmd->cmd) {
        case OFFLOAD_CMD_WAIT_FOR_BUFFER:
            ALOGD("copl(%x):calling compress_wait", (unsigned int)out);
            compress_wait(out->compr, -1);
            ALOGD("copl(%x):out of compress_wait", (unsigned int)out);
            send_callback = true;
            event = STREAM_CBK_EVENT_WRITE_READY;
            break;
        case OFFLOAD_CMD_PARTIAL_DRAIN:
            ret = compress_next_track(out->compr);
            if(ret == 0)
            if(ret == 0) {
                ALOGD("copl(%x):calling compress_partial_drain", (unsigned int)out);
                compress_partial_drain(out->compr);
                ALOGD("copl(%x):out of compress_partial_drain", (unsigned int)out);
            }
            else if(ret == -ETIMEDOUT)
                compress_drain(out->compr);
            else
                ALOGE("%s: Next track returned error %d",__func__, ret);

            send_callback = true;
            event = STREAM_CBK_EVENT_DRAIN_READY;
            break;
        case OFFLOAD_CMD_DRAIN:
            ALOGD("copl(%x):calling compress_drain", (unsigned int)out);
            compress_drain(out->compr);
            ALOGD("copl(%x):calling compress_drain", (unsigned int)out);
            send_callback = true;
            event = STREAM_CBK_EVENT_DRAIN_READY;
            break;
@@ -1117,7 +1123,7 @@ int start_output_stream(struct stream_out *out)
    struct audio_usecase *uc_info;
    struct audio_device *adev = out->dev;

    ALOGV("%s: enter: usecase(%d: %s) devices(%#x)",
    ALOGD("%s: enter: usecase(%d: %s) devices(%#x)",
          __func__, out->usecase, use_case_table[out->usecase], out->devices);
    out->pcm_device_id = platform_get_pcm_device_id(out->usecase, PCM_PLAYBACK);
    if (out->pcm_device_id < 0) {
@@ -1319,6 +1325,7 @@ static int out_standby(struct audio_stream *stream)
                out->pcm = NULL;
            }
        } else {
            ALOGD("copl(%x):standby", (unsigned int)out);
            stop_compressed_output_l(out);
            out->gapless_mdata.encoder_delay = 0;
            out->gapless_mdata.encoder_padding = 0;
@@ -1602,9 +1609,9 @@ static ssize_t out_write(struct audio_stream_out *stream, const void *buffer,
    }

    if (out->usecase == USECASE_AUDIO_PLAYBACK_OFFLOAD) {
        ALOGVV("%s: writing buffer (%d bytes) to compress device", __func__, bytes);
        ALOGD("copl(%x): writing buffer (%d bytes) to compress device", (unsigned int)out, bytes);
        if (out->send_new_metadata) {
            ALOGVV("send new gapless metadata");
            ALOGD("copl(%x):send new gapless metadata", (unsigned int)out);
            compress_set_gapless_metadata(out->compr, &out->gapless_mdata);
            out->send_new_metadata = 0;
        }
@@ -1612,6 +1619,7 @@ static ssize_t out_write(struct audio_stream_out *stream, const void *buffer,
        ret = compress_write(out->compr, buffer, bytes);
        ALOGVV("%s: writing buffer (%d bytes) to compress device returned %d", __func__, bytes, ret);
        if (ret >= 0 && ret < (ssize_t)bytes) {
            ALOGD("No space available in compress driver, post msg to cb thread");
            send_offload_cmd_l(out, OFFLOAD_CMD_WAIT_FOR_BUFFER);
        }
        if (!out->playback_started) {
@@ -1744,6 +1752,7 @@ static int out_pause(struct audio_stream_out* stream)
    int status = -ENOSYS;
    ALOGV("%s", __func__);
    if (out->usecase == USECASE_AUDIO_PLAYBACK_OFFLOAD) {
        ALOGD("copl(%x):pause compress driver", (unsigned int)out);
        pthread_mutex_lock(&out->lock);
        if (out->compr != NULL && out->offload_state == OFFLOAD_STATE_PLAYING) {
            status = compress_pause(out->compr);
@@ -1760,6 +1769,7 @@ static int out_resume(struct audio_stream_out* stream)
    int status = -ENOSYS;
    ALOGV("%s", __func__);
    if (out->usecase == USECASE_AUDIO_PLAYBACK_OFFLOAD) {
        ALOGD("copl(%x):resume compress driver", (unsigned int)out);
        status = 0;
        pthread_mutex_lock(&out->lock);
        if (out->compr != NULL && out->offload_state == OFFLOAD_STATE_PAUSED) {
@@ -1792,9 +1802,11 @@ static int out_flush(struct audio_stream_out* stream)
    struct stream_out *out = (struct stream_out *)stream;
    ALOGV("%s", __func__);
    if (out->usecase == USECASE_AUDIO_PLAYBACK_OFFLOAD) {
        ALOGD("copl(%x):calling compress flush", (unsigned int)out);
        pthread_mutex_lock(&out->lock);
        stop_compressed_output_l(out);
        pthread_mutex_unlock(&out->lock);
        ALOGD("copl(%x):out of compress flush", (unsigned int)out);
        return 0;
    }
    return -ENOSYS;
@@ -2133,6 +2145,9 @@ static int adev_open_output_stream(struct audio_hw_device *dev,
            goto error_open;
        }
    } else if (out->flags & AUDIO_OUTPUT_FLAG_COMPRESS_OFFLOAD) {
        ALOGD("%s: copl(%x): sample_rate(%d) channel_mask(%#x) devices(%#x) flags(%#x)",
              __func__, (unsigned int)out, config->sample_rate, config->channel_mask, devices, flags);

        if (config->offload_info.version != AUDIO_INFO_INITIALIZER.version ||
            config->offload_info.size != AUDIO_INFO_INITIALIZER.size) {
            ALOGE("%s: Unsupported Offload information", __func__);