BitmapFactory.decodeByteArray () está devolviendo NULL

Estoy usando el previewCallback de la cámara para intentar capturar imágenes. Aquí está el código que estoy usando

private Camera.PreviewCallback mPrevCallback = new Camera.PreviewCallback() 
{
        public void onPreviewFrame( byte[] data, Camera Cam ) {
                Log.d("CombineTestActivity", "Preview started");
                Log.d("CombineTestActivity", "Data length = " 
                        + data.length );
                currentprev = BitmapFactory.decodeByteArray( data, 0, 
                        data.length );

               if( currentprev == null )
                   Log.d("CombineTestActivity", "currentprev is null" );

                Log.d("CombineTestActivity", "Preview Finished" );

        }
};

la longitud de los datos siempre es igual a 576000.

También he intentado cambiar los parámetros de la cámara para que la imagen regrese en diferentes formatos. Así es como se ve cuando hago eso.

mCamera = Camera.open();
camParam = mCamera.getParameters();
camParam.setPreviewFormat( ImageFormat.RGB_565 );
mCamera.setParameters( camParam );
    mCamera.setPreviewCallback( mPrevCallback );

Sin embargo, tanto cuando cambio el formato de vista previa como cuando lo dejo como predeterminado de NV21, BitmapFactory.decodeByteArray vuelve como nulo. También he intentado cambiar el formato de vista previa al tipo JPEG. Incluso recibo una declaración de depuración en el ddms, esto es lo que obtengo

"D / skia (14391): --- SkImageDecoder :: Fábrica devuelta nulo"

Respuestas a la pregunta(6)

Su respuesta a la pregunta