History log of /frameworks/base/media/jni/android_media_MediaRecorder.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
8335f1ccccedb6655d96d9d5b697a7f0938235dd 26-Feb-2012 Mathias Agopian <mathias@google.com> fix libgui header location

Change-Id: Iec71706cdd4f29c6904993648ce873e83ef9cafe
3762c311729fe9f3af085c14c5c1fb471d994c03 06-Jan-2012 Steve Block <steveblock@google.com> Rename (IF_)LOGE(_IF) to (IF_)ALOGE(_IF) DO NOT MERGE

See https://android-git.corp.google.com/g/#/c/157220

Bug: 5449033
Change-Id: Ic9c19d30693bd56755f55906127cd6bd7126096c
6215d3ff4b5dfa52a5d8b9a42e343051f31066a5 04-Jan-2012 Steve Block <steveblock@google.com> Rename (IF_)LOGI(_IF) to (IF_)ALOGI(_IF) DO NOT MERGE

See https://android-git.corp.google.com/g/156801

Bug: 5449033
Change-Id: Ib08fe86d23db91ee153e9f91a99a35c42b9208ea
71f2cf116aab893e224056c38ab146bd1538dd3e 20-Oct-2011 Steve Block <steveblock@google.com> Rename (IF_)LOGV(_IF) to (IF_)ALOGV(_IF) DO NOT MERGE

See https://android-git.corp.google.com/g/#/c/143865

Bug: 5449033
Change-Id: I0122812ed6ff6f5b59fe4a43ab8bff0577adde0a
cac873bd4ad6ffc8587e3d77fece5abcf2804f4f 26-Jul-2011 Pannag Sanketi <psanketi@google.com> Fixing up Mediarecorder for MFF

For using the MediaRecorder in MFF (Mobile Filter Framework),
getMediaRecorder method in mediarecorder jni was earlier changed to
a non static method. Changed it back to a static method.

Also, added a new source type to MediaRecorder.VideoSource for recording
GRalloc buffers.

Change-Id: I031fad45c12b0ac9602d9e451d4767e95a86234d
aba28e7fecb06adab8de51619b2929b640369e83 23-Jul-2011 James Dong <jdong@google.com> Merge "Deprecate two methods in MediaRecorder.java class"
897e27bc75886e44d2f9f09155127f401c4173ea 02-Jul-2011 Pannag Sanketi <psanketi@google.com> Connect MediaRecorder Native to SurfaceMediaSource

Making a connection from MediaRecorder Native layer to the
SurfaceMediaSource for the purpose of encoding GL Frames. This will be
called from the java side inside the Mobile Filter Framework.

The mediarecorder native layer (client), when set the videosource to
option VIDEO_SOURCE_FRAMES, asks the StageFrightRecorder on the mediaserver
side to create a SurfaceMediaSource object and pass it back as a
sp<ISurfaceTexture> object. Using that, the client side will dequeue and
queue buffers. Connecting the GL Frames to the obtained
sp<ISurfaceTexture> is not part of this CL.

Related to bug id: 4529323

Change-Id: I651bec718dd5b935779e7d7a050b841c2d0b0fcd
3ff98beeafd271a65c1f824699431366882b04f6 21-Jul-2011 James Dong <jdong@google.com> Deprecate two methods in MediaRecorder.java class

Change-Id: I98fbe628fe77867b97c04f44458948ede2f49d22
42419ce28a09eb63e29a8fef87e6f5534f41902f 01-Jun-2011 Wu-cheng Li <wuchengli@google.com> Add framework support for camcorder zoom.

The purpose of ICameraRecordingProxy and ICameraRecordingProxyListener is to
allow applications using the camera during recording.

Camera service allows only one client at a time. Since camcorder application
needs to own the camera to do things like zoom, the media recorder cannot
access the camera directly during recording. So ICameraRecordingProxy is a proxy
of ICamera, which allows the media recorder to start/stop the recording and
release recording frames. ICameraRecordingProxyListener is an interface that
allows the recorder to receive video frames during recording.



The camcorder app opens the camera and starts the preview. The app passes
ICamera and ICameraRecordingProxy to the media recorder by
MediaRecorder::setCamera(). The recorder uses ICamera to setup the camera in
MediaRecorder::start(). After setup, the recorder disconnects from camera
service. The recorder calls ICameraRecordingProxy::startRecording() and
passes a ICameraRecordingProxyListener to the app. The app connects back to
camera service and starts the recording. The app owns the camera and can do
things like zoom. The media recorder receives the video frames from the
listener and releases them by ICameraRecordingProxy::releaseRecordingFrame.
The recorder calls ICameraRecordingProxy::stopRecording() to stop the

The call sequences are as follows:
1. The app: Camera.unlock().
2. The app: MediaRecorder.setCamera().
3. Start recording
(1) The app: MediaRecorder.start().
(2) The recorder: ICamera.unlock() and ICamera.disconnect().
(3) The recorder: ICameraRecordingProxy.startRecording().
(4) The app: ICamera.reconnect().
(5) The app: ICamera.startRecording().
4. During recording
(1) The recorder: receive frames from ICameraRecordingProxyListener.dataCallbackTimestamp()
(2) The recorder: release frames by ICameraRecordingProxy.releaseRecordingFrame().
5. Stop recording
(1) The app: MediaRecorder.stop()
(2) The recorder: ICameraRecordingProxy.stopRecording().
(3) The app: ICamera.stopRecording().


Change-Id: I15269397defc25cbbcae16abc071c8349c123122
34bb419e5946ab28112e9e27a4d1b3928d31e0e2 11-May-2011 Dima Zavin <dima@android.com> update for new audio.h header location

Change-Id: Ic4c62c4037800802427eb7d3c7f5eb8b25d18876
Signed-off-by: Dima Zavin <dima@android.com>
24fc2fb1c541e954b83fd31ea9f786a5e9b45501 20-Apr-2011 Dima Zavin <dima@android.com> audio/media: convert to using the audio HAL and new audio defs

Change-Id: Ibc637918637329e4f2b62f4ac7781102fbc269f5
Signed-off-by: Dima Zavin <dima@android.com>
dd66bcbf9d6ef0c50a18d9c4b1b39ce7ef7afcc4 12-Apr-2011 Elliott Hughes <enh@google.com> More native code cleanup.

Don't keep unused global references to classes, don't throw exceptions
when an exception is already pending, and fix a (harmless) misunderstanding
about how GetStringChars works.

Change-Id: Ie445036f057daa8a1c76aceb7bad2a84fb81d820
a3804cf77f0edd93f6247a055cdafb856b117eec 12-Apr-2011 Elliott Hughes <enh@google.com> You don't need to poke around inside FileDescriptor manually.

We can help you with that.

Note also that getParcelFileDescriptorFD did no such thing. All its callers
were passing in a regular java.io.FileDescriptor and expecting the int. No
ParcelFileDescriptors involved.

Change-Id: Idc233626f20c092e719f152562601f406cc1b64a
15dd15fd572df6b6f785dff75f66e9b99f40322a 09-Apr-2011 Elliott Hughes <enh@google.com> Tidy up exception throwing in the media native code.

(I'm going through all of frameworks/base in multiple passes. This pass is just
for exception throwing.)

Change-Id: Ia14a5c720edae86ac780023be88e676aa1b3315d
c18c02d78c0d9ec422f35aac2680022096c8c7cf 10-Sep-2010 James Dong <jdong@google.com> am 2432248b: am 4709c7fa: Merge "Fixed a copy and paste error" into gingerbread

Merge commit '2432248b03c675812dbb2154e2535bf3ada54b0a'

* commit '2432248b03c675812dbb2154e2535bf3ada54b0a':
Fixed a copy and paste error
8d3b9100a660591cca01f1df801aaf9830b9e3ba 10-Sep-2010 James Dong <jdong@google.com> Fixed a copy and paste error

Change java/lang/IOException to java/lang/RuntimeException
since there is no java/lang/IOException while keeping
the signature of the MediaRecorder class
constructor unchanged.

Change-Id: Id9b9aa55db42bef528069ef1e2102038391bc15f
b33a5aea130b025f30966828562fcba56f25b265 27-Aug-2010 Nipun Kwatra <nkwatra@google.com> Added setAuxiliaryOutputFile to MediaRecorder and JNI

added setAuxiliaryOutputFile to allow setting of an auxiliary output file.
Also added the JNI support.

Change-Id: I8c3335192bd6f7fcbfdfc8552cfd0848f2ad2a5d
d790c6485a388a3e8045dbd18b903b20a7dcf0d9 12-Aug-2010 James Dong <jdong@google.com> Add lost preview surface detection in the JNI layer
Throws an IOException if this happens rather than crashes

Change-Id: I32bb4c889ae596f992a0d05283c9130a99b2d0d5
457d5ae3c9e40c8336b65ea954d1bd5ae1622917 09-Jun-2010 James Dong <jdong@google.com> Fix a potential(observed sometimes) media server crash

The problem is that we are referring an temp object returned from a function call.
When the function call returned, the temp object is gone; and thus the reference
may be invalidated.

-- rebased

bug - 2734946

Change-Id: I1993c4462df95610ca478f816adc30058af5850e
5e14010b1fc066dfcbc0a577d59492687c99667d 09-Jun-2010 Mathias Agopian <mathias@google.com> allow re-targetting of surfaces

Surfaces can now be parcelized and sent to remote
processes. When a surface crosses a process
boundary, it looses its connection with the
current process and gets attached to the new one.

Change-Id: I39c7b055bcd3ea1162ef2718d3d4b866bf7c81c0
8b138323d54e36fd66b22a634494648e20c53373 13-Apr-2010 Mathias Agopian <mathias@google.com> don't hardcode "mSurface" throughout our source code

this is used in a few places to get access to the android.view.Surface
native surface. use a macro instead. Also rename the field to mNativeSurface.

Change-Id: I1c6dea14abd6b8b1392c7f97b304115999355094
0fc6bc4cac6391f048f0f2748b3e979effe0924b 27-Feb-2010 James Dong <jdong@google.com> Clean up MediaRecorder for public Java SDK
- update comments and fix a check in setAudioChannels()

bug - 2362412
000479f9e325b4e426a67033abd92d47da412725 10-Feb-2010 Mathias Agopian <mathias@google.com> split libsurfaceflinger_client and libcamera_client out of libui
4935d05eaa306cef88cf0ab13eca386f270409ec 03-Aug-2009 Marco Nelissen <marcone@google.com> Untangle MediaPlayer, MediaRecorder, MediaScanner and MediaMetadataRetriever JNI
code, so that creating one of those doesn't initialize all the others. Shaves
a hundred milliseconds or so off music app startup time.
cbe7c5441c9af004dae93cff09787e21771beda8 30-Jul-2009 James Dong <jdong@google.com> Remove hardcoded maximum frame rate limit from the framework
bug 1993400
5e27115995c4506dddf4f1271effd4fb4c935ad3 24-Jun-2009 Dave Sparks <davidsparks@android.com> Use a ref-counted callback interface for Camera.
This allows the camera service to hang onto the callback interface
until all callbacks have been processed. This prevents problems
where pending callbacks in binder worker threads are processed
after the Java camera object and its associated native resources
have been released.
Bug 1884362
2bcda90c0234f67f210a96f195b355493ca7d1ff 08-Jun-2009 Jianhong Jiang <jianhong@google.com> NJ-1409: (frameworks/base) Support new audio encoding types(AMR and AAC).
4bc035a65cac177be9294e69f110497e3b6e34e6 22-May-2009 Eric Laurent <elaurent@google.com> Fix issue 1846343 - part 1

This change is the first part of a fix for issue 1846343, :
- Added new enum values for input sources in AudioRecord and MediaRecorder for voice uplink, downlink and uplink+downlink sources.
- renamed streamType to inputSource in all native functions handling audio record.

A second change is required in opencore author driver and android audio input to completely fix the issue.
429a3b5f1d94327e5cbb2dc80667af4574bba388 11-May-2009 James Dong <jdong@google.com> Fix a JNI layer crash due to null camera object passed to get_native_camera()
The fix will check on the camera object and if it is a null object, we
throw a NullPointerException; application layer should also avoid passing a null
java object to MediaRecorder.setCamera().
105925376f8d0f6b318c9938c7b83ef7fef094da 19-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake_rel/...@140373
ba87e3e6c985e7175152993b5efcc7dd2f0e1c93 13-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake_rel/...@138607
4df2423a947bcd3f024cc3d3a1a315a8dc428598 05-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@136594
9066cfe9886ac131c34d59ed0e2d287b0e3c0087 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
d83a98f4ce9cfa908f5c54bbd70f03eec07e7553 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
076357b8567458d4b6dfdcf839ef751634cd2bfb 03-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@132589
3dec7d563a2f3e1eb967ce2054a00b6620e3558c 03-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@137055
da996f390e17e16f2dfa60e972e7ebc4f868f37e 13-Feb-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@131421
d24b8183b93e781080b2c16c487e60d51c12da31 11-Feb-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@130745
f013e1afd1e68af5e3b868c26a653bbfb39538f8 18-Dec-2008 The Android Open Source Project <initial-contribution@android.com> Code drop from //branches/cupcake/...@124589
54b6cfa9a9e5b861a9930af873580d6dc20f773c 21-Oct-2008 The Android Open Source Project <initial-contribution@android.com> Initial Contribution