summaryrefslogtreecommitdiffstats
path: root/media/libmedia/mediarecorder.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Merge tag 'android-6.0.1_r61' into HEADJessica Wagantall2016-08-021-1/+1
|\ | | | | | | | | | | Android 6.0.1 Release 61 (MOB30Z) Change-Id: Ic86e42d5fb8f81fe5c4f58d2e76852829c609760
| * Don't use sp<>&Marco Nelissen2016-06-231-1/+1
| | | | | | | | | | | | | | because they may end up pointing to NULL after a NULL check was performed. Bug: 28166152 Change-Id: Iab2ea30395b620628cc6f3d067dd4f6fcda824fe
* | stagefright: Squashed commit of pause/resume featuresSteve Kondik2015-11-071-2/+26
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add 2 APIs (suspend/resume) in MediaPlayer - API:suspend() will just pause the player and release all the decoders to replace release() which will release the whole player - API:resume() will just init the decoders again, then start() will be called to restart streaming playback - Add a check in AwesomePlayer::onVideoEvent() to make sure the first seek operation will always seek to the next i-frame Change-Id: Ie4c82906a2a056378119921a656128ebdc1007c4 audio: Add pause support for hardware omx component - ADSP doesn't enter sleep state after wma playback is paused and power suspended. - No support for NT session pause in case of hardware component. NT session need to be paused to put ADSP into power collapse. - Add support of pause in stagefright to ensure device enters suspend mode. Also add intermediate states to avoid concurrency issues between read and pause. Change-Id: I41b946b8c8805e6ee303646b63513b5b16514ef6 libstagefright: Drain input buffer on resume - Buffers returned from codec in paused state are not drained. When codec is resumed these buffers are not drained until the next flush, and may cause timed out issue. - Added change to drain input buffers for sw decoders when resuming. Change-Id: Ida2ab1d5dc3a1910accdd6fb89548262a912d8e7 CRs-Fixed: 569585, 574967 libstagefright: camcorder pause-resume implementation - Add pause resume feature in camcorder app. So that user can pause recording and resume later which results in a single recorded clip. Change-Id: Id19c45ae5bb85265aa4d5304b160ebf119d9575a libstagefright: support pause/resume for timelapse recording Modify the timestamp calculation mechanism in CameraSourceTimeLapse in order to support pause/resume. Change-Id: Icb02ea798b0b807ffb7ada2d1ef5b2414b74edfb
* stagefright: rename usePersistentInputSurface to setInputSurfaceChong Zhang2015-05-131-4/+4
| | | | | | | | and clear persistent surface pointer when MediaRecorder is reset bug: 21045118 bug: 21045402 Change-Id: Ifd0d6deeb969f2252123929541b30b518cecbf9a
* MediaRecorder: implement persistent input surface APIsChong Zhang2015-05-011-0/+19
| | | | | | | Bug: 19127604 Bug: 19489395 Change-Id: I7dd8015a8fe029f9867fcdb52322629c77eff50b
* Respect the record audio app op - mediaSvet Ganov2015-04-291-2/+2
| | | | Change-Id: I3a97977b6e9a09355e2008f780d22d480fb7308b
* namespace does not need a closing semicolonGlenn Kasten2015-03-231-1/+1
| | | | Change-Id: Ie8f9d42fc061f6d558f23b98414e04eb3d14b376
* Remove filename based writer constructorsMarco Nelissen2014-12-101-26/+0
| | | | | | | MediaPlayerService can't open files (it needs an already opened file descriptor), so these were just wasting space. Change-Id: I323044a6c1814a7bff952ed71b5c7792df2abf03
* StagefrightRecorder: webm (video only) supportRobert Shih2014-07-221-2/+5
| | | | | Bug: 16329805 Change-Id: I8a0ecd100fca397add97a1416125bcc6aeb86364
* libmedia: 64-bit compile warningsMark Salyzyn2014-06-201-1/+4
| | | | Change-Id: I600f062fa7148c01851023c1240c39939e648002
* remove uses of Surface in favor or IGraphicBufferProducerMathias Agopian2013-03-121-1/+1
| | | | Change-Id: I13d7a9553aa335bca790a3a59d389d7533c83d57
* CameraService and Stagefright: Support AppOpsEino-Ville Talvala2013-02-251-0/+21
| | | | | | | | | | | | | Camera: - Signal to AppOpsService when camera usage starts and stops - Listen to permissions revocations and act on them - Currently just kill camera connection when permissions lost Stagefright: - Pass on client name, UID to camera as needed Bug: 8181262 Change-Id: I9e33c9d05e9daa77dbb2d795045d08eb887ec8f0
* Merge "Remove unnecessary parameter"Glenn Kasten2012-12-211-1/+1
|\
| * Remove unnecessary parameterGlenn Kasten2012-12-181-1/+1
| | | | | | | | | | | | Just get the parameter on server side Change-Id: I433a63104dbb257e0d862be2ab61847cb36d1c15
* | Rename ISurfaceTexture and SurfaceTextureAndy McFadden2012-12-181-4/+4
|/ | | | | | | | | | The C++ class names don't match what the classes do, so rename ISurfaceTexture to IGraphicBufferProducer, and SurfaceTexture to GLConsumer. Bug 7736700 Change-Id: I64520a55f8c09fe6215382ea361c539a9940cba5
* Whitespace and indentationGlenn Kasten2012-03-131-17/+17
| | | | | | | | | | | | | | Fix indentation to be multiple of 4. Make it easier to search: sp< not sp < to "switch (...)" instead of "switch(...)" (also "if" and "while") Remove redundant blank line at start or EOF. Remove whitespace at end of line. Remove extra blank lines where they don't add value. Use git diff -b or -w to verify. Change-Id: I966b7ba852faa5474be6907fb212f5e267c2874e
* fix libgui header locationMathias Agopian2012-02-271-1/+0
| | | | Change-Id: Iec71706cdd4f29c6904993648ce873e83ef9cafe
* Rename (IF_)LOGE(_IF) to (IF_)ALOGE(_IF) DO NOT MERGESteve Block2012-01-081-65/+65
| | | | | | | See https://android-git.corp.google.com/g/#/c/157220 Bug: 5449033 Change-Id: Ic9c19d30693bd56755f55906127cd6bd7126096c
* Rename (IF_)LOGV(_IF) to (IF_)ALOGV(_IF) DO NOT MERGESteve Block2011-10-261-41/+41
| | | | | | | See https://android-git.corp.google.com/g/#/c/143865 Bug: 5449033 Change-Id: I0122812ed6ff6f5b59fe4a43ab8bff0577adde0a
* Do not support still image capture mode for timelapse video recordingJames Dong2011-07-241-27/+0
| | | | | | related-to-bug: 4973779 Change-Id: Ica665217ab10247b2242acc4e93d4fe9f83e3f45
* Connect MediaRecorder Native to SurfaceMediaSourcePannag Sanketi2011-07-221-3/+30
| | | | | | | | | | | | | | | | | 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
* Add framework support for camcorder zoom.Wu-cheng Li2011-06-271-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. ICameraRecordingProxy startRecording() stopRecording() releaseRecordingFrame() ICameraRecordingProxyListener dataCallbackTimestamp() 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 recording. 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(). bug:2644213 Change-Id: I15269397defc25cbbcae16abc071c8349c123122
* Check file descriptor before passing it through binder callsJames Dong2011-02-221-0/+11
| | | | | | bug - 3476613 Change-Id: I858933fd2fe4c095c0bd58bf50344c47fc104be9
* resolved conflicts for merge of a127c07c to masterKenny Root2010-10-141-1/+1
|\ | | | | | | Change-Id: Ifdfc6681cba00f36456eaf7a97f34a75b9d0c086
| * Support for writing to MPEG2 transport stream files.Andreas Huber2010-10-121-1/+1
| | | | | | | | Change-Id: If3b7a807bc224a4b1cb2236537c3ebdc5aee0d97
* | Added setAuxiliaryOutputFile to MediaRecorder and JNINipun Kwatra2010-08-311-0/+27
| | | | | | | | | | | | | | added setAuxiliaryOutputFile to allow setting of an auxiliary output file. Also added the JNI support. Change-Id: I8c3335192bd6f7fcbfdfc8552cfd0848f2ad2a5d
* | Change the framework to use the new camera preview path.Jamie Gennis2010-08-231-2/+1
|/ | | | | | | | | | | | This change makes the camera HAL interface take an ANativeWindow interface from which all the camera preview buffers will be allocated. The framework code running in application processes now passes a Surface object rather than an ISurface to the camera server via Binder when setting the preview surface. The camera server then forwards that Surface object (which implements the ANativeWindow interface) to the camera HAL, which uses it to communicate with SurfaceFlinger to allocate the camera preview buffers. Change-Id: Ie438f721559cd7de5e4f848a26d96360dda07b5f
* Support for Gtalk video, includes AMR/H.263 assembler and packetization ↵Andreas Huber2010-08-041-1/+1
| | | | | | support, extensions to MediaRecorder to stream via RTP over a pair of UDP sockets as well as various fixes to the RTP implementation. Change-Id: I95b8dd487061add9bade15749e563b01cd99d9a6
* Don't allow MediaRecorder.setParameter() to be invoked in the following states:James Dong2010-02-251-0/+9
| | | | | | error, prepared or recording bug - 2362412
* split libsurfaceflinger_client and libcamera_client out of libuiMathias Agopian2010-02-111-1/+1
|
* Media server death nodificationJames Dong2010-01-151-12/+8
|
* am b2df1699: Merge change 1548 into donutAndroid (Google) Code Review2009-06-081-4/+4
|\ | | | | | | | | | | | | Merge commit 'b2df1699c996e62baa78877978cd2c5607ea4194' * commit 'b2df1699c996e62baa78877978cd2c5607ea4194': NJ-1409: (frameworks/base) Support new audio encoding types(AMR and AAC).
| * NJ-1409: (frameworks/base) Support new audio encoding types(AMR and AAC).Jianhong Jiang2009-06-081-4/+4
| |
* | move libbinder's header files under includes/binderMathias Agopian2009-05-201-1/+1
|/
* auto import from //branches/cupcake_rel/...@140373The Android Open Source Project2009-03-181-2/+3
|
* auto import from //branches/cupcake_rel/...@138607The Android Open Source Project2009-03-131-0/+18
|
* auto import from //branches/cupcake/...@137873The Android Open Source Project2009-03-111-0/+5
|
* auto import from //depot/cupcake/@136594The Android Open Source Project2009-03-051-18/+18
|
* auto import from //depot/cupcake/@135843The Android Open Source Project2009-03-031-0/+617
|
* auto import from //depot/cupcake/@135843The Android Open Source Project2009-03-031-542/+0
|
* auto import from //depot/cupcake/@132589The Android Open Source Project2009-03-031-75/+0
|
* auto import from //depot/cupcake/@137055The Android Open Source Project2009-03-021-0/+75
|
* auto import from //branches/cupcake/...@131421The Android Open Source Project2009-02-131-3/+29
|
* auto import from //branches/cupcake/...@125939The Android Open Source Project2009-01-091-2/+0
|
* Code drop from //branches/cupcake/...@124589The Android Open Source Project2008-12-171-0/+518