480 Commits

Author SHA1 Message Date
Andreas Huber
ce635b5504 am d6c30e8c: am be045061: Merge "Instead of constantly polling the AudioPlayer to see if it reached EOS or finished seeking, initiate the notification from the AudioPlayer when the event happens." into gingerbread
Merge commit 'd6c30e8c1521bc584f33500b8ee897dafdfec023'

* commit 'd6c30e8c1521bc584f33500b8ee897dafdfec023':
  Instead of constantly polling the AudioPlayer to see if it reached EOS or finished seeking, initiate the notification from the AudioPlayer when the event happens.
2010-09-28 14:01:14 -07:00
Andreas Huber
3bf613b268 am c889bbfa: am 4769f579: Merge "Vorbis files may have more samples encoded that should be used, i.e. we have to trim samples at the end of the stream. This is crucial for proper looping of some audio files." into gingerbread
Merge commit 'c889bbfa965f4ba90636f561c5e1353289d4cb06'

* commit 'c889bbfa965f4ba90636f561c5e1353289d4cb06':
  Vorbis files may have more samples encoded that should be used, i.e. we have to trim samples at the end of the stream. This is crucial for proper looping of some audio files.
2010-09-28 14:00:36 -07:00
Andreas Huber
1a3038586a am 9d591860: am 3a9cc8ce: Merge "Squashed commit of the following:" into gingerbread
Merge commit '9d59186068891834272c2e3ee6f9c4228af24656'

* commit '9d59186068891834272c2e3ee6f9c4228af24656':
  Squashed commit of the following:
2010-09-28 13:59:26 -07:00
Andreas Huber
be04506195 Merge "Instead of constantly polling the AudioPlayer to see if it reached EOS or finished seeking, initiate the notification from the AudioPlayer when the event happens." into gingerbread 2010-09-28 12:02:35 -07:00
Andreas Huber
2b359ed5b5 Instead of constantly polling the AudioPlayer to see if it reached EOS or finished seeking, initiate the notification from the AudioPlayer when the event happens.
Change-Id: I43875b6adaf96d4e982ef3dfc3d6c8f7034ac51d
related-to-bug: 3036592
2010-09-28 11:56:39 -07:00
Andreas Huber
4769f57948 Merge "Vorbis files may have more samples encoded that should be used, i.e. we have to trim samples at the end of the stream. This is crucial for proper looping of some audio files." into gingerbread 2010-09-28 11:46:41 -07:00
Andreas Huber
38ae220bb7 Vorbis files may have more samples encoded that should be used, i.e. we have to trim samples at the end of the stream. This is crucial for proper looping of some audio files.
related-to-bug: 3036592
Change-Id: Ib142b171c829ed74156c0281d9d4543fcc96c802
2010-09-28 11:26:03 -07:00
Andreas Huber
c751eccad3 Squashed commit of the following:
commit 29a4d3effb05a2e074cb0693316ab1977baeb0b6
Author: Andreas Huber <andih@google.com>
Date:   Mon Sep 27 12:01:32 2010 -0700

    Fully working implementation of MPEG2TSWriter (for AAC and AVC sources).

    Change-Id: I8a32a47565b647bf6c078c520e39565e08ea0d84

commit f4dec4c3899f3be393508e180d6c07e249d3335e
Author: Andreas Huber <andih@google.com>
Date:   Mon Sep 27 10:36:31 2010 -0700

    More reliable identification of MPEG2 transport streams. Don't keep scanning forever in case the stream does not have both audio and video tracks.

    Change-Id: Icc5b4e8be145b2805e8776559546a6818342aea7

commit 4fe3cc942f9b3d3cf54138b828c41214aa916dd2
Author: Andreas Huber <andih@google.com>
Date:   Mon Sep 27 08:23:39 2010 -0700

    test code

    Change-Id: I16560a17661407d06497f99ff88230724bb898af

commit 64d988b24f49f179a90fa677be11c823959e734b
Author: Andreas Huber <andih@google.com>
Date:   Thu Sep 23 14:42:52 2010 -0700

    First shot at supporting writing to an MPEG2 transport stream.

    Change-Id: Ie537939a99fa3ddc0c7661c47c18277584817c74

Change-Id: If78fd034af8f6e8ceac8dbeff96d5ecb3f6b96dc
2010-09-27 12:04:43 -07:00
Andreas Huber
41fd0a0fa9 am af909581: am 67738486: Merge "Remove stagefright foundation\'s incompatible logging interface and update callsites." into gingerbread
Merge commit 'af90958184fc5cfa1a4190e28bcfc4fdd4a5bcd6'

* commit 'af90958184fc5cfa1a4190e28bcfc4fdd4a5bcd6':
  Remove stagefright foundation's incompatible logging interface and update callsites.
2010-09-21 15:22:00 -07:00
Andreas Huber
6e3fa444c5 Remove stagefright foundation's incompatible logging interface and update callsites.
Change-Id: I45fba7d60530ea0f233ac3695a97306b6dc1795c
2010-09-21 15:12:19 -07:00
Nipun Kwatra
8726305905 Merge "Adding default profiles for specific levels." 2010-09-17 13:54:55 -07:00
Nipun Kwatra
d48a15c3fe Adding default profiles for specific levels.
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
2010-09-17 13:19:13 -07:00
Nipun Kwatra
7553cf74e6 Implemented frequent read returns for quick stop in time lapse.
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
2010-09-17 09:50:27 -07:00
Mike Lockwood
c37255d5d0 Media scanner support for tracking files of arbitrary type.
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>
2010-09-12 23:21:44 -04:00
Nipun Kwatra
522632cde5 Exposing specific profile levels + hasProfile().
- 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
2010-09-10 18:01:46 -07:00
Nipun Kwatra
55d39f2066 Merge "Adding hasProfile." 2010-09-10 15:04:17 -07:00
Nipun Kwatra
35c8b532e5 Merge "Added specific resolution and time lapse profiles." 2010-09-10 14:26:45 -07:00
Nipun Kwatra
9d619542be Adding hasProfile.
- 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
2010-09-10 14:22:11 -07:00
Nipun Kwatra
4af0dfd6cb Added specific resolution and time lapse profiles.
- 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
2010-09-10 14:22:08 -07:00
James Dong
e3aa6aa770 am 306cd58d: am d353c840: Merge "HW audio encoder expects timestamp via kKeyTime from each input buffer" into gingerbread
Merge commit '306cd58ddcc0cb8487bc6e015f8c692eea47a334'

* commit '306cd58ddcc0cb8487bc6e015f8c692eea47a334':
  HW audio encoder expects timestamp via kKeyTime from each input buffer
2010-09-08 17:57:56 -07:00
James Dong
d353c840ad Merge "HW audio encoder expects timestamp via kKeyTime from each input buffer" into gingerbread 2010-09-08 17:51:59 -07:00
James Dong
d015ccf62b HW audio encoder expects timestamp via kKeyTime from each input buffer
- This fixes media server crashes on droid

Change-Id: I7191cadc5275107425ec3ee3d437b2c5295858dc
2010-09-08 17:28:57 -07:00
Eric Laurent
15ff01cdb4 am e126119c: am 95d86480: Merge "Modify type of some environmental reverb parameters" into gingerbread
Merge commit 'e126119c3a406bc564f2549aeb1416aff112689d'

* commit 'e126119c3a406bc564f2549aeb1416aff112689d':
  Modify type of some environmental reverb parameters
2010-09-08 17:22:54 -07:00
Eric Laurent
95d5de0681 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
2010-09-08 16:06:18 -07:00
Nipun Kwatra
f5e1faf1cc Merge changes I71f5b0fc,I92c7accb
* changes:
  Moving decision to use still camera to CameraSourceTimeLapse
  pass auxiliary video parameters.
2010-09-03 17:14:51 -07:00
Nipun Kwatra
4a857e620f Moving decision to use still camera to CameraSourceTimeLapse
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
2010-09-03 17:09:36 -07:00
Andreas Huber
1ab9d1289b am 8e11c822: am 9fee0b2a: Ogg files can be tagged to be automatically looping, this setting always overrides the MediaPlayer\'s setLooping setting.
Merge commit '8e11c82247151085fa165c76bfbc157bc6091ca4'

* commit '8e11c82247151085fa165c76bfbc157bc6091ca4':
  Ogg files can be tagged to be automatically looping, this setting always overrides the MediaPlayer's setLooping setting.
2010-09-03 14:54:28 -07:00
Jamie Gennis
a093659dd0 Merge "Add the new Stagefright ANativeWindow OMX codec API." 2010-09-03 14:42:06 -07:00
Jamie Gennis
33a78149e0 Add the new Stagefright ANativeWindow OMX codec API.
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
2010-09-03 14:32:42 -07:00
Andreas Huber
9fee0b2a02 Ogg files can be tagged to be automatically looping, this setting always overrides the MediaPlayer's setLooping setting.
Change-Id: Ifb564c6cdf6137eac14869f9ca7d471f05a5556a
related-to-bug: 2974691
2010-09-03 14:31:50 -07:00
James Dong
9b3569bc42 am bc1452a3: am 7755cdd6: Remove unused/debugging code from MP4 file writer
Merge commit 'bc1452a307ac61ca87bf78722701ac85100952af'

* commit 'bc1452a307ac61ca87bf78722701ac85100952af':
  Remove unused/debugging code from MP4 file writer
2010-09-03 11:37:14 -07:00
James Dong
7755cdd696 Remove unused/debugging code from MP4 file writer
o also makes nal length in the recorded file modifiable at runtime

Change-Id: I731b4dde7070d8d9628b36b523a5b2c011c7c2cf
2010-09-03 10:13:19 -07:00
James Dong
0e60f5304b am 3c3fc97e: am 46e63b34: Merge "Better file size estimate" into gingerbread
Merge commit '3c3fc97e104bd17af608727d82e965fc28f2c89d'

* commit '3c3fc97e104bd17af608727d82e965fc28f2c89d':
  Better file size estimate
2010-09-03 09:59:05 -07:00
James Dong
cb7e65c6cb Better file size estimate
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
2010-09-02 20:10:00 -07:00
James Dong
9f20d3328f am bb64e554: am 7ed7668b: Merge "Calculate audio media drift time from AudioSource" into gingerbread
Merge commit 'bb64e554d9a28fcf8eebf579e91ff71b8ffef1e3'

* commit 'bb64e554d9a28fcf8eebf579e91ff71b8ffef1e3':
  Calculate audio media drift time from AudioSource
2010-09-02 18:51:05 -07:00
James Dong
4c23815c39 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
2010-09-01 20:45:39 -07:00
Jamie Gennis
2198d7517c Revert "Merge "Add the new Stagefright ANativeWindow OMX codec API.""
This reverts commit 8a643b411e1802977f742709113ce01b06a18e12, reversing
changes made to 73ea9beaf8eb3d0027e78cbc0ac5e626c3f8deb4.
2010-09-01 14:32:35 -07:00
Jamie Gennis
8a643b411e Merge "Add the new Stagefright ANativeWindow OMX codec API." 2010-09-01 14:00:33 -07:00
Jamie Gennis
dab357bfd0 Add the new Stagefright ANativeWindow OMX codec API.
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
2010-09-01 13:07:08 -07:00
Nipun Kwatra
06a1d619aa Added VideoSourceDownSampler
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
2010-08-31 10:38:49 -07:00
Nipun Kwatra
b33a5aea13 Added setAuxiliaryOutputFile to MediaRecorder and JNI
added setAuxiliaryOutputFile to allow setting of an auxiliary output file.
Also added the JNI support.

Change-Id: I8c3335192bd6f7fcbfdfc8552cfd0848f2ad2a5d
2010-08-31 10:38:49 -07:00
Andreas Huber
631025eec0 am 6df6d606: am df992ac9: Merge "ALoopers can now be named (useful to distinguish threads)." into gingerbread
Merge commit '6df6d60681be9d524ce7fc07f2511008de424d27'

* commit '6df6d60681be9d524ce7fc07f2511008de424d27':
  ALoopers can now be named (useful to distinguish threads).
2010-08-30 13:29:51 -07:00
Andreas Huber
df992ac9cc Merge "ALoopers can now be named (useful to distinguish threads)." into gingerbread 2010-08-30 10:28:24 -07:00
Nipun Kwatra
453f2ef14a Merge "client_id->clientId, bugfix for signaling of read abort on stop." 2010-08-27 18:21:30 -07:00
Nipun Kwatra
ea434daf19 client_id->clientId, bugfix for signaling of read abort on stop.
- 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
2010-08-27 18:19:22 -07:00
James Dong
206bf9df48 am a5fe77d0: am df8356ff: Merge "Workaround for a QCOM issue where the output buffer size advertised by the AVC encoder is occasionally too small." into gingerbread
Merge commit 'a5fe77d004091bd9521d087c2572f587191afbfc'

* commit 'a5fe77d004091bd9521d087c2572f587191afbfc':
  Workaround for a QCOM issue where the output buffer size advertised by the AVC encoder
2010-08-27 18:10:01 -07:00
James Dong
c6ff7a9189 am 7d3ff384: am b86365ad: Merge "Suppress the video recording start signal - bug 2950297" into gingerbread
Merge commit '7d3ff3849c830f0136c692b6074f1ba5da288fe7'

* commit '7d3ff3849c830f0136c692b6074f1ba5da288fe7':
  Suppress the video recording start signal
2010-08-27 18:09:37 -07:00
Andreas Huber
c4e0b70a21 ALoopers can now be named (useful to distinguish threads).
Change-Id: Ieabaddb2e3a9e3a7a5bc36e55cd0721b60dbd50e
2010-08-27 15:21:07 -07:00
James Dong
90862e2a8b Workaround for a QCOM issue where the output buffer size advertised by the AVC encoder
is occasionally too small.

bug - 2882917

Change-Id: Id59d8529084c5689a26f272e0cd3b1e955fd8a30
2010-08-27 13:59:26 -07:00
Nipun Kwatra
cf66e47ddd Merge "Added MediaSourceSplitter to split single source to multiple ones." 2010-08-27 13:48:15 -07:00