Loading include/media/stagefright/ACodec.h +3 −3 Original line number Diff line number Diff line Loading @@ -35,7 +35,7 @@ namespace android { struct ABuffer; struct MemoryDealer; struct DescribeColorFormatParams; struct DescribeColorFormat2Params; struct ACodec : public AHierarchicalStateMachine, public CodecBase { ACodec(); Loading Loading @@ -442,10 +442,10 @@ private: OMX_ERRORTYPE error = OMX_ErrorUndefined, status_t internalError = UNKNOWN_ERROR); static bool describeDefaultColorFormat(DescribeColorFormatParams &describeParams); static bool describeDefaultColorFormat(DescribeColorFormat2Params &describeParams); static bool describeColorFormat( const sp<IOMX> &omx, IOMX::node_id node, DescribeColorFormatParams &describeParams); DescribeColorFormat2Params &describeParams); status_t requestIDRFrame(); status_t setParameters(const sp<AMessage> ¶ms); Loading media/libstagefright/ACodec.cpp +36 −34 Original line number Diff line number Diff line Loading @@ -52,6 +52,7 @@ #include <OMX_AsString.h> #include "include/avc_utils.h" #include "omx/OMXUtils.h" namespace android { Loading Loading @@ -101,15 +102,6 @@ static inline status_t makeNoSideEffectStatus(status_t err) { } } template<class T> static void InitOMXParams(T *params) { params->nSize = sizeof(T); params->nVersion.s.nVersionMajor = 1; params->nVersion.s.nVersionMinor = 0; params->nVersion.s.nRevision = 0; params->nVersion.s.nStep = 0; } struct MessageList : public RefBase { MessageList() { } Loading Loading @@ -3985,11 +3977,11 @@ void ACodec::processDeferredMessages() { } // static bool ACodec::describeDefaultColorFormat(DescribeColorFormatParams ¶ms) { MediaImage &image = params.sMediaImage; bool ACodec::describeDefaultColorFormat(DescribeColorFormat2Params ¶ms) { MediaImage2 &image = params.sMediaImage; memset(&image, 0, sizeof(image)); image.mType = MediaImage::MEDIA_IMAGE_TYPE_UNKNOWN; image.mType = MediaImage2::MEDIA_IMAGE_TYPE_UNKNOWN; image.mNumPlanes = 0; const OMX_COLOR_FORMATTYPE fmt = params.eColorFormat; Loading Loading @@ -4024,9 +4016,10 @@ bool ACodec::describeDefaultColorFormat(DescribeColorFormatParams ¶ms) { } // set-up YUV format image.mType = MediaImage::MEDIA_IMAGE_TYPE_YUV; image.mType = MediaImage2::MEDIA_IMAGE_TYPE_YUV; image.mNumPlanes = 3; image.mBitDepth = 8; image.mBitDepthAllocated = 8; image.mPlane[image.Y].mOffset = 0; image.mPlane[image.Y].mColInc = 1; image.mPlane[image.Y].mRowInc = params.nStride; Loading Loading @@ -4099,26 +4092,34 @@ bool ACodec::describeDefaultColorFormat(DescribeColorFormatParams ¶ms) { // static bool ACodec::describeColorFormat( const sp<IOMX> &omx, IOMX::node_id node, DescribeColorFormatParams &describeParams) DescribeColorFormat2Params &describeParams) { OMX_INDEXTYPE describeColorFormatIndex; if (omx->getExtensionIndex( node, "OMX.google.android.index.describeColorFormat", &describeColorFormatIndex) != OK || omx->getParameter( &describeColorFormatIndex) == OK) { DescribeColorFormatParams describeParamsV1(describeParams); if (omx->getParameter( node, describeColorFormatIndex, &describeParams, sizeof(describeParams)) != OK) { return describeDefaultColorFormat(describeParams); &describeParamsV1, sizeof(describeParamsV1)) == OK) { describeParams.initFromV1(describeParamsV1); return describeParams.sMediaImage.mType != MediaImage2::MEDIA_IMAGE_TYPE_UNKNOWN; } return describeParams.sMediaImage.mType != MediaImage::MEDIA_IMAGE_TYPE_UNKNOWN; } else if (omx->getExtensionIndex( node, "OMX.google.android.index.describeColorFormat2", &describeColorFormatIndex) == OK && omx->getParameter( node, describeColorFormatIndex, &describeParams, sizeof(describeParams)) == OK) { return describeParams.sMediaImage.mType != MediaImage2::MEDIA_IMAGE_TYPE_UNKNOWN; } return describeDefaultColorFormat(describeParams); } // static bool ACodec::isFlexibleColorFormat( const sp<IOMX> &omx, IOMX::node_id node, uint32_t colorFormat, bool usingNativeBuffers, OMX_U32 *flexibleEquivalent) { DescribeColorFormatParams describeParams; DescribeColorFormat2Params describeParams; InitOMXParams(&describeParams); describeParams.eColorFormat = (OMX_COLOR_FORMATTYPE)colorFormat; // reasonable dummy values Loading @@ -4134,11 +4135,11 @@ bool ACodec::isFlexibleColorFormat( return false; } const MediaImage &img = describeParams.sMediaImage; if (img.mType == MediaImage::MEDIA_IMAGE_TYPE_YUV) { if (img.mNumPlanes != 3 || img.mPlane[img.Y].mHorizSubsampling != 1 || img.mPlane[img.Y].mVertSubsampling != 1) { const MediaImage2 &img = describeParams.sMediaImage; if (img.mType == MediaImage2::MEDIA_IMAGE_TYPE_YUV) { if (img.mNumPlanes != 3 || img.mPlane[img.Y].mHorizSubsampling != 1 || img.mPlane[img.Y].mVertSubsampling != 1) { return false; } Loading Loading @@ -4188,7 +4189,7 @@ status_t ACodec::getPortFormat(OMX_U32 portIndex, sp<AMessage> ¬ify) { notify->setInt32("color-format", videoDef->eColorFormat); if (mNativeWindow == NULL) { DescribeColorFormatParams describeParams; DescribeColorFormat2Params describeParams; InitOMXParams(&describeParams); describeParams.eColorFormat = videoDef->eColorFormat; describeParams.nFrameWidth = videoDef->nFrameWidth; Loading @@ -4204,12 +4205,13 @@ status_t ACodec::getPortFormat(OMX_U32 portIndex, sp<AMessage> ¬ify) { &describeParams.sMediaImage, sizeof(describeParams.sMediaImage))); MediaImage *img = &describeParams.sMediaImage; ALOGV("[%s] MediaImage { F(%ux%u) @%u+%u+%u @%u+%u+%u @%u+%u+%u }", mComponentName.c_str(), img->mWidth, img->mHeight, img->mPlane[0].mOffset, img->mPlane[0].mColInc, img->mPlane[0].mRowInc, img->mPlane[1].mOffset, img->mPlane[1].mColInc, img->mPlane[1].mRowInc, img->mPlane[2].mOffset, img->mPlane[2].mColInc, img->mPlane[2].mRowInc); MediaImage2 &img = describeParams.sMediaImage; MediaImage2::PlaneInfo *plane = img.mPlane; ALOGV("[%s] MediaImage { F(%ux%u) @%u+%d+%d @%u+%d+%d @%u+%d+%d }", mComponentName.c_str(), img.mWidth, img.mHeight, plane[0].mOffset, plane[0].mColInc, plane[0].mRowInc, plane[1].mOffset, plane[1].mColInc, plane[1].mRowInc, plane[2].mOffset, plane[2].mColInc, plane[2].mRowInc); } } Loading media/libstagefright/include/OMXNodeInstance.h +0 −2 Original line number Diff line number Diff line Loading @@ -29,8 +29,6 @@ class IOMXObserver; struct OMXMaster; class GraphicBufferSource; status_t StatusFromOMXError(OMX_ERRORTYPE err); struct OMXNodeInstance { OMXNodeInstance( OMX *owner, const sp<IOMXObserver> &observer, const char *name); Loading media/libstagefright/omx/Android.mk +1 −0 Original line number Diff line number Diff line Loading @@ -7,6 +7,7 @@ LOCAL_SRC_FILES:= \ OMX.cpp \ OMXMaster.cpp \ OMXNodeInstance.cpp \ OMXUtils.cpp \ SimpleSoftOMXComponent.cpp \ SoftOMXComponent.cpp \ SoftOMXPlugin.cpp \ Loading media/libstagefright/omx/OMX.cpp +1 −0 Original line number Diff line number Diff line Loading @@ -31,6 +31,7 @@ #include <utils/threads.h> #include "OMXMaster.h" #include "OMXUtils.h" #include <OMX_AsString.h> #include <OMX_Component.h> Loading Loading
include/media/stagefright/ACodec.h +3 −3 Original line number Diff line number Diff line Loading @@ -35,7 +35,7 @@ namespace android { struct ABuffer; struct MemoryDealer; struct DescribeColorFormatParams; struct DescribeColorFormat2Params; struct ACodec : public AHierarchicalStateMachine, public CodecBase { ACodec(); Loading Loading @@ -442,10 +442,10 @@ private: OMX_ERRORTYPE error = OMX_ErrorUndefined, status_t internalError = UNKNOWN_ERROR); static bool describeDefaultColorFormat(DescribeColorFormatParams &describeParams); static bool describeDefaultColorFormat(DescribeColorFormat2Params &describeParams); static bool describeColorFormat( const sp<IOMX> &omx, IOMX::node_id node, DescribeColorFormatParams &describeParams); DescribeColorFormat2Params &describeParams); status_t requestIDRFrame(); status_t setParameters(const sp<AMessage> ¶ms); Loading
media/libstagefright/ACodec.cpp +36 −34 Original line number Diff line number Diff line Loading @@ -52,6 +52,7 @@ #include <OMX_AsString.h> #include "include/avc_utils.h" #include "omx/OMXUtils.h" namespace android { Loading Loading @@ -101,15 +102,6 @@ static inline status_t makeNoSideEffectStatus(status_t err) { } } template<class T> static void InitOMXParams(T *params) { params->nSize = sizeof(T); params->nVersion.s.nVersionMajor = 1; params->nVersion.s.nVersionMinor = 0; params->nVersion.s.nRevision = 0; params->nVersion.s.nStep = 0; } struct MessageList : public RefBase { MessageList() { } Loading Loading @@ -3985,11 +3977,11 @@ void ACodec::processDeferredMessages() { } // static bool ACodec::describeDefaultColorFormat(DescribeColorFormatParams ¶ms) { MediaImage &image = params.sMediaImage; bool ACodec::describeDefaultColorFormat(DescribeColorFormat2Params ¶ms) { MediaImage2 &image = params.sMediaImage; memset(&image, 0, sizeof(image)); image.mType = MediaImage::MEDIA_IMAGE_TYPE_UNKNOWN; image.mType = MediaImage2::MEDIA_IMAGE_TYPE_UNKNOWN; image.mNumPlanes = 0; const OMX_COLOR_FORMATTYPE fmt = params.eColorFormat; Loading Loading @@ -4024,9 +4016,10 @@ bool ACodec::describeDefaultColorFormat(DescribeColorFormatParams ¶ms) { } // set-up YUV format image.mType = MediaImage::MEDIA_IMAGE_TYPE_YUV; image.mType = MediaImage2::MEDIA_IMAGE_TYPE_YUV; image.mNumPlanes = 3; image.mBitDepth = 8; image.mBitDepthAllocated = 8; image.mPlane[image.Y].mOffset = 0; image.mPlane[image.Y].mColInc = 1; image.mPlane[image.Y].mRowInc = params.nStride; Loading Loading @@ -4099,26 +4092,34 @@ bool ACodec::describeDefaultColorFormat(DescribeColorFormatParams ¶ms) { // static bool ACodec::describeColorFormat( const sp<IOMX> &omx, IOMX::node_id node, DescribeColorFormatParams &describeParams) DescribeColorFormat2Params &describeParams) { OMX_INDEXTYPE describeColorFormatIndex; if (omx->getExtensionIndex( node, "OMX.google.android.index.describeColorFormat", &describeColorFormatIndex) != OK || omx->getParameter( &describeColorFormatIndex) == OK) { DescribeColorFormatParams describeParamsV1(describeParams); if (omx->getParameter( node, describeColorFormatIndex, &describeParams, sizeof(describeParams)) != OK) { return describeDefaultColorFormat(describeParams); &describeParamsV1, sizeof(describeParamsV1)) == OK) { describeParams.initFromV1(describeParamsV1); return describeParams.sMediaImage.mType != MediaImage2::MEDIA_IMAGE_TYPE_UNKNOWN; } return describeParams.sMediaImage.mType != MediaImage::MEDIA_IMAGE_TYPE_UNKNOWN; } else if (omx->getExtensionIndex( node, "OMX.google.android.index.describeColorFormat2", &describeColorFormatIndex) == OK && omx->getParameter( node, describeColorFormatIndex, &describeParams, sizeof(describeParams)) == OK) { return describeParams.sMediaImage.mType != MediaImage2::MEDIA_IMAGE_TYPE_UNKNOWN; } return describeDefaultColorFormat(describeParams); } // static bool ACodec::isFlexibleColorFormat( const sp<IOMX> &omx, IOMX::node_id node, uint32_t colorFormat, bool usingNativeBuffers, OMX_U32 *flexibleEquivalent) { DescribeColorFormatParams describeParams; DescribeColorFormat2Params describeParams; InitOMXParams(&describeParams); describeParams.eColorFormat = (OMX_COLOR_FORMATTYPE)colorFormat; // reasonable dummy values Loading @@ -4134,11 +4135,11 @@ bool ACodec::isFlexibleColorFormat( return false; } const MediaImage &img = describeParams.sMediaImage; if (img.mType == MediaImage::MEDIA_IMAGE_TYPE_YUV) { if (img.mNumPlanes != 3 || img.mPlane[img.Y].mHorizSubsampling != 1 || img.mPlane[img.Y].mVertSubsampling != 1) { const MediaImage2 &img = describeParams.sMediaImage; if (img.mType == MediaImage2::MEDIA_IMAGE_TYPE_YUV) { if (img.mNumPlanes != 3 || img.mPlane[img.Y].mHorizSubsampling != 1 || img.mPlane[img.Y].mVertSubsampling != 1) { return false; } Loading Loading @@ -4188,7 +4189,7 @@ status_t ACodec::getPortFormat(OMX_U32 portIndex, sp<AMessage> ¬ify) { notify->setInt32("color-format", videoDef->eColorFormat); if (mNativeWindow == NULL) { DescribeColorFormatParams describeParams; DescribeColorFormat2Params describeParams; InitOMXParams(&describeParams); describeParams.eColorFormat = videoDef->eColorFormat; describeParams.nFrameWidth = videoDef->nFrameWidth; Loading @@ -4204,12 +4205,13 @@ status_t ACodec::getPortFormat(OMX_U32 portIndex, sp<AMessage> ¬ify) { &describeParams.sMediaImage, sizeof(describeParams.sMediaImage))); MediaImage *img = &describeParams.sMediaImage; ALOGV("[%s] MediaImage { F(%ux%u) @%u+%u+%u @%u+%u+%u @%u+%u+%u }", mComponentName.c_str(), img->mWidth, img->mHeight, img->mPlane[0].mOffset, img->mPlane[0].mColInc, img->mPlane[0].mRowInc, img->mPlane[1].mOffset, img->mPlane[1].mColInc, img->mPlane[1].mRowInc, img->mPlane[2].mOffset, img->mPlane[2].mColInc, img->mPlane[2].mRowInc); MediaImage2 &img = describeParams.sMediaImage; MediaImage2::PlaneInfo *plane = img.mPlane; ALOGV("[%s] MediaImage { F(%ux%u) @%u+%d+%d @%u+%d+%d @%u+%d+%d }", mComponentName.c_str(), img.mWidth, img.mHeight, plane[0].mOffset, plane[0].mColInc, plane[0].mRowInc, plane[1].mOffset, plane[1].mColInc, plane[1].mRowInc, plane[2].mOffset, plane[2].mColInc, plane[2].mRowInc); } } Loading
media/libstagefright/include/OMXNodeInstance.h +0 −2 Original line number Diff line number Diff line Loading @@ -29,8 +29,6 @@ class IOMXObserver; struct OMXMaster; class GraphicBufferSource; status_t StatusFromOMXError(OMX_ERRORTYPE err); struct OMXNodeInstance { OMXNodeInstance( OMX *owner, const sp<IOMXObserver> &observer, const char *name); Loading
media/libstagefright/omx/Android.mk +1 −0 Original line number Diff line number Diff line Loading @@ -7,6 +7,7 @@ LOCAL_SRC_FILES:= \ OMX.cpp \ OMXMaster.cpp \ OMXNodeInstance.cpp \ OMXUtils.cpp \ SimpleSoftOMXComponent.cpp \ SoftOMXComponent.cpp \ SoftOMXPlugin.cpp \ Loading
media/libstagefright/omx/OMX.cpp +1 −0 Original line number Diff line number Diff line Loading @@ -31,6 +31,7 @@ #include <utils/threads.h> #include "OMXMaster.h" #include "OMXUtils.h" #include <OMX_AsString.h> #include <OMX_Component.h> Loading