diff options
author | The Android Automerger <android-build@android.com> | 2010-11-04 00:04:06 -0700 |
---|---|---|
committer | The Android Automerger <android-build@android.com> | 2010-11-04 00:04:06 -0700 |
commit | 91869b6c7c213c1a389c45c9d0f4f5d3cccc7c52 (patch) | |
tree | 13d43cd20de2a49b41c714fd27018b509a3d6efe | |
parent | 1d2b375623834188bf9120f2c7f437d91b739d45 (diff) | |
parent | f893585c3f13c2ad3f02cf758e940a8a79b5c595 (diff) | |
download | device_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.ko | bin | 258840 -> 259000 bytes | |||
-rw-r--r-- | board-info.txt | 2 | ||||
-rw-r--r--[-rwxr-xr-x] | kernel | bin | 2799252 -> 2799764 bytes | |||
-rw-r--r-- | libaudio2/AudioHardware.cpp | 3 | ||||
-rw-r--r-- | libcamera/SecCamera.cpp | 14 | ||||
-rw-r--r-- | libcamera/SecCamera.h | 1 | ||||
-rw-r--r-- | libcamera/SecCameraHWInterface.cpp | 31 | ||||
-rw-r--r-- | overlay/packages/wallpapers/Basic/res/drawable-hdpi/pyramid_background.png | bin | 700848 -> 688177 bytes | |||
-rw-r--r-- | sec_mm/sec_omx/sec_omx_component/video/enc/SEC_OMX_Venc.c | 14 | ||||
-rw-r--r-- | sec_mm/sec_omx/sec_omx_component/video/enc/h264enc/SEC_OMX_H264enc.c | 5 |
10 files changed, 54 insertions, 16 deletions
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 Binary files differdiff --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 Binary files differindex 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 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)); |