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

Commit a56d925b authored by Wei Jia's avatar Wei Jia Committed by Android Git Automerger
Browse files

am 8ef52462: am 78d9a2e7: Merge "MediaSync: clean up configureAudioTrack and...

am 8ef52462: am 78d9a2e7: Merge "MediaSync: clean up configureAudioTrack and configureSurface." into mnc-dev

* commit '8ef52462':
  MediaSync: clean up configureAudioTrack and configureSurface.
parents 9bf92537 8ef52462
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -75,11 +75,11 @@ public:

    // Called when MediaSync is used to render video. It should be called
    // before createInputSurface().
    status_t configureSurface(const sp<IGraphicBufferProducer> &output);
    status_t setSurface(const sp<IGraphicBufferProducer> &output);

    // Called when audio track is used as media clock source. It should be
    // called before updateQueuedAudioData().
    status_t configureAudioTrack(const sp<AudioTrack> &audioTrack);
    status_t setAudioTrack(const sp<AudioTrack> &audioTrack);

    // Create a surface for client to render video frames. This is the surface
    // on which the client should render video frames. Those video frames will
+8 −8
Original line number Diff line number Diff line
@@ -79,17 +79,17 @@ MediaSync::~MediaSync() {
    }
}

status_t MediaSync::configureSurface(const sp<IGraphicBufferProducer> &output) {
status_t MediaSync::setSurface(const sp<IGraphicBufferProducer> &output) {
    Mutex::Autolock lock(mMutex);

    // TODO: support suface change.
    if (mOutput != NULL) {
        ALOGE("configureSurface: output surface has already been configured.");
        ALOGE("setSurface: output surface has already been configured.");
        return INVALID_OPERATION;
    }

    if (output == NULL && mSyncSettings.mSource == AVSYNC_SOURCE_VSYNC) {
        ALOGE("configureSurface: output surface is used as sync source and cannot be removed.");
        ALOGE("setSurface: output surface is used as sync source and cannot be removed.");
        return INVALID_OPERATION;
    }

@@ -103,7 +103,7 @@ status_t MediaSync::configureSurface(const sp<IGraphicBufferProducer> &output) {
                            true /* producerControlledByApp */,
                            &queueBufferOutput);
        if (status != NO_ERROR) {
            ALOGE("configureSurface: failed to connect (%d)", status);
            ALOGE("setSurface: failed to connect (%d)", status);
            return status;
        }

@@ -114,17 +114,17 @@ status_t MediaSync::configureSurface(const sp<IGraphicBufferProducer> &output) {
}

// |audioTrack| is used only for querying information.
status_t MediaSync::configureAudioTrack(const sp<AudioTrack> &audioTrack) {
status_t MediaSync::setAudioTrack(const sp<AudioTrack> &audioTrack) {
    Mutex::Autolock lock(mMutex);

    // TODO: support audio track change.
    if (mAudioTrack != NULL) {
        ALOGE("configureAudioTrack: audioTrack has already been configured.");
        ALOGE("setAudioTrack: audioTrack has already been configured.");
        return INVALID_OPERATION;
    }

    if (audioTrack == NULL && mSyncSettings.mSource == AVSYNC_SOURCE_AUDIO) {
        ALOGE("configureAudioTrack: audioTrack is used as sync source and cannot be removed.");
        ALOGE("setAudioTrack: audioTrack is used as sync source and cannot be removed.");
        return INVALID_OPERATION;
    }

@@ -137,7 +137,7 @@ status_t MediaSync::configureAudioTrack(const sp<AudioTrack> &audioTrack) {
        }
        uint32_t nativeSampleRateInHz = audioTrack->getOriginalSampleRate();
        if (nativeSampleRateInHz <= 0) {
            ALOGE("configureAudioTrack: native sample rate should be positive.");
            ALOGE("setAudioTrack: native sample rate should be positive.");
            return BAD_VALUE;
        }
        mAudioTrack = audioTrack;