summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThe Android Automerger <android-build@android.com>2010-11-04 00:04:06 -0700
committerThe Android Automerger <android-build@android.com>2010-11-04 00:04:06 -0700
commit91869b6c7c213c1a389c45c9d0f4f5d3cccc7c52 (patch)
tree13d43cd20de2a49b41c714fd27018b509a3d6efe
parent1d2b375623834188bf9120f2c7f437d91b739d45 (diff)
parentf893585c3f13c2ad3f02cf758e940a8a79b5c595 (diff)
downloaddevice_samsung_crespo-91869b6c7c213c1a389c45c9d0f4f5d3cccc7c52.zip
device_samsung_crespo-91869b6c7c213c1a389c45c9d0f4f5d3cccc7c52.tar.gz
device_samsung_crespo-91869b6c7c213c1a389c45c9d0f4f5d3cccc7c52.tar.bz2
Merge branch 'gingerbread' into gingerbread-release
-rw-r--r--bcm4329.kobin258840 -> 259000 bytes
-rw-r--r--board-info.txt2
-rw-r--r--[-rwxr-xr-x]kernelbin2799252 -> 2799764 bytes
-rw-r--r--libaudio2/AudioHardware.cpp3
-rw-r--r--libcamera/SecCamera.cpp14
-rw-r--r--libcamera/SecCamera.h1
-rw-r--r--libcamera/SecCameraHWInterface.cpp31
-rw-r--r--overlay/packages/wallpapers/Basic/res/drawable-hdpi/pyramid_background.pngbin700848 -> 688177 bytes
-rw-r--r--sec_mm/sec_omx/sec_omx_component/video/enc/SEC_OMX_Venc.c14
-rw-r--r--sec_mm/sec_omx/sec_omx_component/video/enc/h264enc/SEC_OMX_H264enc.c5
10 files changed, 54 insertions, 16 deletions
diff --git a/bcm4329.ko b/bcm4329.ko
index e8623ef..4aaff8c 100644
--- a/bcm4329.ko
+++ b/bcm4329.ko
Binary files differ
diff --git a/board-info.txt b/board-info.txt
index 2bbea84..bbfcab6 100644
--- a/board-info.txt
+++ b/board-info.txt
@@ -1,3 +1,3 @@
require board=herring
-require version-bootloader=I9020XXJJ8
+require version-bootloader=I9020XXJK1
require version-baseband=I9020XXJK1
diff --git a/kernel b/kernel
index e24a3df..ab7eb05 100755..100644
--- a/kernel
+++ b/kernel
Binary files differ
diff --git a/libaudio2/AudioHardware.cpp b/libaudio2/AudioHardware.cpp
index 7cff057..53e9c65 100644
--- a/libaudio2/AudioHardware.cpp
+++ b/libaudio2/AudioHardware.cpp
@@ -332,9 +332,6 @@ status_t AudioHardware::setMode(int mode)
openPcmOut_l();
openMixer_l();
setVoiceRecognition_l(false);
- if (mOutput != 0) {
- setIncallPath_l(mOutput->device());
- }
mInCallAudioMode = true;
}
if (mMode == AudioSystem::MODE_NORMAL && mInCallAudioMode) {
diff --git a/libcamera/SecCamera.cpp b/libcamera/SecCamera.cpp
index 55baef7..b71a2ce 100644
--- a/libcamera/SecCamera.cpp
+++ b/libcamera/SecCamera.cpp
@@ -1845,6 +1845,10 @@ int SecCamera::getSnapshotPixelFormat(void)
return m_snapshot_v4lformat;
}
+int SecCamera::cancelPicture(void)
+{
+ return close_buffers(m_buffers_c);
+}
// ======================================================================
// Settings
@@ -3281,9 +3285,15 @@ void SecCamera::setExifFixedAttribute()
//2 0th IFD TIFF Tags
//3 Maker
- strcpy((char *)mExifInfo.maker, EXIF_DEF_MAKER);
+ property_get("ro.product.brand", property, EXIF_DEF_MAKER);
+ strncpy((char *)mExifInfo.maker, property,
+ sizeof(mExifInfo.maker) - 1);
+ mExifInfo.maker[sizeof(mExifInfo.maker) - 1] = '\0';
//3 Model
- strcpy((char *)mExifInfo.model, EXIF_DEF_MODEL);
+ property_get("ro.product.model", property, EXIF_DEF_MODEL);
+ strncpy((char *)mExifInfo.model, property,
+ sizeof(mExifInfo.model) - 1);
+ mExifInfo.model[sizeof(mExifInfo.model) - 1] = '\0';
//3 Software
property_get("ro.build.id", property, EXIF_DEF_SOFTWARE);
strncpy((char *)mExifInfo.software, property,
diff --git a/libcamera/SecCamera.h b/libcamera/SecCamera.h
index 700b653..e1460b9 100644
--- a/libcamera/SecCamera.h
+++ b/libcamera/SecCamera.h
@@ -328,6 +328,7 @@ public:
unsigned int getRecPhyAddrY(int);
unsigned int getRecPhyAddrC(int);
#endif
+ int cancelPicture(void);
int flagPreviewStart(void);
int getPreview(void);
int setPreviewSize(int width, int height, int pixel_format);
diff --git a/libcamera/SecCameraHWInterface.cpp b/libcamera/SecCameraHWInterface.cpp
index a5b86d8..9d5c775 100644
--- a/libcamera/SecCameraHWInterface.cpp
+++ b/libcamera/SecCameraHWInterface.cpp
@@ -727,6 +727,9 @@ void CameraHardwareSec::stopPreview()
{
LOGV("%s :", __func__);
+ if (!previewEnabled())
+ return;
+
/* request that the preview thread exit. we can wait because we're
* called by CameraServices with a lock but it has disabled all preview
* related callbacks so previewThread should not invoke any callbacks.
@@ -1124,11 +1127,12 @@ int CameraHardwareSec::pictureThread()
if(isLSISensor) {
LOGI("== Camera Sensor Detect %s - Samsung LSI SOC 5M ==\n", mCameraSensorName);
// LSI 5M SOC
- SplitFrame(jpeg_data, SecCamera::getInterleaveDataSize(),
+ if (!SplitFrame(jpeg_data, SecCamera::getInterleaveDataSize(),
SecCamera::getJpegLineLength(),
mPostViewWidth * 2, mPostViewWidth,
JpegHeap->base(), &JpegImageSize,
- PostviewHeap->base(), &mPostViewSize);
+ PostviewHeap->base(), &mPostViewSize))
+ return UNKNOWN_ERROR;
} else {
LOGI("== Camera Sensor Detect %s Sony SOC 5M ==\n", mCameraSensorName);
decodeInterleaveData(jpeg_data, SecCamera::getInterleaveDataSize(), mPostViewWidth, mPostViewHeight,
@@ -1260,6 +1264,10 @@ status_t CameraHardwareSec::takePicture()
status_t CameraHardwareSec::cancelPicture()
{
+ mPictureThread->requestExitAndWait();
+
+ mSecCamera->cancelPicture();
+
LOGW("%s : not supported, just returning NO_ERROR", __func__);
return NO_ERROR;
}
@@ -1342,14 +1350,22 @@ bool CameraHardwareSec::SplitFrame(unsigned char *pFrame, int dwSize,
while (pSrc < pSrcEnd) {
// Check video start marker
if (CheckVideoStartMarker(pSrc)) {
+ int copyLength;
+
+ if (pSrc + dwVideoLineLength <= pSrcEnd)
+ copyLength = dwVideoLineLength;
+ else
+ copyLength = pSrcEnd - pSrc - VIDEO_COMMENT_MARKER_LENGTH;
+
// Copy video data
if (pV) {
- memcpy(pV, pSrc + VIDEO_COMMENT_MARKER_LENGTH, dwVideoLineLength);
- pV += dwVideoLineLength;
- dwVSize += dwVideoLineLength;
+ memcpy(pV, pSrc + VIDEO_COMMENT_MARKER_LENGTH, copyLength);
+ pV += copyLength;
+ dwVSize += copyLength;
}
- pSrc += dwVideoLineLength + VIDEO_COMMENT_MARKER_LENGTH;
- } else {
+
+ pSrc += copyLength + VIDEO_COMMENT_MARKER_LENGTH;
+ } else {
// Copy pure JPEG data
int size = 0;
int dwCopyBufLen = dwJPEGLineLength <= pSrcEnd-pSrc ? dwJPEGLineLength : pSrcEnd - pSrc;
@@ -1374,7 +1390,6 @@ bool CameraHardwareSec::SplitFrame(unsigned char *pFrame, int dwSize,
pJ += dwCopyBufLen;
pSrc += dwCopyBufLen;
}
-
if (isFinishJpeg)
break;
}
diff --git a/overlay/packages/wallpapers/Basic/res/drawable-hdpi/pyramid_background.png b/overlay/packages/wallpapers/Basic/res/drawable-hdpi/pyramid_background.png
index 76ffd37..2310a91 100644
--- a/overlay/packages/wallpapers/Basic/res/drawable-hdpi/pyramid_background.png
+++ b/overlay/packages/wallpapers/Basic/res/drawable-hdpi/pyramid_background.png
Binary files differ
diff --git a/sec_mm/sec_omx/sec_omx_component/video/enc/SEC_OMX_Venc.c b/sec_mm/sec_omx/sec_omx_component/video/enc/SEC_OMX_Venc.c
index a6e1a18..c1bd4ef 100644
--- a/sec_mm/sec_omx/sec_omx_component/video/enc/SEC_OMX_Venc.c
+++ b/sec_mm/sec_omx/sec_omx_component/video/enc/SEC_OMX_Venc.c
@@ -794,10 +794,14 @@ OMX_BOOL SEC_Preprocessor_InputData(OMX_COMPONENTTYPE *pOMXComponent)
flagEOF = OMX_FALSE;
}
- if (inputUseBuffer->remainDataLen == 0)
+ if (inputUseBuffer->remainDataLen == 0) {
+#ifdef S5PC110_ENCODE_IN_DATA_BUFFER
+ if(flagEOF == OMX_FALSE)
+#endif
SEC_InputBufferReturn(pOMXComponent);
- else
+ } else {
inputUseBuffer->dataValid = OMX_TRUE;
+ }
}
if (flagEOF == OMX_TRUE) {
@@ -965,6 +969,12 @@ OMX_ERRORTYPE SEC_OMX_BufferProcess(OMX_HANDLETYPE hComponent)
SEC_OSAL_MutexLock(inputUseBuffer->bufferMutex);
SEC_OSAL_MutexLock(outputUseBuffer->bufferMutex);
ret = pSECComponent->sec_mfc_bufferProcess(pOMXComponent, inputData, outputData);
+#ifdef S5PC110_ENCODE_IN_DATA_BUFFER
+ if (inputUseBuffer->remainDataLen == 0)
+ SEC_InputBufferReturn(pOMXComponent);
+ else
+ inputUseBuffer->dataValid = OMX_TRUE;
+#endif
SEC_OSAL_MutexUnlock(outputUseBuffer->bufferMutex);
SEC_OSAL_MutexUnlock(inputUseBuffer->bufferMutex);
diff --git a/sec_mm/sec_omx/sec_omx_component/video/enc/h264enc/SEC_OMX_H264enc.c b/sec_mm/sec_omx/sec_omx_component/video/enc/h264enc/SEC_OMX_H264enc.c
index a118b90..53c025c 100644
--- a/sec_mm/sec_omx/sec_omx_component/video/enc/h264enc/SEC_OMX_H264enc.c
+++ b/sec_mm/sec_omx/sec_omx_component/video/enc/h264enc/SEC_OMX_H264enc.c
@@ -735,6 +735,11 @@ OMX_ERRORTYPE SEC_MFC_H264_Encode(OMX_COMPONENTTYPE *pOMXComponent, SEC_OMX_DATA
goto EXIT;
}
+ if ((pInputData->nFlags & OMX_BUFFERFLAG_ENDOFFRAME) &&
+ (pSECComponent->bUseFlagEOF == OMX_FALSE)) {
+ pSECComponent->bUseFlagEOF = OMX_TRUE;
+ }
+
pSECComponent->timeStamp[pH264Enc->hMFCH264Handle.indexTimestamp] = pInputData->timeStamp;
pSECComponent->nFlags[pH264Enc->hMFCH264Handle.indexTimestamp] = pInputData->nFlags;
SsbSipMfcEncSetConfig(pH264Enc->hMFCH264Handle.hMFCHandle, MFC_ENC_SETCONF_FRAME_TAG, &(pH264Enc->hMFCH264Handle.indexTimestamp));