summaryrefslogtreecommitdiff
path: root/libhwjpeg/include/ExynosJpegEncoderForCamera.h
diff options
context:
space:
mode:
Diffstat (limited to 'libhwjpeg/include/ExynosJpegEncoderForCamera.h')
-rw-r--r--libhwjpeg/include/ExynosJpegEncoderForCamera.h15
1 files changed, 11 insertions, 4 deletions
diff --git a/libhwjpeg/include/ExynosJpegEncoderForCamera.h b/libhwjpeg/include/ExynosJpegEncoderForCamera.h
index 1ec5132..a50d884 100644
--- a/libhwjpeg/include/ExynosJpegEncoderForCamera.h
+++ b/libhwjpeg/include/ExynosJpegEncoderForCamera.h
@@ -18,13 +18,16 @@
#ifndef __HARDWARE_EXYNOS_JPEG_ENCODER_FOR_CAMERA_H__
#define __HARDWARE_EXYNOS_JPEG_ENCODER_FOR_CAMERA_H__
+#include <memory>
+
#include <pthread.h>
-#include "ExynosExif.h"
+#include <ExynosExif.h>
#include "ExynosJpegApi.h"
-#include "LibScalerForJpeg.h"
+#include <hardware/exynos/ExynosExif.h>
class CAppMarkerWriter; // defined in libhwjpeg/AppMarkerWriter.h
+class ThumbnailScaler; // defined in libhwjpeg/thumbnail_scaler.h
class ExynosJpegEncoderForCamera: public ExynosJpegEncoder {
enum {
@@ -35,7 +38,7 @@ class ExynosJpegEncoderForCamera: public ExynosJpegEncoder {
};
CHWJpegCompressor *m_phwjpeg4thumb;
- LibScalerForJpeg m_pLibScaler;
+ std::unique_ptr<ThumbnailScaler> mThumbnailScaler;
int m_fdIONClient;
int m_fdIONThumbImgBuffer;
char *m_pIONThumbImgBuffer;
@@ -69,6 +72,9 @@ class ExynosJpegEncoderForCamera: public ExynosJpegEncoder {
pthread_t m_threadWorker;
+ extra_appinfo_t m_extraInfo;
+ app_info_t m_appInfo[15];
+
bool AllocThumbBuffer(int v4l2Format); /* For single compression */
bool AllocThumbJpegBuffer(); /* For BTB compression */
bool GenerateThumbnailImage();
@@ -76,7 +82,7 @@ class ExynosJpegEncoderForCamera: public ExynosJpegEncoder {
size_t CompressThumbnailOnly(size_t limit, int quality, unsigned int v4l2Format, int src_buftype);
size_t RemoveTrailingDummies(char *base, size_t len);
ssize_t FinishCompression(size_t mainlen, size_t thumblen);
- bool ProcessExif(char *base, size_t limit, exif_attribute_t *exifInfo, debug_attribute_t *debuginfo);
+ bool ProcessExif(char *base, size_t limit, exif_attribute_t *exifInfo, extra_appinfo_t *extra);
static void *tCompressThumbnail(void *p);
bool PrepareCompression(bool thumbnail);
@@ -98,6 +104,7 @@ public:
int encode(int *size, exif_attribute_t *exifInfo, char** pcJpegBuffer, debug_attribute_t *debugInfo = 0);
int encode(int *size, exif_attribute_t *exifInfo, int fdJpegBuffer, char** pcJpegBuffer, debug_attribute_t *debugInfo = 0);
+ int encode(int *size, exif_attribute_t *exifInfo, int fdJpegBuffer, char** pcJpegBuffer, extra_appinfo_t *appInfo = 0);
int setInBuf2(int *piBuf, int *iSize);
int setInBuf2(char **pcBuf, int *iSize);
int setThumbnailSize(int w, int h);