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

Commit e4e088fc authored by Chong Zhang's avatar Chong Zhang
Browse files

transcoder: remove libbinder usage

bug: 159172726
test: transcoder unit tests and MediaTranscodingService unit tests.

Change-Id: Ida859f529b46c4e97d9eeaa217e1ee60cd46b527
parent 28b27204
Loading
Loading
Loading
Loading
+5 −5
Original line number Original line Diff line number Diff line
@@ -155,7 +155,7 @@ public:
    }
    }


    virtual void onCodecResourceLost(const MediaTranscoder* transcoder __unused,
    virtual void onCodecResourceLost(const MediaTranscoder* transcoder __unused,
                                     const std::shared_ptr<const Parcel>& pausedState
                                     const std::shared_ptr<ndk::ScopedAParcel>& pausedState
                                             __unused) override {
                                             __unused) override {
        ALOGV("%s: session {%lld, %d}", __FUNCTION__, (long long)mClientId, mSessionId);
        ALOGV("%s: session {%lld, %d}", __FUNCTION__, (long long)mClientId, mSessionId);
    }
    }
@@ -189,7 +189,7 @@ void TranscoderWrapper::reportError(ClientIdType clientId, SessionIdType session
            auto it = mPausedStateMap.find(SessionKeyType(clientId, sessionId));
            auto it = mPausedStateMap.find(SessionKeyType(clientId, sessionId));
            if (it == mPausedStateMap.end()) {
            if (it == mPausedStateMap.end()) {
                mPausedStateMap.emplace(SessionKeyType(clientId, sessionId),
                mPausedStateMap.emplace(SessionKeyType(clientId, sessionId),
                                        std::shared_ptr<const Parcel>());
                                        new ndk::ScopedAParcel());
            }
            }


            callback->onResourceLost();
            callback->onResourceLost();
@@ -316,7 +316,7 @@ void TranscoderWrapper::onProgress(ClientIdType clientId, SessionIdType sessionI
media_status_t TranscoderWrapper::setupTranscoder(
media_status_t TranscoderWrapper::setupTranscoder(
        ClientIdType clientId, SessionIdType sessionId, const TranscodingRequestParcel& request,
        ClientIdType clientId, SessionIdType sessionId, const TranscodingRequestParcel& request,
        const std::shared_ptr<ITranscodingClientCallback>& clientCb,
        const std::shared_ptr<ITranscodingClientCallback>& clientCb,
        const std::shared_ptr<const Parcel>& pausedState) {
        const std::shared_ptr<ndk::ScopedAParcel>& pausedState) {
    if (clientCb == nullptr) {
    if (clientCb == nullptr) {
        ALOGE("client callback is null");
        ALOGE("client callback is null");
        return AMEDIA_ERROR_INVALID_PARAMETER;
        return AMEDIA_ERROR_INVALID_PARAMETER;
@@ -426,7 +426,7 @@ media_status_t TranscoderWrapper::handlePause(ClientIdType clientId, SessionIdTy


    ALOGI("%s: pausing transcoder", __FUNCTION__);
    ALOGI("%s: pausing transcoder", __FUNCTION__);


    std::shared_ptr<const Parcel> pauseStates;
    std::shared_ptr<ndk::ScopedAParcel> pauseStates;
    media_status_t err = mTranscoder->pause(&pauseStates);
    media_status_t err = mTranscoder->pause(&pauseStates);
    if (err != AMEDIA_OK) {
    if (err != AMEDIA_OK) {
        ALOGE("%s: failed to pause transcoder: %d", __FUNCTION__, err);
        ALOGE("%s: failed to pause transcoder: %d", __FUNCTION__, err);
@@ -441,7 +441,7 @@ media_status_t TranscoderWrapper::handlePause(ClientIdType clientId, SessionIdTy
media_status_t TranscoderWrapper::handleResume(
media_status_t TranscoderWrapper::handleResume(
        ClientIdType clientId, SessionIdType sessionId, const TranscodingRequestParcel& request,
        ClientIdType clientId, SessionIdType sessionId, const TranscodingRequestParcel& request,
        const std::shared_ptr<ITranscodingClientCallback>& clientCb) {
        const std::shared_ptr<ITranscodingClientCallback>& clientCb) {
    std::shared_ptr<const Parcel> pausedState;
    std::shared_ptr<ndk::ScopedAParcel> pausedState;
    auto it = mPausedStateMap.find(SessionKeyType(clientId, sessionId));
    auto it = mPausedStateMap.find(SessionKeyType(clientId, sessionId));
    if (it != mPausedStateMap.end()) {
    if (it != mPausedStateMap.end()) {
        pausedState = it->second;
        pausedState = it->second;
+5 −5
Original line number Original line Diff line number Diff line
@@ -66,7 +66,7 @@ private:
    std::mutex mLock;
    std::mutex mLock;
    std::condition_variable mCondition;
    std::condition_variable mCondition;
    std::list<Event> mQueue;  // GUARDED_BY(mLock);
    std::list<Event> mQueue;  // GUARDED_BY(mLock);
    std::map<SessionKeyType, std::shared_ptr<const Parcel>> mPausedStateMap;
    std::map<SessionKeyType, std::shared_ptr<ndk::ScopedAParcel>> mPausedStateMap;
    ClientIdType mCurrentClientId;
    ClientIdType mCurrentClientId;
    SessionIdType mCurrentSessionId;
    SessionIdType mCurrentSessionId;


@@ -82,10 +82,10 @@ private:
    media_status_t handleResume(ClientIdType clientId, SessionIdType sessionId,
    media_status_t handleResume(ClientIdType clientId, SessionIdType sessionId,
                                const TranscodingRequestParcel& request,
                                const TranscodingRequestParcel& request,
                                const std::shared_ptr<ITranscodingClientCallback>& callback);
                                const std::shared_ptr<ITranscodingClientCallback>& callback);
    media_status_t setupTranscoder(ClientIdType clientId, SessionIdType sessionId,
    media_status_t setupTranscoder(
                                   const TranscodingRequestParcel& request,
            ClientIdType clientId, SessionIdType sessionId, const TranscodingRequestParcel& request,
            const std::shared_ptr<ITranscodingClientCallback>& callback,
            const std::shared_ptr<ITranscodingClientCallback>& callback,
                                   const std::shared_ptr<const Parcel>& pausedState = nullptr);
            const std::shared_ptr<ndk::ScopedAParcel>& pausedState = nullptr);


    void cleanup();
    void cleanup();
    void reportError(ClientIdType clientId, SessionIdType sessionId, media_status_t err);
    void reportError(ClientIdType clientId, SessionIdType sessionId, media_status_t err);
+1 −2
Original line number Original line Diff line number Diff line
@@ -34,8 +34,7 @@ cc_defaults {
        "libmediandk",
        "libmediandk",
        "libnativewindow",
        "libnativewindow",
        "libutils",
        "libutils",
        // TODO: Use libbinder_ndk
        "libbinder_ndk",
        "libbinder",
    ],
    ],


    export_include_dirs: [
    export_include_dirs: [
+3 −4
Original line number Original line Diff line number Diff line
@@ -18,7 +18,6 @@
#define LOG_TAG "MediaTranscoder"
#define LOG_TAG "MediaTranscoder"


#include <android-base/logging.h>
#include <android-base/logging.h>
#include <binder/Parcel.h>
#include <fcntl.h>
#include <fcntl.h>
#include <media/MediaSampleReaderNDK.h>
#include <media/MediaSampleReaderNDK.h>
#include <media/MediaSampleWriter.h>
#include <media/MediaSampleWriter.h>
@@ -160,7 +159,7 @@ MediaTranscoder::MediaTranscoder(const std::shared_ptr<CallbackInterface>& callb


std::shared_ptr<MediaTranscoder> MediaTranscoder::create(
std::shared_ptr<MediaTranscoder> MediaTranscoder::create(
        const std::shared_ptr<CallbackInterface>& callbacks,
        const std::shared_ptr<CallbackInterface>& callbacks,
        const std::shared_ptr<const Parcel>& pausedState) {
        const std::shared_ptr<ndk::ScopedAParcel>& pausedState) {
    if (pausedState != nullptr) {
    if (pausedState != nullptr) {
        LOG(INFO) << "Initializing from paused state.";
        LOG(INFO) << "Initializing from paused state.";
    }
    }
@@ -325,9 +324,9 @@ media_status_t MediaTranscoder::start() {
    return AMEDIA_OK;
    return AMEDIA_OK;
}
}


media_status_t MediaTranscoder::pause(std::shared_ptr<const Parcel>* pausedState) {
media_status_t MediaTranscoder::pause(std::shared_ptr<ndk::ScopedAParcel>* pausedState) {
    // TODO: write internal states to parcel.
    // TODO: write internal states to parcel.
    *pausedState = std::make_shared<Parcel>();
    *pausedState = std::shared_ptr<::ndk::ScopedAParcel>(new ::ndk::ScopedAParcel());
    return cancel();
    return cancel();
}
}


+1 −1
Original line number Original line Diff line number Diff line
@@ -55,7 +55,7 @@ public:
                                  int32_t progress __unused) override {}
                                  int32_t progress __unused) override {}


    virtual void onCodecResourceLost(const MediaTranscoder* transcoder __unused,
    virtual void onCodecResourceLost(const MediaTranscoder* transcoder __unused,
                                     const std::shared_ptr<const Parcel>& pausedState
                                     const std::shared_ptr<ndk::ScopedAParcel>& pausedState
                                             __unused) override {}
                                             __unused) override {}


    bool waitForTranscodingFinished() {
    bool waitForTranscodingFinished() {
Loading