Merge "Tunneled Video Playback support" into lmp-dev
This commit is contained in:
commit
7d1cd4aae2
@ -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);
|
||||||
|
@ -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();
|
||||||
|
@ -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();
|
||||||
|
Loading…
Reference in New Issue
Block a user