summaryrefslogtreecommitdiffstats
path: root/media/libmediaplayerservice/StagefrightRecorder.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Merge "libmediaplayerservice: set priority and operating rate for the codec ↵Ronghua Wu2015-04-221-0/+6
|\ | | | | | | used by recorder."
| * libmediaplayerservice: set priority and operating rate for the codec used by ↵Ronghua Wu2015-04-221-0/+6
| | | | | | | | | | | | | | recorder. Bug: 20481562 Change-Id: Ibff54395e00809500d98e3759f9677f8168c98ae
* | libmediaplayerservice: fix warnings, make warnings errors, use clangLajos Molnar2015-04-171-1/+0
|/ | | | Change-Id: I1b2f6b65c5abbc366068a60b8909104f31b94228
* MediaRecorder: pass capture fps in floatChong Zhang2015-02-231-9/+36
| | | | | | bug: 19460202 Change-Id: Ic8f2dc02dfd482c4b2065b16e28721fc6e3cf696
* MPEG4Writer: add capture fps in meta dataChong Zhang2015-02-231-5/+9
| | | | | | bug: 19460202 Change-Id: I3a6ea3a5149d124ca9a2487a300dcc2db4405d0f
* StageFrightRecorder: update setVideoFrameRate sanity checkZhijun He2015-02-091-1/+1
| | | | | | Allow high speed recording fps to be up to 1000fps Change-Id: I975d11b8a9abbd50ce6982fb46f4a4a3a035e475
* am a2bc118c: am 2a0f484e: am a04c05ab: Merge "Truncate file before recording ↵Marco Nelissen2014-12-101-0/+3
|\ | | | | | | | | | | | | into it." * commit 'a2bc118cfe860f9c108ba089b021d3b003185c56': Truncate file before recording into it.
| * am 2a0f484e: am a04c05ab: Merge "Truncate file before recording into it."Marco Nelissen2014-12-101-0/+3
| |\ | | | | | | | | | | | | * commit '2a0f484e7d95490274e77cd4adc01592cfdf6e3a': Truncate file before recording into it.
| | * Truncate file before recording into it.Marco Nelissen2014-12-101-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | Recording into an existing file of non-zero length could leave old data in the file after the recording ends. Best case that wastes space, worst case it results in a file that's considered corrupt on playback. Change-Id: I2c77a107603b2b36790958360ff0856c2b28d677
* | | Remove filename based writer constructorsMarco Nelissen2014-12-101-8/+0
|/ / | | | | | | | | | | | | MediaPlayerService can't open files (it needs an already opened file descriptor), so these were just wasting space. Change-Id: I323044a6c1814a7bff952ed71b5c7792df2abf03
* | [FM] Fix FM App record fail Buganizer ID: 17975676Hochi Huang2014-10-241-2/+2
|/ | | | | | | | Review: https://partner-android-review.git.corp.google.com/#/c/185234 Signed-off-by: Hochi Huang <hochi.huang@mediatek.com> Change-Id: I872ce744d23049e251a46aebc4019be5b25e3612
* StageFrightRecorder: Enable meta-data mode for VP8 hardware encoder.Praveen Chavan2014-10-061-0/+1
| | | | | | | | | | Meta-data mode for input is preferred (rather required) for recording with camera v1. This capability is queried and enabled per codec; enable it for VP8 hardware encoder. Bug: 17664960 Change-Id: I4735c61670ebe0a555002cc25ef3ed823ab02f1f
* mediarecorder: set level if setting default profileLajos Molnar2014-10-021-0/+5
| | | | | Bug: 17676461 Change-Id: If01ccd09935945d330de0842be95c3544951b6b9
* StagefrightRecorder: default to codec and fps from camcorder low profileChong Zhang2014-09-111-6/+32
| | | | | Bug: 16870964 Change-Id: I18425af630d3f041a3bcf77fbae3f07856fe8af2
* StagefrightRecorder: add VIDEO_ENCODER_VP8 case in setupVideoEncoderRobert Shih2014-08-201-0/+4
| | | | | Bug: 16329805 Change-Id: Ibc80cdeb1958f739dd67b65e57f6b7cc551a9db3
* StagefrightRecorder: check for WEBM format instead of MP4Robert Shih2014-07-241-5/+5
| | | | | Bug: 16544665 Change-Id: Idc45bd4cafc65a11132d10fdf21f8439e186f35f
* StagefrightRecorder: webm (video only) supportRobert Shih2014-07-221-29/+44
| | | | | Bug: 16329805 Change-Id: I8a0ecd100fca397add97a1416125bcc6aeb86364
* Log an error when audio/video encoder failed to createChong Zhang2014-06-111-1/+5
| | | | | Change-Id: I493981cddeb9452c533e2917d8c440897d5e6b49 related-to-bug: 15106730
* initialize encoder at start() time for camera sourceChong Zhang2014-02-261-5/+17
| | | | | Bug: 13156212 Change-Id: I845ef51f662f04c50179dbfb128204922a424e1d
* Merge "support for time lapse/slow motion when using SURFACE source"Chong Zhang2014-02-221-3/+14
|\
| * support for time lapse/slow motion when using SURFACE sourceChong Zhang2014-02-141-3/+14
| | | | | | | | | | Bug: 13032650 Change-Id: Iecbadf9f29c8c49353416fc467fb3acdde279595
* | fix the build by fixing more warnings.Andreas Huber2014-02-111-1/+1
|/ | | | Change-Id: Ied0ec39eb83b101582702d1e30c21643ccf6353e
* resolved conflicts for merge of 566be7c3 to masterNarayan Kamath2014-02-111-3/+4
|\ | | | | | | Change-Id: I7b1cc71057b2bd4f771e7bcf508a8c3abd6017ce
| * Make frameworks/av 64-bit compatibleKévin PETIT2014-02-111-3/+4
| | | | | | | | | | | | | | | | | | | | | | | | Contains the necessary changes to make frameworks/av build and work on a 64-bit machine. Signed-off-by: Craig Barber <craig.barber@arm.com> Signed-off-by: Kévin PETIT <kevin.petit@arm.com> Signed-off-by: Ashok Bhat <ashok.bhat@arm.com> Signed-off-by: Marcus Oakland <marcus.oakland@arm.com> Change-Id: I725feaae50ed8eee25ca2c947cf15aee1f395c43
* | Change StagefrightRecorder to use MediaCodecChong Zhang2014-02-051-162/+168
| | | | | | | | | | Bug: 12305192 Change-Id: I72d7cb571be5bd348b58ad650f3269d24c15d350
* | Merge "Fixed StagefrightRecorder::setupVideoEncoder to use the clipped ↵Robert Shih2013-11-151-18/+10
|\ \ | |/ |/| | | bitrate value mVideoBitRate; removed unused arguments after refactoring."
| * Fixed StagefrightRecorder::setupVideoEncoder to use the clipped bitrate valueRobert Shih2013-11-111-18/+10
| | | | | | | | | | | | | | mVideoBitRate; removed unused arguments after refactoring. Bug: 11074303 Change-Id: Ieb5dd7dc67e5bc16b6e580ba11b157e4365f3cd6
* | StageFrightRecorder: do not use meta-data mode for software encodersLajos Molnar2013-10-301-6/+25
|/ | | | | | | | | | Camera HAL v1 uses vendor-specific camera-source meta-data mode, but software encoders use generic gralloc-source mode, so they are not compatible. Change-Id: I0d1bab8eada26dcb70c97b1eec83f06d1f331239 Signed-off-by: Lajos Molnar <lajos@google.com> Bug: 11446505
* Fix valgrind error.Marco Nelissen2013-03-271-1/+2
| | | | | | | The constructor calls reset(), which in turn calls stop(), which then accesses mCaptureTimeLapse before it has been initialized. Change-Id: Ia94ac740b9bd1a0389c72647a5639dd25320d92c
* 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-2/+11
| | | | | | | | | | | | | 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
* Rename ISurfaceTexture and SurfaceTextureAndy McFadden2012-12-181-1/+1
| | | | | | | | | | 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
* Fix some missing checks against missing codecsJames Dong2012-10-111-14/+14
| | | | | | o related-to-bug: 6971073 Change-Id: Ia6d926663231f9a9ef31c82c85c70595c4a30ebe
* Codecs: Add MetaDataMode support to software video encoders.Eino-Ville Talvala2012-07-241-1/+0
| | | | | | | | | | | | | | This support is needed to enable efficient video recording with emulator and camera HAL 2. - Update SoftAVCEncoder and SoftMPEG4Encoder to support MetaDataMode extension. - Allow CameraSource to handle opaque pixel formats, so that MetaDataMode can be used. - Remove hardware codec restriction for MetaDataMode Bug: 6243944 Change-Id: I970eb3d55542a413b6d75a78f76d3a8583155601
* Added support for HE-AAC recordingDave Burke2012-04-301-2/+10
| | | | | | | | | Fixed bug in decoder related to sample rates / channel counts Made decoder follow Fraunhofer pattern Log if bitrate not available Bug: 6275957 Change-Id: I47a8e29358fa4a88ebc73fe02d46a2bfb96c64fe
* Add Fraunhofer AAC encoder with AAC-ELD support.Dave Burke2012-04-251-1/+9
| | | | Change-Id: I6cd499d257d72f50a5b508bed97796a591a51506
* Refactored SurfaceMediaSourceDaniel Lam2012-04-091-1/+1
| | | | | | | SurfaceMediaSource takes advantage of BufferQueue to avoid duplicated code. Change-Id: I5e60b8eca21e6c3cf728d363cd8f3786125182d1
* fix libgui header locationMathias Agopian2012-02-271-1/+1
| | | | Change-Id: Iec71706cdd4f29c6904993648ce873e83ef9cafe
* Allow to record time lapse videos without using setProfile()James Dong2012-02-221-0/+6
| | | | | | | | o also added a check on whether capture rate was set before starting time lapse video recording. o related-to-bug: 6045507 Change-Id: I8e1fdc8e8931e2684ab3822dc6260db44658e87d
* Move away from MediaDebug and use ADebug insteadJames Dong2012-02-101-8/+8
| | | | Change-Id: I963a3b6f79a7292891973cbeeaf3378b38629f08
* Rename (IF_)LOGE(_IF) to (IF_)ALOGE(_IF) DO NOT MERGESteve Block2012-01-081-37/+37
| | | | | | | See https://android-git.corp.google.com/g/#/c/157220 Bug: 5449033 Change-Id: Ic9c19d30693bd56755f55906127cd6bd7126096c
* Rename (IF_)LOGW(_IF) to (IF_)ALOGW(_IF) DO NOT MERGESteve Block2012-01-061-19/+19
| | | | | | | See https://android-git.corp.google.com/g/157065 Bug: 5449033 Change-Id: I00a4b904f9449e6f93b7fd35eac28640d7929e69
* Rename (IF_)LOGI(_IF) to (IF_)ALOGI(_IF) DO NOT MERGESteve Block2012-01-041-3/+3
| | | | | | | See https://android-git.corp.google.com/g/156801 Bug: 5449033 Change-Id: Ib08fe86d23db91ee153e9f91a99a35c42b9208ea
* Rename (IF_)LOGV(_IF) to (IF_)ALOGV(_IF) DO NOT MERGESteve Block2011-10-261-49/+49
| | | | | | | See https://android-git.corp.google.com/g/#/c/143865 Bug: 5449033 Change-Id: I0122812ed6ff6f5b59fe4a43ab8bff0577adde0a
* Fix an issue where we should allow negative values but did notJames Dong2011-10-051-6/+6
| | | | | Change-Id: Ia8d718b4e6aec4c17db86e30134132f767fd72c5 related-to-bug: 5419527
* Do not support still image capture mode for timelapse video recordingJames Dong2011-07-241-173/+4
| | | | | | related-to-bug: 4973779 Change-Id: Ica665217ab10247b2242acc4e93d4fe9f83e3f45
* Connect MediaRecorder Native to SurfaceMediaSourcePannag Sanketi2011-07-221-19/+90
| | | | | | | | | | | | | | | | | 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
* Use advertised h264 encoding parameters by default if the profile is not ↵James Dong2011-07-081-0/+59
| | | | | | | | baseline o Force to use AVC baseline profile for camcorder low quality videos Change-Id: I3424c57dd0c55fc4991f5767b57695c8f3420ecb
* Add framework support for camcorder zoom.Wu-cheng Li2011-06-271-3/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Support platform and camera dependent recording start time offsetJames Dong2011-05-141-0/+9
| | | | | | related-to-bug: 4390777 Change-Id: Icb52973ad4ac716f04fb103ef527915a966d06d5