Se llama a setOutputFormat en un estado no válido: 4 (dónde y por qué)

Tengo el siguiente código:

Log.i("xx","A");
                 media_recorder = new MediaRecorder();
Log.i("xx","B");
                 media_recorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);
Log.i("xx","C");
                 media_recorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4); 
Log.i("xx","D");
                 media_recorder.setVideoEncoder(MediaRecorder.VideoEncoder.MPEG_4_SP);
Log.i("xx","E");
                 media_recorder.setVideoSize(320, 240);
Log.i("xx","F");
                 media_recorder.setVideoFrameRate(15);
Log.i("xx","G");
                 CamcorderProfile profile = CamcorderProfile.get(CameraInfo.CAMERA_FACING_FRONT,CamcorderProfile.QUALITY_LOW);
Log.i("xx","H");
                 media_recorder.setProfile(profile);
Log.i("xx","I");
                 media_recorder.setOutputFile(fname);

Cuando se ejecuta el código, veo lo siguiente en mis registros;

02-07 16:12:47.628: I/xx(15436): A
02-07 16:12:47.628: I/xx(15436): B
02-07 16:12:47.638: I/xx(15436): C
02-07 16:12:47.638: I/xx(15436): D
02-07 16:12:47.638: I/xx(15436): E
02-07 16:12:47.638: I/xx(15436): F
02-07 16:12:47.638: I/xx(15436): G
02-07 16:12:47.638: I/xx(15436): H
02-07 16:12:47.638: E/MediaRecorder(15436): setOutputFormat called in an invalid state: 4

Esto me ha confundido porque la llamada asetOutputFormat se realizó entre "C" y "D", pero el informe del error parece ser inmediatamente después de H (nunca llegando a "I"). Así que ahora no sé qué está causando el error, y estoy confundido acerca de dónde se produce el error.

EDITAR: Acabo de pasar por el código en el depurador, y efectivamente el error ocurre durante la llamada a setProfile (perfil) ... por lo que parece que la llamada realizada a setOutputFormat (entre "C" y "D") debe haber funcionado ok, pero setProfile debe hacer una segunda llamada a setOutputFormat que luego falla ... ¿es eso lo que está sucediendo?

EDITAR: ¿Y qué significa realmente el estado inválido 4? ¿Hay alguna lista en alguna parte que le indique el significado de cada posible número de estado no válido 1,2,3,4 ... etc.?

Respuestas a la pregunta(3)

Su respuesta a la pregunta