diff options
Diffstat (limited to 'libcamera/SecCamera.h')
-rw-r--r-- | libcamera/SecCamera.h | 40 |
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); |