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

Commit 5646429a authored by Dave Sparks's avatar Dave Sparks Committed by Android Git Automerger
Browse files

am f63779b3: am 9472b35b: am 14f89404: Fix media player decode function. Bug 2317821.

Merge commit 'f63779b392275265b3b13728c78a0a5f4ac10c01'

* commit 'f63779b392275265b3b13728c78a0a5f4ac10c01':
  Fix media player decode function. Bug 2317821.
parents c5e1bae0 cef5f487
Loading
Loading
Loading
Loading
+17 −7
Original line number Diff line number Diff line
@@ -1605,12 +1605,14 @@ status_t MediaPlayerService::AudioCache::open(
        uint32_t sampleRate, int channelCount, int format, int bufferCount,
        AudioCallback cb, void *cookie)
{
    LOGV("open(%u, %d, %d, %d)", sampleRate, channelCount, format, bufferCount);
    if (cb != NULL) {
        return UNKNOWN_ERROR;  // TODO: implement this.
    }
    if (mHeap->getHeapID() < 0) {
        return NO_INIT;
    }

    LOGV("open(%u, %d, %d, %d)", sampleRate, channelCount, format, bufferCount);
    if (mHeap->getHeapID() < 0) return NO_INIT;
    mSampleRate = sampleRate;
    mChannelCount = (uint16_t)channelCount;
    mFormat = (uint16_t)format;
@@ -1659,16 +1661,24 @@ void MediaPlayerService::AudioCache::notify(void* cookie, int msg, int ext1, int
    AudioCache* p = static_cast<AudioCache*>(cookie);

    // ignore buffering messages
    if (msg == MEDIA_BUFFERING_UPDATE) return;

    // set error condition
    if (msg == MEDIA_ERROR) {
    switch (msg)
    {
    case MEDIA_ERROR:
        LOGE("Error %d, %d occurred", ext1, ext2);
        p->mError = ext1;
        break;
    case MEDIA_PREPARED:
        LOGV("prepared");
        break;
    case MEDIA_PLAYBACK_COMPLETE:
        LOGV("playback complete");
        break;
    default:
        LOGV("ignored");
        return;
    }

    // wake up thread
    LOGV("wakeup thread");
    p->mCommandComplete = true;
    p->mSignal.signal();
}