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

Commit 7d1cd4aa authored by Rachad's avatar Rachad Committed by Android (Google) Code Review
Browse files

Merge "Tunneled Video Playback support" into lmp-dev

parents 45e2fc22 7cb0d390
Loading
Loading
Loading
Loading
+1 −0
Original line number Original line Diff line number Diff line
@@ -145,6 +145,7 @@ private:
    int dispatchSetUsage(va_list args);
    int dispatchSetUsage(va_list args);
    int dispatchLock(va_list args);
    int dispatchLock(va_list args);
    int dispatchUnlockAndPost(va_list args);
    int dispatchUnlockAndPost(va_list args);
    int dispatchSetSidebandStream(va_list args);


protected:
protected:
    virtual int dequeueBuffer(ANativeWindowBuffer** buffer, int* fenceFd);
    virtual int dequeueBuffer(ANativeWindowBuffer** buffer, int* fenceFd);
+21 −0
Original line number Original line Diff line number Diff line
@@ -214,6 +214,27 @@ struct DescribeColorFormatParams {
    MediaImage sMediaImage;
    MediaImage sMediaImage;
};
};


// A pointer to this struct is passed to OMX_SetParameter or OMX_GetParameter
// when the extension index for the
// 'OMX.google.android.index.configureVideoTunnelMode' extension is  given.
// If the extension is supported then tunneled playback mode should be supported
// by the codec. If bTunneled is set to OMX_TRUE then the video decoder should
// operate in "tunneled" mode and output its decoded frames directly to the
// sink. In this case nAudioHwSync is the HW SYNC ID of the audio HAL Output
// stream to sync the video with. If bTunneled is set to OMX_FALSE, "tunneled"
// mode should be disabled and nAudioHwSync should be ignored.
// OMX_GetParameter is used to query tunneling configuration. bTunneled should
// return whether decoder is operating in tunneled mode, and if it is,
// pSidebandWindow should contain the codec allocated sideband window handle.
struct ConfigureVideoTunnelModeParams {
    OMX_U32 nSize;              // IN
    OMX_VERSIONTYPE nVersion;   // IN
    OMX_U32 nPortIndex;         // IN
    OMX_BOOL bTunneled;         // IN/OUT
    OMX_U32 nAudioHwSync;       // IN
    OMX_PTR pSidebandWindow;    // OUT
};

}  // namespace android
}  // namespace android


extern android::OMXPluginBase *createOMXPlugin();
extern android::OMXPluginBase *createOMXPlugin();
+10 −0
Original line number Original line Diff line number Diff line
@@ -24,6 +24,7 @@


#include <utils/Log.h>
#include <utils/Log.h>
#include <utils/Trace.h>
#include <utils/Trace.h>
#include <utils/NativeHandle.h>


#include <ui/Fence.h>
#include <ui/Fence.h>


@@ -443,6 +444,9 @@ int Surface::perform(int operation, va_list args)
    case NATIVE_WINDOW_API_DISCONNECT:
    case NATIVE_WINDOW_API_DISCONNECT:
        res = dispatchDisconnect(args);
        res = dispatchDisconnect(args);
        break;
        break;
    case NATIVE_WINDOW_SET_SIDEBAND_STREAM:
        res = dispatchSetSidebandStream(args);
        break;
    default:
    default:
        res = NAME_NOT_FOUND;
        res = NAME_NOT_FOUND;
        break;
        break;
@@ -533,6 +537,12 @@ int Surface::dispatchUnlockAndPost(va_list args __attribute__((unused))) {
    return unlockAndPost();
    return unlockAndPost();
}
}


int Surface::dispatchSetSidebandStream(va_list args) {
    native_handle_t* sH = va_arg(args, native_handle_t*);
    sp<NativeHandle> sidebandHandle = NativeHandle::create(sH, false);
    setSidebandStream(sidebandHandle);
    return OK;
}


int Surface::connect(int api) {
int Surface::connect(int api) {
    ATRACE_CALL();
    ATRACE_CALL();