summaryrefslogtreecommitdiffstats
path: root/include/media/stagefright/YUVCanvas.h
diff options
context:
space:
mode:
authorNipun Kwatra <nkwatra@google.com>2010-07-27 22:13:04 -0700
committerNipun Kwatra <nkwatra@google.com>2010-07-29 12:15:57 -0700
commitdb205a1d75c1e9a7d0dbd8fa011335249ad6f4ac (patch)
treef9f88a1c59d5028e9b5fd5fa3a3c8fb959334c30 /include/media/stagefright/YUVCanvas.h
parentac36fde15b7bc14ba27cdb21a0aeb5d7356c47f4 (diff)
downloadframeworks_av-db205a1d75c1e9a7d0dbd8fa011335249ad6f4ac.zip
frameworks_av-db205a1d75c1e9a7d0dbd8fa011335249ad6f4ac.tar.gz
frameworks_av-db205a1d75c1e9a7d0dbd8fa011335249ad6f4ac.tar.bz2
Adding YUVImage and YUVCanvas.
YUVImage is a container class to hold YUV data and provide various utilities, e.g. to set/get pixel values for different YUV formats, fast copying routines, etc. Currently supported YUV420 Planar and YUV420 Semi Planar. YUVCanvas holds a reference to a YUVImage on which it can do various drawing operations. Change-Id: I052a57b7fbc834efe1626914f76c04c091996cac
Diffstat (limited to 'include/media/stagefright/YUVCanvas.h')
-rw-r--r--include/media/stagefright/YUVCanvas.h67
1 files changed, 67 insertions, 0 deletions
diff --git a/include/media/stagefright/YUVCanvas.h b/include/media/stagefright/YUVCanvas.h
new file mode 100644
index 0000000..5e17046
--- /dev/null
+++ b/include/media/stagefright/YUVCanvas.h
@@ -0,0 +1,67 @@
+/*
+ * Copyright (C) 2010 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+// YUVCanvas holds a reference to a YUVImage on which it can do various
+// drawing operations. It provides various utility functions for filling,
+// cropping, etc.
+
+
+#ifndef YUV_CANVAS_H_
+
+#define YUV_CANVAS_H_
+
+#include <stdint.h>
+
+namespace android {
+
+class YUVImage;
+class Rect;
+
+class YUVCanvas {
+public:
+
+ // Constructor takes in reference to a yuvImage on which it can do
+ // various drawing opreations.
+ YUVCanvas(YUVImage &yuvImage);
+ ~YUVCanvas();
+
+ // Fills the entire image with the given YUV values.
+ void FillYUV(uint8_t yValue, uint8_t uValue, uint8_t vValue);
+
+ // Fills the rectangular region [startX,endX]x[startY,endY] with the given YUV values.
+ void FillYUVRectangle(const Rect& rect,
+ uint8_t yValue, uint8_t uValue, uint8_t vValue);
+
+ // Copies the region [startX,endX]x[startY,endY] from srcImage into the
+ // canvas' target image (mYUVImage) starting at
+ // (destinationStartX,destinationStartY).
+ // Note that undefined behavior may occur if srcImage is same as the canvas'
+ // target image.
+ void CopyImageRect(
+ const Rect& srcRect,
+ int32_t destStartX, int32_t destStartY,
+ const YUVImage &srcImage);
+
+private:
+ YUVImage& mYUVImage;
+
+ YUVCanvas(const YUVCanvas &);
+ YUVCanvas &operator=(const YUVCanvas &);
+};
+
+} // namespace android
+
+#endif // YUV_CANVAS_H_