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

Commit 9f631981 authored by Dongwon Kang's avatar Dongwon Kang
Browse files

MediaPlayer2: use protobuf instead of parcel in invoke()

Test: pass MediaPlayer2Test
Bug: 63934228
Change-Id: Ie3d7c9352f369b6481e35c98e40b736cdff23204
parent 0d97cec0
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -56,6 +56,8 @@ cc_library {

    static_libs: [
        "libmedia_helper",
        "libmediaplayer2-protos",
        "libprotobuf-cpp-lite",
        "libstagefright_nuplayer2",
        "libstagefright_rtsp",
        "libstagefright_timedtext",
+5 −1
Original line number Diff line number Diff line
@@ -33,6 +33,10 @@
#include <media/stagefright/foundation/AHandler.h>
#include <mediaplayer2/MediaPlayer2Types.h>

#include "mediaplayer2.pb.h"

using android::media::MediaPlayer2Proto::PlayerMessage;

// Fwd decl to make sure everyone agrees that the scope of struct sockaddr_in is
// global, and not in android::
struct sockaddr_in;
@@ -217,7 +221,7 @@ public:
    //                data sent by the java layer.
    // @param[out] reply Parcel to hold the reply data. Cannot be null.
    // @return OK if the call was successful.
    virtual status_t invoke(const Parcel& request, Parcel *reply) = 0;
    virtual status_t invoke(const PlayerMessage &request, PlayerMessage *reply) = 0;

    // The Client in the MetadataPlayerService calls this method on
    // the native player to retrieve all or a subset of metadata.
+1 −1
Original line number Diff line number Diff line
@@ -90,7 +90,7 @@ public:
            status_t        setVolume(float leftVolume, float rightVolume);
            void            notify(int64_t srcId, int msg, int ext1, int ext2,
                                   const Parcel *obj = NULL);
            status_t        invoke(const Parcel& request, Parcel *reply);
            status_t        invoke(const PlayerMessage &request, PlayerMessage *reply);
            status_t        setMetadataFilter(const Parcel& filter);
            status_t        getMetadata(bool update_only, bool apply_filter, Parcel *metadata);
            status_t        setAudioSessionId(audio_session_t sessionId);
+2 −3
Original line number Diff line number Diff line
@@ -565,16 +565,15 @@ status_t MediaPlayer2::playNextDataSource(int64_t srcId) {
    return mPlayer->playNextDataSource(srcId);
}

status_t MediaPlayer2::invoke(const Parcel& request, Parcel *reply) {
status_t MediaPlayer2::invoke(const PlayerMessage &request, PlayerMessage *reply) {
    Mutex::Autolock _l(mLock);
    const bool hasBeenInitialized =
            (mCurrentState != MEDIA_PLAYER2_STATE_ERROR) &&
            ((mCurrentState & MEDIA_PLAYER2_IDLE) != MEDIA_PLAYER2_IDLE);
    if ((mPlayer == NULL) || !hasBeenInitialized) {
        ALOGE("invoke failed: wrong state %X, mPlayer(%p)", mCurrentState, mPlayer.get());
        ALOGE("invoke() failed: wrong state %X, mPlayer(%p)", mCurrentState, mPlayer.get());
        return INVALID_OPERATION;
    }
    ALOGV("invoke %zu", request.dataSize());
    return mPlayer->invoke(request, reply);
}

+1 −0
Original line number Diff line number Diff line
@@ -54,6 +54,7 @@ cc_library_static {

    static_libs: [
        "libmedia_helper",
        "libmediaplayer2-protos",
    ],

    name: "libstagefright_nuplayer2",
Loading