07-20 01:20:47.536: ERROR/SecCamera(2157): initCamera: m_cam_fd(39), m_jpeg_fd(0)
07-20 01:20:47.561: ERROR/SecCamera(2157): initCamera: m_cam_fd2(41)
07-20 01:20:47.566: ERROR/SecCamera(2157): SetRotate(angle(0))
07-20 01:20:47.566: ERROR/SecCamera(2157): setRecordingSize(width(640), height(480))
07-20 01:20:47.566: ERROR/ShotSingle(2157): call newMediaPlayer
07-20 01:20:47.886: ERROR/SecCamera(2157): SetRotate(angle(0))
07-20 01:20:47.886: ERROR/SecCamera(2157): setRecordingSize(width(533), height(320))
07-20 01:20:47.916: ERROR/SecCamera(2157): stopPreview()
07-20 01:20:47.916: ERROR/SecCamera(2157): stopPreview: m_flag_camera_start is zero
07-20 01:20:47.916: ERROR/SecCamera(2157): startPreview()m_preview_width: 533 m_preview_height: 320 m_angle: 0
07-20 01:20:49.106: ERROR/SecCamera(2157): startPreview: get the first frame of the preview
07-20 01:20:49.106: ERROR/CameraHardwareSec(2157): startPreview : return startPreview 0
07-20 01:20:49.106: ERROR/CameraHardwareSec(2157): CameraHardwareSec: mPostViewWidth = 640 mPostViewHeight = 480 mPostViewSize = 614400
07-20 01:20:49.106: ERROR/CameraHardwareSec(2157): CameraHardwareSec: mRawHeap : MemoryHeapBase(previewHeapSize(614408))
07-20 01:20:49.126: ERROR/CameraHardwareSec(2157): autoFocusThread()
07-20 01:20:49.241: ERROR/Camera(11726): Error 0


위에 표시는 제가 개인적으로 이상하다고 생각 되는 부분에 표시를 해두었습니다.
이후 아래쪽에 있는 에러 메시지가 계속해서 나옵니다.

 07-20 01:20:49.311: ERROR/copybit(2208): Error in VIDIOC_STREAMON
07-20 01:20:49.311: ERROR/copybit(2208): Fail : v4l2_stream_on()



07-20 01:20:49.311: ERROR/copybit(2208): stretch_copybit::sec_stretch fail : ret=-5


카메라는 landscape 상태로 설정해 놓았습니다.

테스트폰 기종은 갤럭시S 입니다.


소스 코드 첨부 합니다

     private void startCamera () {
        SurfaceHolder holder = mPreview.getHolder();
        if (mHasSurface) {
            Log.d(TAG, "startCamera after pause");
            // Resumed after pause, surface already exists
            surfaceCreated(holder);
            startCameraPreview();
        } else {
            Log.d(TAG, "startCamera from scratch");
            // Install a SurfaceHolder.Callback so we get notified when the
            // underlying surface is created and destroyed.
            holder.addCallback(this);
            holder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
        }
    }
    
    private void startCameraPreview () {
        if (!mCameraPreviewing) {
            mCamera.startPreview();
            mCameraPreviewing = true;
            if (mContinuousMode) {
                requestAutoFocus();  // Trigger continuous capture
            }
        }
    }
    
    private void stopCameraPreview () {
        if (mCameraPreviewing) {
            mCamera.stopPreview();
            mCameraPreviewing = false;
        }
    }
    
    private void stopCamera () {
        if (mCamera != null) {
            stopCameraPreview();
            mCamera.release();
            mCamera = null;
        }
    }
    
    public void surfaceCreated(SurfaceHolder holder) {
        // The Surface has been created, acquire the camera 
        // and tell it where to draw.
        mCamera = Camera.open();
        try {
           mCamera.setPreviewDisplay(holder);
           Log.d(TAG, "surfaceCreated: setPreviewDisplay");
        } catch (IOException e) {
            Log.e(TAG, "Camera preview failed", e);
            mCamera.release();
            mCamera = null;
            // TODO add more exception handling logic here
        }
        mHasSurface = true;
    }

    public void surfaceDestroyed(SurfaceHolder holder) {
        // Surface will be destroyed when we return, so stop the preview.
        // Because the CameraDevice object is not a shared resource, it's very
        // important to release it when the activity is paused.
        stopCamera();
        mHasSurface = false;
    }

    public void surfaceChanged(SurfaceHolder holder, int format, int w, int h) {
        // Size is known: set up camera parameters for preview size
        Camera.Parameters params = mCamera.getParameters();
        params.setPreviewSize(w, h);
        mCamera.setParameters(params);
        
        // Get parameters back; actual preview size may differ
        params = mCamera.getParameters();
        Size sz = params.getPreviewSize();
        mPreviewWidth = sz.width;
        mPreviewHeight = sz.height;

        startCameraPreview();
        
        Log.d(TAG, "surfaceChanged: startPreview");
    }