192 Commits

Author SHA1 Message Date
James Dong
7741ecc907 am 28a92120: am 3f51fa78: Runtime dump support for MediaWriter
Merge commit '28a92120a702289533a9c9d004bd60f83b2fd98b'

* commit '28a92120a702289533a9c9d004bd60f83b2fd98b':
  Runtime dump support for MediaWriter
2010-08-24 11:20:40 -07:00
Nipun Kwatra
d820714e30 am 701b710c: am 300b0b7e: Merge "setParamMaxFileDurationUs should allow zero time input as per API of setMaxDuration." into gingerbread
Merge commit '701b710c194181765616520f6d89d450b4b6c1f5'

* commit '701b710c194181765616520f6d89d450b4b6c1f5':
  setParamMaxFileDurationUs should allow zero time input as per API of setMaxDuration.
2010-08-24 09:03:55 -07:00
Jamie Gennis
85cfdd0112 Change the framework to use the new camera preview path.
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
2010-08-23 14:31:30 -07:00
Andreas Huber
d5350764c9 Merge "Squashed commit of the following:" 2010-08-23 12:31:59 -07:00
Andreas Huber
e3c01832fc Squashed commit of the following:
commit 35cc68814a9537c31fde146e171e7b0bbdfe211e
Author: Andreas Huber <andih@google.com>
Date:   Mon Aug 16 08:48:42 2010 -0700

    Only enable support for yuv to yuv conversion on passion, where it's available, use the slower yuv->rgb565 path everywhere else.

commit d8ac5a8814103e60d11d2acf61997fc31a1dc58d
Author: Andreas Huber <andih@google.com>
Date:   Fri Aug 13 13:56:44 2010 -0700

    The software renderer takes over all rendering, converting from yuv to yuv if possible and rgb565 otherwise.

commit 684972074b74318bdcb826ed9b5b0864d2d2e273
Author: Andreas Huber <andih@google.com>
Date:   Fri Aug 13 09:34:35 2010 -0700

    A first shot at supporting the new rendering APIs.

Change-Id: Iea9b32856da46950501f1a700f616b5feac710fd
2010-08-23 12:30:24 -07:00
James Dong
3f51fa78ad Runtime dump support for MediaWriter
Change-Id: I10b2c474de612ee4cef4b7c9eae2ee1dd8c2e895
2010-08-23 10:34:05 -07:00
James Dong
349250f3b6 am c8d2fa70: am cbd038fe: Merge "Make MediaWriter stop and pause return errors if necessary" into gingerbread
Merge commit 'c8d2fa704abebdbf0bd8aac185216dc068950217'

* commit 'c8d2fa704abebdbf0bd8aac185216dc068950217':
  Make MediaWriter stop and pause return errors if necessary
2010-08-21 09:43:41 -07:00
Nipun Kwatra
fb45748a1e setParamMaxFileDurationUs should allow zero time input as per API of setMaxDuration.
according to MediaRecorder::setMaxDuration documentation we should disable duration limit
when zero or negative time is passed. Currently setParamMaxFileDurationUs was treating
zero/negative as an error case. Fixed that.

Change-Id: I468c3bcc74cb5a34ee3e172cef5147550d6be096
2010-08-20 14:06:48 -07:00
James Dong
d036662470 Make MediaWriter stop and pause return errors if necessary
o Make the API consistent with SF framework, which the MediaSource
  provides a return status for stop

o Also, helps to convey errors that occurred right when a
  premature stop() is called, leading to a potentially
  mal-formed output file.

Change-Id: I52a932345f38570fdf8ea04d67d73dd94ccd30ef
2010-08-19 13:33:13 -07:00
James Dong
8ef786bf56 am f54da15b: am eff30e3d: Change the default time scale for audio/video track during recording and reduce rounding errors in calculating the sample duration
Merge commit 'f54da15b7c3fa55268451c485544e831832fdf15'

* commit 'f54da15b7c3fa55268451c485544e831832fdf15':
  Change the default time scale for audio/video track during recording
2010-08-16 15:19:29 -07:00
James Dong
eff30e3d1b Change the default time scale for audio/video track during recording
and reduce rounding errors in calculating the sample duration

- Default time scale for tracks other than audio is set to 90000.
- Audio track by default uses the audio sampling rate as the time scale.
- Default movie time scale remains to be 1000.
- The default time scale values will be overwritten by a user-supplied value if exits.

Change-Id: I81b40ed0626ea45e9fd24a89e21a2c5a4a2c3415
2010-08-16 10:38:35 -07:00
James Dong
aa56ede879 am 0386d04b: am 581581fe: Merge "Fix all fd leaks in authoring engine" into gingerbread
Merge commit '0386d04b19619b03b6bce830010e11d31d3f8a5c'

* commit '0386d04b19619b03b6bce830010e11d31d3f8a5c':
  Fix all fd leaks in authoring engine
2010-08-12 09:32:18 -07:00
James Dong
c6280bce51 Fix all fd leaks in authoring engine
Change-Id: I17798543f9dd41cc8bef6f6086e66932f9f97be8
2010-08-11 17:18:30 -07:00
Nipun Kwatra
453e92f6e1 When using still camera for time lapse capture, don't set preview.
Since HD resolution may not be supported by the video camera,
don't set preivew using the HD size. The app should have set the
preview already, just use that.

Change-Id: I2f8e89bf2c7440f7bc8db7e4a228f4c8250d92b4
2010-08-05 21:30:08 -07:00
Andreas Huber
0a3858b0de am 1f513d88: am c17f35dd: Merge "Support for Gtalk video, includes AMR/H.263 assembler and packetization support, extensions to MediaRecorder to stream via RTP over a pair of UDP sockets as well as various fixes to the RTP implementation." into gingerbread
Merge commit '1f513d8821670a33d6361ea521b6756163a3f9bf'

* commit '1f513d8821670a33d6361ea521b6756163a3f9bf':
  Support for Gtalk video, includes AMR/H.263 assembler and packetization support, extensions to MediaRecorder to stream via RTP over a pair of UDP sockets as well as various fixes to the RTP implementation.
2010-08-05 11:46:04 -07:00
Andreas Huber
57648e4eec Support for Gtalk video, includes AMR/H.263 assembler and packetization 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
2010-08-04 11:49:24 -07:00
James Dong
13f5b25c62 am d152c1c7: am d194f3d6: Merge "Replace CHECK with a failure return value when mCamera->setParameters() fails if the camera is locked by someone else." into gingerbread
Merge commit 'd152c1c7534a80b84f6b389efa8a410ea359b3eb'

* commit 'd152c1c7534a80b84f6b389efa8a410ea359b3eb':
  Replace CHECK with a failure return value when mCamera->setParameters() fails
2010-08-04 11:12:40 -07:00
James Dong
af3f29e62b Replace CHECK with a failure return value when mCamera->setParameters() fails
if the camera is locked by someone else.

bug - 2827892

Change-Id: I217d4a00f04ebd57b557d3faef28787c14f23ea0
2010-08-03 15:29:20 -07:00
Nipun Kwatra
17e5304382 Allowing useStillCameraForTimeLapse to be set through MediaRecorder.java
This will allow apps to make the decision of whether to use still image mode or
video mode for time lapse capture.

- setTimeLapseParameters now takes in a useStillCameraForTimeLapse parameter.
- Added support in StagefrightRecorder for passing through this parameter.

Change-Id: Iafbcb76f9a7903118ea5eb822c81008619630f03
2010-08-02 14:42:46 -07:00
James Dong
aea75231a5 am e915b0ef: am d973a533: Merge "Lower the lower bound for max file duration check" into gingerbread
Merge commit 'e915b0ef5d574022dfeffc9b2b61e21c1433c89c'

* commit 'e915b0ef5d574022dfeffc9b2b61e21c1433c89c':
  Lower the lower bound for max file duration check
2010-07-30 14:33:05 -07:00
James Dong
d973a533da Merge "Lower the lower bound for max file duration check" into gingerbread 2010-07-30 14:28:26 -07:00
James Dong
8894de6d3e Lower the lower bound for max file duration check
- This fixed a CTS test where 200 ms is being used

Change-Id: Ib598b7b94be54e98a96703c58c5f244bc379cf7d
2010-07-30 12:41:59 -07:00
Jean-Baptiste Queru
154a320069 resolved conflicts for merge of 27eecb70 to gingerbread
Change-Id: If064f2f4950fc1a4ff38e6927fe2120af76b26f1
2010-07-30 12:08:31 -07:00
Jean-Baptiste Queru
8f5d160c92 am 0c51c98f: am 4506c62a: fix inaccurate copyrights
Merge commit '0c51c98fd9edf0bdc8f2c567470fc332b5ae3adf'

* commit '0c51c98fd9edf0bdc8f2c567470fc332b5ae3adf':
  fix inaccurate copyrights
2010-07-29 17:54:42 -07:00
Jean-Baptiste Queru
0c51c98fd9 am 4506c62a: fix inaccurate copyrights
Merge commit '4506c62abd5767d6d42a97e8e87793a1b3bcb625' into gingerbread-plus-aosp

* commit '4506c62abd5767d6d42a97e8e87793a1b3bcb625':
  fix inaccurate copyrights
2010-07-29 17:52:09 -07:00
Jean-Baptiste Queru
83407b993f fix inaccurate copyrights
Change-Id: I33b0f68f2da34ca4728211d83159cf32a127f6dd
2010-07-29 17:41:35 -07:00
Jean-Baptiste Queru
4506c62abd fix inaccurate copyrights
Change-Id: I33b0f68f2da34ca4728211d83159cf32a127f6dd
2010-07-29 17:35:37 -07:00
James Dong
733bfae99b am cb51115c: am 5587bb7e: Merge "Interleave the audio and video by default - default interleave duration is set to 1 second" into gingerbread
Merge commit 'cb51115cca81ba47d00aa344f6ed16d1056b056b'

* commit 'cb51115cca81ba47d00aa344f6ed16d1056b056b':
  Interleave the audio and video by default
2010-07-28 12:02:59 -07:00
James Dong
63299c0387 Interleave the audio and video by default
- default interleave duration is set to 1 second

This can dramatically reduce the memory usage
by the MP4 file writer.

Change-Id: Ia3ff202cabfcd2d3f183065d31e4596617c2dded
2010-07-28 10:08:03 -07:00
Nipun Kwatra
d01371bf69 Allowing setting of time lapse parameters through MediaRecorder.java
added setTimeLapseParameters() to MediaRecorder.java and SetParameter support
in StagefrightRecorder to allow enabling time lapse and setting the corresponding
parameters.

Change-Id: I509040aa71f8d3fc37337b0894a81d9c0fd7a40a
2010-07-22 17:02:12 -07:00
Eric Laurent
0119ba5bd3 am 34161132: am 7070b365: Added support for auxiliary audio effects to AudioTrack and MediaPlayer.
Merge commit '34161132030254bac7dd64c9713832e2f961a061'

* commit '34161132030254bac7dd64c9713832e2f961a061':
  Added support for auxiliary audio effects to AudioTrack and MediaPlayer.
2010-07-21 09:52:17 -07:00
Eric Laurent
7070b36549 Added support for auxiliary audio effects to AudioTrack and MediaPlayer.
Added methods to AudioTrack and MediaPlayer java classes to enable use of
auxiliary audio effects. The effect can be attached and detached by specifying its
ID and the send level controlled.

Change-Id: Ie74ff54a453096a742688476f612ce355543b6f3
2010-07-21 06:28:01 -07:00
James Dong
c5eeedc93d am 9049fe60: am d7514ec6: Merge "Progress status notification" into gingerbread
Merge commit '9049fe60c20640bd606741c8f45f3f781a1684f5'

* commit '9049fe60c20640bd606741c8f45f3f781a1684f5':
  Progress status notification
2010-07-20 16:55:12 -07:00
Nipun Kwatra
077cba41c1 Use software encoder for time lapse capture.
Change-Id: I7f60eb1af95590c84b0cd98134f5a5a8963338dd
2010-07-20 11:37:17 -07:00
James Dong
85edea7958 Progress status notification
- Keep track of per-track progress

Change-Id: Ibd36f0e8c78581928c8aa2f5e23c5e7e0615c2cc
2010-07-20 08:39:57 -07:00
Nipun Kwatra
f9b80182bc Adding support for timelapse capture using still camera's takepicture.
Also moving entire implementation into a new class CameraSourceTimeLapse
which inherits from CameraSource.

For timelapse capture using still camera, we start a thread which runs a
loop in which it calls Camera::takePicture() and then sleeps until the next
frame should be captured.
The function dataCallback() handles the callback from the camera with the
raw image data. This function copies the data and creates an artificial
timestamp corresponding to one frame time ahead of the last encoded frame's
time stamp. It then calls dataCallbackTimestamp() of the base class which
will think that it recieved the frame from a video camera and proceed as usual.

For moving the implementation to the subclass CameraSourceTimeLapse, added a
few virtual functions to CameraSource, which do the current thing for the base
class, but specialized things for CameraSourceTimeLapse.
E.g. startCameraRecording() in the base class just calls mCamera->startRecording(),
while in CameraSourceTimeLapse it may start a thread for the still camera case.

Change-Id: Ib787f24bd2e1f41681513f0257e1c4ca10a2b4de
2010-07-19 18:22:56 -07:00
James Dong
892681e56e am b068b47c: am d6a85a21: Merge "Support user-supplied timescales for authoring" into gingerbread
Merge commit 'b068b47c6d0214256116a0c661740bddf7acc18c'

* commit 'b068b47c6d0214256116a0c661740bddf7acc18c':
  Support user-supplied timescales for authoring
2010-07-15 11:54:10 -07:00
James Dong
52d13f01a6 Support user-supplied timescales for authoring
- also, change all the real time unit to microseconds in MPEG4Writer

Change-Id: I260f512f2eb670ade7b8858a56335a5d639de756
2010-07-14 17:29:17 -07:00
James Dong
fc0d81c642 am f6bdc764: am 9d8bea11: Merge "Initial checkin for software AVC encoder" into gingerbread
Merge commit 'f6bdc764b7a21f8037504e1dc4f81227ea2bedea'

* commit 'f6bdc764b7a21f8037504e1dc4f81227ea2bedea':
  Initial checkin for software AVC encoder
2010-07-13 11:04:27 -07:00
James Dong
1cc31e629e Initial checkin for software AVC encoder
- Since the software encoder assumes the input is YUV420 planar,
  color conversion needs to be added when the input color format
  does not meet the requirement. With this patch, I only added
  a single color conversion from YUV420 semi planar to YUV420
  planar. We can add more as we go.

Change-Id: If8640c9e5a4f73d385ae9bb2022e57f7f62b91b9
2010-07-13 10:58:20 -07:00
James Dong
5fe0ae8c20 am 4f440632: am 929642ee: Add runtime dumpsys support for media recorder client
Merge commit '4f4406322dafd6e128b437edbc541327f0b38d04'

* commit '4f4406322dafd6e128b437edbc541327f0b38d04':
  Add runtime dumpsys support for media recorder client
2010-07-09 09:20:03 -07:00
James Dong
929642ee00 Add runtime dumpsys support for media recorder client
Change-Id: I4c8a81720f3be2db54678a7e84fe12849255046b
2010-07-08 21:25:55 -07:00
Eric Laurent
98449546fa am b91881fd: am dacabf97: Merge "Added Visualizer effect." into gingerbread
Merge commit 'b91881fdd1608cc922f105ec552b5505da1fecb9'

* commit 'b91881fdd1608cc922f105ec552b5505da1fecb9':
  Added Visualizer effect.
2010-07-07 20:55:40 -07:00
Eric Laurent
dacabf97c6 Merge "Added Visualizer effect." into gingerbread 2010-07-07 16:23:30 -07:00
James Dong
0920b1cd7d am b3598832: am c4243342: Merge "Allow application to set two more encoding paramters: video profile and level" into gingerbread
Merge commit 'b35988329ac1a574898db9226039e37e352c57a8'

* commit 'b35988329ac1a574898db9226039e37e352c57a8':
  Allow application to set two more encoding paramters: video profile and level
2010-07-07 15:00:28 -07:00
James Dong
81c929a684 Allow application to set two more encoding paramters: video profile and level
Change-Id: I673e681cefe184d5c556c612c54600a24a2143e5
2010-07-07 12:11:53 -07:00
Eric Laurent
df9b81ced4 Added Visualizer effect.
The visualizer enables application to retrieve part of the currently playing audio for visualization purpose.
It is not an audio recording interface and only returns partial and low quality audio content as a waveform or
a frequency representation (FFT).

Removed temporary hack made in MediaPlayer for animated wall papers based on audio visualization (snoop() method.

This commit also includes a change in AudioEffect class:
 - the enable()/disable() methods have been replaced bya more standard setEnabled() method.
 - some fixes in javadoc

Change-Id: Id092a1340e9e38dae68646ade7be054e3a36980e
2010-07-07 11:00:28 -07:00
Nipun Kwatra
d26920ada0 Adding timelapse capture from videocamera.
Current implementation looks at the timestamps of all incoming frames in
CameraSource::dataCallbackTimestamp().
It drops all frames until enough time has elapsed to get the next time lapse frame.
When enough time has passed to capture the next time lapse frame, the frame is no longer dropped
and the timestamp of this frame is modified to be one frame time (1/framerate) ahead of the
last encoded frame's time stamp.

Change-Id: I82b9d5e96113dffa6901aac3b8a8ef999ffc1d0b
2010-07-01 14:54:36 -07:00
James Dong
7b06de6d5a Refactor Stagefright::StartMPEG4Recording()
- Also, better error handling

Change-Id: Ic18d08dc6489adf92c6a588efa4baca66429b175
2010-07-01 10:28:38 -07:00
James Dong
c0ab2a6458 Added encoding parameters set up for H263 video encoder
Also:
- Allowed start() call when encoder already starts and stop() call when encoder has not started yet
- Handled default value for audio/video sources/encoders and file output format

Change-Id: I03b2f7d3cf570baa0fd011a8c0ad200f2f2a5da1
2010-06-29 16:44:19 -07:00