summaryrefslogtreecommitdiffstats
path: root/libcamera/SecCamera.h
diff options
context:
space:
mode:
Diffstat (limited to 'libcamera/SecCamera.h')
-rw-r--r--libcamera/SecCamera.h40
1 files changed, 39 insertions, 1 deletions
diff --git a/libcamera/SecCamera.h b/libcamera/SecCamera.h
index 87985d7..282eda7 100644
--- a/libcamera/SecCamera.h
+++ b/libcamera/SecCamera.h
@@ -37,6 +37,8 @@
#include <videodev2_samsung.h>
#endif
+#include "JpegEncoder.h"
+
#ifdef ENABLE_HDMI_DISPLAY
#include "hdmi_lib.h"
#endif
@@ -108,6 +110,10 @@ namespace android {
#define ISX006_POSTVIEW_HEIGHT 480
#define ISX006_POSTVIEW_BPP 16
+#define ISX006_THUMBNAIL_WIDTH 320
+#define ISX006_THUMBNAIL_HEIGHT 240
+#define ISX006_THUMBNAIL_BPP 16
+
#define VGA_PREVIEW_WIDTH 640
#define VGA_PREVIEW_HEIGHT 480
#define VGA_SNAPSHOT_WIDTH 640
@@ -121,6 +127,9 @@ namespace android {
#define BACK_CAMERA_POSTVIEW_WIDE_WIDTH JOIN(BACK_CAM,_POSTVIEW_WIDE_WIDTH)
#define BACK_CAMERA_POSTVIEW_HEIGHT JOIN(BACK_CAM,_POSTVIEW_HEIGHT)
#define BACK_CAMERA_POSTVIEW_BPP JOIN(BACK_CAM,_POSTVIEW_BPP)
+#define BACK_CAMERA_THUMBNAIL_WIDTH JOIN(BACK_CAM,_THUMBNAIL_WIDTH)
+#define BACK_CAMERA_THUMBNAIL_HEIGHT JOIN(BACK_CAM,_THUMBNAIL_HEIGHT)
+#define BACK_CAMERA_THUMBNAIL_BPP JOIN(BACK_CAM,_THUMBNAIL_BPP)
#define MAX_FRONT_CAMERA_PREVIEW_WIDTH JOIN(FRONT_CAM,_PREVIEW_WIDTH)
#define MAX_FRONT_CAMERA_PREVIEW_HEIGHT JOIN(FRONT_CAM,_PREVIEW_HEIGHT)
@@ -715,12 +724,14 @@ public:
void setFrameRate(int frame_rate);
// void setJpegQuality(int quality);
unsigned char* getJpeg(int*, unsigned int*);
- unsigned char* getSnapshotAndJpeg(unsigned int *output_size);
+ int getSnapshotAndJpeg(unsigned char *yuv_buf, unsigned char *jpeg_buf,
+ unsigned int *output_size);
int getExif(unsigned char *pExifDst, unsigned char *pThumbSrc);
#ifdef JPEG_FROM_SENSOR
void getPostViewConfig(int*, int*, int*);
#endif
+ void getThumbnailConfig(int *width, int *height, int *size);
#ifdef DIRECT_DELIVERY_OF_POSTVIEW_DATA
int getPostViewOffset(void);
@@ -736,6 +747,28 @@ public:
void pausePreview();
int initCamera(int index);
void DeinitCamera();
+ static void setJpegRatio(double ratio)
+ {
+ if((ratio < 0) || (ratio > 1))
+ return;
+
+ jpeg_ratio = ratio;
+ }
+
+ static double getJpegRatio()
+ {
+ return jpeg_ratio;
+ }
+
+ static void setInterleaveDataSize(int x)
+ {
+ interleaveDataSize = x;
+ }
+
+ static int getInterleaveDataSize()
+ {
+ return interleaveDataSize;
+ }
private:
int m_flag_init;
@@ -819,6 +852,8 @@ private:
int m_postview_offset;
+ exif_attribute_t mExifInfo;
+
struct fimc_buffer m_buffers_c[MAX_BUFFERS];
struct pollfd m_events_c;
@@ -827,6 +862,9 @@ private:
void setExifChangedAttribute();
void setExifFixedAttribute();
void resetCamera();
+
+ static double jpeg_ratio;
+ static int interleaveDataSize;
};
extern unsigned long measure_time(struct timeval *start, struct timeval *stop);