The low and high profiles should each match one of the
specific profiles. So we need to add the specific profiles
corresponding to the low/high profiles. This makes the
default profile compliant to documentation + cts.
Also fixed javadoc to account time lapse profiles.
Change-Id: I34e7307d00ce261c69dc10ead2900025c7f6d428
If the frame capture interval is large, read will block for a long time.
Due to the way the mediaRecorder framework works, a stop() call from
mediaRecorder waits until the read returns, causing a long wait for
stop() to return. To avoid this, we return a copy of the last read
frame with the same time stamp if a frame is not available quickly.
This keeps the read() call from blocking too long. This method is
triggered when startQuickReadReturns() is called on
CameraSourceTimeLapse.
In the still camera case, also using waitRelative on Condition
instaed of sleeping, so that we can wake it up.
Also for the idle check instead of sleeping, we now wait on a
condition variable, which is woken up when the last takePicture
callback gets called.
Change-Id: Ia74386e175536aee0f44ae2f8b114c353d3d72f5
The native media scanner no longer filters files based on file extension.
Audio, video, image and playlist files are handled as before, but non-media
files are now inserted into the "files" table, which was originally added
to support MTP.
Change-Id: I9053218fb6d2671a3bb181405c34442b94678afc
Signed-off-by: Mike Lockwood <lockwood@android.com>
- Exposing the specific resolution profile levels
QUALITY_{QCIF,CIF,480P,720P,1080P} and the new time lapse profiles
QUALITY_TIME_LAPSE_{LOW,HIGH,QCIF,CIF,480P,720P,1080P}
- Unhiding the hasProfile() function used to test if a given profile exists.
Change-Id: I5d8b9e1ba61718f304235e76d85244e428e68643
- Added hasProfile to CamcorderProfile and JNI.
- Added hasCamcorderProfile to MediaProfiles.
- using android.hardware.Camera.CAMERA_ID_DEFAULT for default camera
in get().
Change-Id: Ib57bb49ae79492d7cbc0ec6c7b6efcbf74f80013
- Added enums QUALITY_{QCIF,480P,720P,1080P}
QUALITY_TIME_LAPSE_{LOW,HIGH,QCIF,480P,720P,1080P} in CamcorderProfile
and corresponding ones in MediaProfiles.
- Added functions createDefaultCamcorderTimeLapseLowProfile,
createDefaultCamcorderTimeLapseHighProfile to set default values.
- Moved javadoc for constants to the get() function.
Change-Id: Ib8b3f8d29395dff77a397d1e6b44cfaf8c481d4d
Merge commit 'e126119c3a406bc564f2549aeb1416aff112689d'
* commit 'e126119c3a406bc564f2549aeb1416aff112689d':
Modify type of some environmental reverb parameters
Changed type of decay time, reverb delay and reflections delay parameters
from signed to unsigned int to match OpenSL ES interface definition.
Also fixed some type casts in lvm reverb wrapper.
Change-Id: I5ca5e76a87c2590f01f031f3168355586ef22556
CameraSourceTimeLapse now decides whether to use still or video
camera automatically. It checks if the passed in size is a valid
preview size and if it is, then uses the video camera else uses
the still camera.
Removed from StagefrightRecorder the support to set parameter
useStillCameraForTimeLapse.
Change-Id: I71f5b0fc7080ca524792381efe918d22e41a7f36
Merge commit '8e11c82247151085fa165c76bfbc157bc6091ca4'
* commit '8e11c82247151085fa165c76bfbc157bc6091ca4':
Ogg files can be tagged to be automatically looping, this setting always overrides the MediaPlayer's setLooping setting.
This change defines the two OMX_SetParameter calls that enable OMX codecs to
interact with ANativeWindows. It also adds the plumbing to the IOMX, OMX, and
OMXNodeInstance classes to use these new APIs.
This is try 2 for this change, after reverting the first one because it broke
the build.
Change-Id: I94249b72bdb5d5719360f03d7935fcca4ece5028
When the recorded file becomes large, the metadata size can
no longer be ignored. This makes it possible to save the
recorded file when the storage becomes almost full at the
end of the recording session.
Change-Id: Ief038080f825c9946ce550949c03e914aec1e31a
Merge commit 'bb64e554d9a28fcf8eebf579e91ff71b8ffef1e3'
* commit 'bb64e554d9a28fcf8eebf579e91ff71b8ffef1e3':
Calculate audio media drift time from AudioSource
The problem was that the time to receive an output buffer
from an audio encoder is different because the encoder does not
need to read from the source for all output buffers. This leads
to large fluctuation in terms of wall clock duration between two
neighboring audio sample outputs from the audio encoder. As a
result, the media time for the video track after adjustment using
the drifting changes wildly sometimes.
This patch addresses this issue by only updating the media drift
time when an audio source input buffer is read. the wall clock
for the audio track is also calculated at the same time when
the input audio buffer is read at AudioSource.
bug - 2959800
Change-Id: I3174aa182f744784b540f0a7198524d4eee8bd7b
This change defines the two OMX_SetParameter calls that enable OMX codecs to
interact with ANativeWindows. It also adds the plumbing to the IOMX, OMX, and
OMXNodeInstance classes to use these new APIs.
Change-Id: Ibfbf893dc3513db0b3d3221bec5708c77287cddc
VideoSourceDownSampler takes in a real video source. The MediaSource
interface is then implemented by shortcircuiting calls to this real source,
except for the read() function. For read we first call read of the real
source, then downsample the frame to the desired size and return that.
Change-Id: I6e1b377e043e136a70a7b03792eb9165bbe26398
added setAuxiliaryOutputFile to allow setting of an auxiliary output file.
Also added the JNI support.
Change-Id: I8c3335192bd6f7fcbfdfc8552cfd0848f2ad2a5d
Merge commit '6df6d60681be9d524ce7fc07f2511008de424d27'
* commit '6df6d60681be9d524ce7fc07f2511008de424d27':
ALoopers can now be named (useful to distinguish threads).
- changed client_id->clientId, mClient_id->mClientId
- there was a bug in the condition for calling
signalReadComplete_lock() in stop. We should call it only when
!mLastReadCompleted and also if the current client has not already
completed its read (this second check was missing before).
Change-Id: I9a57cf6b5c6f3260883a6c74d0c7b22f675c422e
Merge commit 'a5fe77d004091bd9521d087c2572f587191afbfc'
* commit 'a5fe77d004091bd9521d087c2572f587191afbfc':
Workaround for a QCOM issue where the output buffer size advertised by the AVC encoder
MediaSourceSplitter provides a way to split a single mediaSource
into multiple sources. It takes in the real mediaSource and multiple
clients can then be created which serve from the same real mediaSource.
Change-Id: I7254ead24b4c26c784b033e6bc7ff5a0d083a0c3
Merge commit '96dc45597e53742a2c8453f9ce03f7d501a75668'
* commit '96dc45597e53742a2c8453f9ce03f7d501a75668':
Allow sniffers to return a packet of opaque data that the corresponding extractor can take advantage of to not duplicate work already done sniffing. The mp3 extractor takes advantage of this now.
Modified lvm reverb wrapper code to expose a preset reverb interface.
Also removed debug log from bundle and reverb wrapper.
Change-Id: If9b95d91e25a6ff834decdfdda34b17df9b46967
Merge commit 'a102871c7cbb74ebddc53231a871145de61351b0'
* commit 'a102871c7cbb74ebddc53231a871145de61351b0':
Visualizer: replace the FFT implementation with a faster one.
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