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

Commit d63e7902 authored by Mikhail Naganov's avatar Mikhail Naganov
Browse files

Audio HAL default implementation: reduce logspam

Legacy BT A2DP implementation of Audio HAL may be returning EAGAIN
from get_presentation_position, this is normal and shouldn't be
logged. Otherwise we create logspam as this HAL function is called
often.

Bug: 30222631
Change-Id: I9394dbc1d53c1f4136c2d538fccd519964ff1697
Test: play music via BT A2DP
parent f2336a17
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -44,8 +44,8 @@ Stream::~Stream() {
}

// static
Result Stream::analyzeStatus(const char* funcName, int status, int ignoreError) {
    if (status != 0 && status != -ignoreError) {
Result Stream::analyzeStatus(const char* funcName, int status, int ignoreError, int ignoreError2) {
    if (status != 0 && status != -ignoreError && status != -ignoreError2) {
        ALOGW("Error from HAL stream in function %s: %s", funcName, strerror(-status));
    }
    switch (status) {
+2 −1
Original line number Diff line number Diff line
@@ -79,7 +79,8 @@ struct Stream : public IStream, public ParametersUtil {
    Return<Result> close()  override;

    // Utility methods for extending interfaces.
    static Result analyzeStatus(const char* funcName, int status, int ignoreError = OK);
    static Result analyzeStatus(
            const char* funcName, int status, int ignoreError = OK, int ignoreError2 = OK);

  private:
    audio_stream_t *mStream;
+3 −2
Original line number Diff line number Diff line
@@ -405,8 +405,9 @@ Result StreamOut::getPresentationPositionImpl(
            "get_presentation_position",
            stream->get_presentation_position(stream, frames, &halTimeStamp),
            // Don't logspam on EINVAL--it's normal for get_presentation_position
            // to return it sometimes.
            EINVAL);
            // to return it sometimes. EAGAIN may be returned by A2DP audio HAL
            // implementation.
            EINVAL, EAGAIN);
    if (retval == Result::OK) {
        timeStamp->tvSec = halTimeStamp.tv_sec;
        timeStamp->tvNSec = halTimeStamp.tv_nsec;