summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@localhost>2013-06-04 05:41:25 -0700
committerGerrit - the friendly Code Review server <code-review@localhost>2013-06-04 05:41:25 -0700
commit5bf985ca9530a88589c4ecf5397ab702af3a0d6d (patch)
tree2c92118ef5f40531804e3ed7661b45553e0a6845
parent248d7140cad15497507508ee05b653473bb9605e (diff)
parentf361b3b746026fdb026141f32604a504b0e9c8bb (diff)
downloadandroid_hardware_qcom_media-5bf985ca9530a88589c4ecf5397ab702af3a0d6d.tar.gz
android_hardware_qcom_media-5bf985ca9530a88589c4ecf5397ab702af3a0d6d.tar.bz2
android_hardware_qcom_media-5bf985ca9530a88589c4ecf5397ab702af3a0d6d.zip
Merge "libc2dcolorconvert: Amend convertC2D api to accept fd offset"
-rw-r--r--libc2dcolorconvert/C2DColorConverter.cpp16
-rw-r--r--libc2dcolorconvert/C2DColorConverter.h2
2 files changed, 9 insertions, 9 deletions
diff --git a/libc2dcolorconvert/C2DColorConverter.cpp b/libc2dcolorconvert/C2DColorConverter.cpp
index e8406a6d..2b583e15 100644
--- a/libc2dcolorconvert/C2DColorConverter.cpp
+++ b/libc2dcolorconvert/C2DColorConverter.cpp
@@ -57,12 +57,12 @@ public:
int32_t dumpOutput(char * filename, char mode);
protected:
virtual ~C2DColorConverter();
- virtual int convertC2D(int srcFd, void * srcData, int dstFd, void * dstData);
+ virtual int convertC2D(int srcFd, void *srcBase, void * srcData, int dstFd, void *dstBase, void * dstData);
private:
virtual bool isYUVSurface(ColorConvertFormat format);
virtual void *getDummySurfaceDef(ColorConvertFormat format, size_t width, size_t height, bool isSource);
- virtual C2D_STATUS updateYUVSurfaceDef(int fd, void * data, bool isSource);
+ virtual C2D_STATUS updateYUVSurfaceDef(int fd, void *base, void * data, bool isSource);
virtual C2D_STATUS updateRGBSurfaceDef(int fd, void * data, bool isSource);
virtual uint32_t getC2DFormat(ColorConvertFormat format);
virtual size_t calcStride(ColorConvertFormat format, size_t width);
@@ -198,7 +198,7 @@ C2DColorConverter::~C2DColorConverter()
close(mKgslFd);
}
-int C2DColorConverter::convertC2D(int srcFd, void * srcData, int dstFd, void * dstData)
+int C2DColorConverter::convertC2D(int srcFd, void *srcBase, void * srcData, int dstFd, void *dstBase, void * dstData)
{
C2D_STATUS ret;
@@ -213,7 +213,7 @@ int C2DColorConverter::convertC2D(int srcFd, void * srcData, int dstFd, void * d
}
if (isYUVSurface(mSrcFormat)) {
- ret = updateYUVSurfaceDef(srcFd, srcData, true);
+ ret = updateYUVSurfaceDef(srcFd, srcBase, srcData, true);
} else {
ret = updateRGBSurfaceDef(srcFd, srcData, true);
}
@@ -224,7 +224,7 @@ int C2DColorConverter::convertC2D(int srcFd, void * srcData, int dstFd, void * d
}
if (isYUVSurface(mDstFormat)) {
- ret = updateYUVSurfaceDef(dstFd, dstData, false);
+ ret = updateYUVSurfaceDef(dstFd, dstBase, dstData, false);
} else {
ret = updateRGBSurfaceDef(dstFd, dstData, false);
}
@@ -321,12 +321,12 @@ void* C2DColorConverter::getDummySurfaceDef(ColorConvertFormat format, size_t wi
}
}
-C2D_STATUS C2DColorConverter::updateYUVSurfaceDef(int fd, void * data, bool isSource)
+C2D_STATUS C2DColorConverter::updateYUVSurfaceDef(int fd, void *base, void *data, bool isSource)
{
if (isSource) {
C2D_YUV_SURFACE_DEF * srcSurfaceDef = (C2D_YUV_SURFACE_DEF *)mSrcSurfaceDef;
srcSurfaceDef->plane0 = data;
- srcSurfaceDef->phys0 = getMappedGPUAddr(fd, data, mSrcSize);
+ srcSurfaceDef->phys0 = getMappedGPUAddr(fd, data, mSrcSize) + ((uint8_t *)data - (uint8_t *)base);
srcSurfaceDef->plane1 = (uint8_t *)data + mSrcYSize;
srcSurfaceDef->phys1 = (uint8_t *)srcSurfaceDef->phys0 + mSrcYSize;
srcSurfaceDef->plane2 = (uint8_t *)srcSurfaceDef->plane1 + mSrcYSize/4;
@@ -338,7 +338,7 @@ C2D_STATUS C2DColorConverter::updateYUVSurfaceDef(int fd, void * data, bool isSo
} else {
C2D_YUV_SURFACE_DEF * dstSurfaceDef = (C2D_YUV_SURFACE_DEF *)mDstSurfaceDef;
dstSurfaceDef->plane0 = data;
- dstSurfaceDef->phys0 = getMappedGPUAddr(fd, data, mDstSize);
+ dstSurfaceDef->phys0 = getMappedGPUAddr(fd, data, mDstSize) + ((uint8_t *)data - (uint8_t *)base);
dstSurfaceDef->plane1 = (uint8_t *)data + mDstYSize;
dstSurfaceDef->phys1 = (uint8_t *)dstSurfaceDef->phys0 + mDstYSize;
dstSurfaceDef->plane2 = (uint8_t *)dstSurfaceDef->plane1 + mDstYSize/4;
diff --git a/libc2dcolorconvert/C2DColorConverter.h b/libc2dcolorconvert/C2DColorConverter.h
index 287b14a2..f95944f3 100644
--- a/libc2dcolorconvert/C2DColorConverter.h
+++ b/libc2dcolorconvert/C2DColorConverter.h
@@ -95,7 +95,7 @@ class C2DColorConverterBase {
public:
virtual ~C2DColorConverterBase(){};
- virtual int convertC2D(int srcFd, void * srcData, int dstFd, void * dstData) = 0;
+ virtual int convertC2D(int srcFd, void *srcBase, void * srcData, int dstFd, void *dstBase, void * dstData) = 0;
virtual int32_t getBuffReq(int32_t port, C2DBuffReq *req) = 0;
virtual int32_t dumpOutput(char * filename, char mode) = 0;
};