title: MediaRecorder.stop() stop failed: -1007
body: <p>I am recording video with MediaRecorder. My code works fine on 2.3.3 but fails on 4.0.3.</p>
  
  <p>The issue is following: the code mediaRecorder.stop() throws the RuntimeExeption</p>
  
  <pre><code>java.lang.RuntimeException: stop failed.
      at android.media.MediaRecorder.stop(Native Method)
  </code></pre>
  
  <p>with LogCat message</p>
  
  <pre><code>04-05 15:10:51.815: E/MediaRecorder(15709): stop failed: -1007
  </code></pre>
  
  <p>UPDATE</p>
  
  <p>I've found, that MediaPlayer reports an error (via MediaPlayer.OnErrorListener) almost immediately after the start. Error code is 100 (media server died), extra -1007.</p>
  
  <p>UPDATE 2
  Code to prepare the MediaRecorder</p>
  
  <pre><code>            c = Camera.open();
  
      ...
  
      // Step 1: Unlock and set camera to MediaRecorder
      camera.unlock();
      mediaRecorder.setCamera(camera);
  
      // Step 2: Set sources
      mediaRecorder.setAudioSource(MediaRecorder.AudioSource.CAMCORDER);
      mediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);
  
      // Step 3: Set a CamcorderProfile (requires API Level 8 or higher)
      CamcorderProfile profile = CamcorderProfile
              .get(CamcorderProfile.QUALITY_HIGH);
  
      // manual set up!
  
      mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
  
      mediaRecorder.setVideoEncodingBitRate(profile.videoBitRate);
      mediaRecorder.setVideoFrameRate(profile.videoFrameRate);
      mediaRecorder.setVideoSize(profile.videoFrameWidth,
              profile.videoFrameHeight);
  
      mediaRecorder.setAudioChannels(profile.audioChannels);
      mediaRecorder.setAudioEncodingBitRate(profile.audioBitRate);
      mediaRecorder.setAudioSamplingRate(profile.audioSampleRate);
  
      mediaRecorder.setAudioEncoder(profile.audioCodec);
      //mediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.MPEG_4_SP);
      mediaRecorder.setVideoEncoder(profile.videoCodec);
  
      // mediaRecorder.setProfile(profile);
  
      // Step 4: Set output file
      mediaRecorder.setOutputFile("somefile.mp4");
  
      // Step 5: Set the preview output
      mediaRecorder.setPreviewDisplay(preview.getHolder().getSurface());
  
      // Step 6: Prepare configured MediaRecorder
      try {
          mediaRecorder.prepare();
      } catch ...
      { release mediaRecorder}
  </code></pre>
  
  <p>then I simplyCall mediaRecorder.start()
  please note, that I need video to be encoded into mp4 format.
  This code works on Samsng Galaxy GIO (android 2.3.3) and fails as described on Acer E305 (android 4.0.2)</p>
  
  <p>Any ideas?
  Thanks.</p>