BitmapFactory.decodeByteArray () está retornando NULL

Estou usando o previewCallback da câmera para tentar capturar imagens. Aqui está o código que estou 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" );

        }
};

o comprimento dos dados sempre é igual ao 576000.

Também tentei alterar os parâmetros da câmera para que a imagem retorne em diferentes formatos. Aqui está o que parece quando eu faço isso.

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

No entanto, tanto quando altero o formato de visualização quanto o deixo como o padrão do NV21, o BitmapFactory.decodeByteArray volta como nulo. Também tentei alterar o formato de visualização para o tipo JPEG. Eu até recebo uma instrução de depuração nos ddms, é isso que recebo

"D / skia (14391): --- SkImageDecoder :: Factory retornou nulo"