diff options
Diffstat (limited to 'exynos5/hal/include/SecJpegEncoder.h')
-rw-r--r-- | exynos5/hal/include/SecJpegEncoder.h | 157 |
1 files changed, 0 insertions, 157 deletions
diff --git a/exynos5/hal/include/SecJpegEncoder.h b/exynos5/hal/include/SecJpegEncoder.h deleted file mode 100644 index c7390f9..0000000 --- a/exynos5/hal/include/SecJpegEncoder.h +++ /dev/null @@ -1,157 +0,0 @@ -/* - * Copyright Samsung Electronics Co.,LTD. - * 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. - */ - -#ifndef __SEC_JPG_ENC_H__ -#define __SEC_JPG_ENC_H__ - -#include "Exif.h" - -#include "SecJpegCodecHal.h" - -#include <sys/mman.h> -#include "ion.h" - -#define JPEG_THUMBNAIL_QUALITY 60 -#define EXIF_LIMIT_SIZE 64*1024 -//#define JPEG_WA_FOR_PAGEFAULT -#define JPEG_WA_BUFFER_SIZE 64 - -class SecJpegEncoder { -public : - ; - enum ERROR { - ERROR_ALREADY_CREATE = -0x200, - ERROR_CANNOT_CREATE_SEC_JPEG_ENC_HAL, - ERROR_NOT_YET_CREATED, - ERROR_ALREADY_DESTROY, - ERROR_INPUT_DATA_SIZE_TOO_LARGE, - ERROR_OUT_BUFFER_SIZE_TOO_SMALL, - ERROR_EXIFOUT_ALLOC_FAIL, - ERROR_MAKE_EXIF_FAIL, - ERROR_INVALID_SCALING_WIDTH_HEIGHT, - ERROR_CANNOT_CREATE_SEC_THUMB, - ERROR_THUMB_JPEG_SIZE_TOO_SMALL, - ERROR_IMPLEMENT_NOT_YET, - ERROR_JPEG_DEVICE_ALREADY_CREATE = -0x100, - ERROR_CANNOT_OPEN_JPEG_DEVICE, - ERROR_JPEG_DEVICE_ALREADY_CLOSED, - ERROR_JPEG_DEVICE_ALREADY_DESTROY, - ERROR_JPEG_DEVICE_NOT_CREATE_YET, - ERROR_INVALID_COLOR_FORMAT, - ERROR_INVALID_JPEG_FORMAT, - ERROR_JPEG_CONFIG_POINTER_NULL, - ERROR_INVALID_JPEG_CONFIG, - ERROR_IN_BUFFER_CREATE_FAIL, - ERROR_OUT_BUFFER_CREATE_FAIL, - ERROR_EXCUTE_FAIL, - ERROR_JPEG_SIZE_TOO_SMALL, - ERROR_CANNOT_CHANGE_CACHE_SETTING, - ERROR_SIZE_NOT_SET_YET, - ERROR_BUFFR_IS_NULL, - ERROR_BUFFER_TOO_SMALL, - ERROR_GET_SIZE_FAIL, - ERROR_REQBUF_FAIL, - ERROR_INVALID_V4l2_BUF_TYPE = -0x80, - ERROR_MMAP_FAILED, - ERROR_FAIL, - ERROR_NONE = 0 - }; - - SecJpegEncoder(); - virtual ~SecJpegEncoder(); - - bool flagCreate(); - int create(void); - int destroy(void); - - int setSize(int w, int h); - int setQuality(int quality); - int setColorFormat(int colorFormat); - int setJpegFormat(int jpegFormat); - - int updateConfig(void); - - char *getInBuf(int *input_size); - char *getOutBuf(int *output_size); - int setInBuf(char *buf, int size); - int setOutBuf(char *buf, int size); - - int encode(int *size, exif_attribute_t *exifInfo); - - int setThumbnailSize(int w, int h); - - int makeExif(unsigned char *exifOut, - exif_attribute_t *exifIn, - unsigned int *size, - bool useMainbufForThumb = false); - -private: - inline void writeExifIfd(unsigned char **pCur, - unsigned short tag, - unsigned short type, - unsigned int count, - uint32_t value); - inline void writeExifIfd(unsigned char **pCur, - unsigned short tag, - unsigned short type, - unsigned int count, - unsigned char *pValue); - inline void writeExifIfd(unsigned char **pCur, - unsigned short tag, - unsigned short type, - unsigned int count, - rational_t *pValue, - unsigned int *offset, - unsigned char *start); - inline void writeExifIfd(unsigned char **pCur, - unsigned short tag, - unsigned short type, - unsigned int count, - unsigned char *pValue, - unsigned int *offset, - unsigned char *start); - int m_scaleDownYuv422(char *srcBuf, uint32_t srcWidth, uint32_t srcHight, - char *dstBuf, uint32_t dstWidth, uint32_t dstHight); - // thumbnail - int encodeThumbnail(unsigned int *size, bool useMain = true); - - int allocJpegIonMemory(ion_client ionClient, ion_buffer *ionBuffer, char **buffer, int size); - void freeJpegIonMemory(ion_client ionClient, ion_buffer *ionBuffer, char **buffer, int size); - - bool m_flagCreate; - - SecJpegEncoderHal *m_jpegMain; - SecJpegEncoderHal *m_jpegThumb; - - char *m_pThumbInputBuffer; - char *m_pThumbOutputBuffer; -#ifdef JPEG_WA_FOR_PAGEFAULT - char *m_pExtInBuf; - char *m_pJpegInputBuffer; - int m_iInBufSize; -#endif // JPEG_WA_FOR_PAGEFAULT - ion_client m_ionJpegClient; - ion_buffer m_ionThumbInBuffer, m_ionThumbOutBuffer; -#ifdef JPEG_WA_FOR_PAGEFAULT - ion_buffer m_ionJpegInBuffer; -#endif // JPEG_WA_FOR_PAGEFAULT - - int m_thumbnailW; - int m_thumbnailH; -}; - -#endif /* __SEC_JPG_ENC_H__ */ |