OSDN Git Service

android-x86/frameworks-av.git
12 years agoMerge remote-tracking branch 'goog/ics-aah-exp' into merge
Mike Lockwood [Thu, 22 Mar 2012 22:32:51 +0000 (15:32 -0700)]
Merge remote-tracking branch 'goog/ics-aah-exp' into merge

12 years agoMerge "Use NuPlayer for media playback everywhere"
Andreas Huber [Thu, 22 Mar 2012 21:00:53 +0000 (14:00 -0700)]
Merge "Use NuPlayer for media playback everywhere"

12 years agoUse NuPlayer for media playback everywhere
Andreas Huber [Tue, 20 Sep 2011 22:39:58 +0000 (15:39 -0700)]
Use NuPlayer for media playback everywhere

if media.stagefright.use-nuplayer is set to true.

Change-Id: Ibb217e7d7d5195b7feeea557554fe78e1585744c

12 years agoLibAAH_RTP: Fix an issue which crept in during code review.
John Grossman [Thu, 22 Mar 2012 18:26:45 +0000 (11:26 -0700)]
LibAAH_RTP: Fix an issue which crept in during code review.

Fix a mistake which came in as part of a merge conflict resolution
during code review of the recent unicast mode refactor of LibAAH_RTP.
Nop packet which were supposed to carry TS transformations for the
pause state accidentally got flagged as Flush operations.  The flush
packet successfully carried the TS transformation, but also had the
undesired side effect of constantly flushing the stream.

Change-Id: I4c6aa0043fc274a1d7e880ed1d19cf277f22194b
Signed-off-by: John Grossman <johngro@google.com>
12 years agoMerge "Remove enforceFrameCount"
Glenn Kasten [Thu, 22 Mar 2012 18:06:49 +0000 (11:06 -0700)]
Merge "Remove enforceFrameCount"

12 years agoSupport gapless playback for mp3 and m4a
Marco Nelissen [Wed, 21 Mar 2012 20:36:07 +0000 (13:36 -0700)]
Support gapless playback for mp3 and m4a

Gapless playback for appropriately tagged mp3 and m4a files.
Currently this is implemented in OMXCodec, which most players
use, but should be easy to support in other players as well by
using the SkipCutBuffer utility class.

Change-Id: I748c669adc1cfbe5ee9a7dea2fad945d48882551

12 years agoMerge "Split libmedia into libmedia and libmedia_native"
Glenn Kasten [Thu, 22 Mar 2012 14:14:27 +0000 (07:14 -0700)]
Merge "Split libmedia into libmedia and libmedia_native"

12 years agoSplit libmedia into libmedia and libmedia_native
Glenn Kasten [Wed, 21 Mar 2012 16:08:11 +0000 (09:08 -0700)]
Split libmedia into libmedia and libmedia_native

This is still in the old location

Change-Id: Ic1be549b5b607cfd519cb4cecc581624510a4ee1

12 years agoRemove enforceFrameCount
Glenn Kasten [Mon, 19 Mar 2012 19:16:56 +0000 (12:16 -0700)]
Remove enforceFrameCount

It was only used to decide whether to issue a warning.
The warning was issued the first time track was created but
not at re-creation.  Now it is a verbose message every time,
not a warning since it happens all the time with key clicks on A2DP.

Change-Id: I9d39f53c0a7eb84b666e55b1b76ff830cf8f37ba

12 years agoMerge "Add MetaData::dumpToLog"
Marco Nelissen [Wed, 21 Mar 2012 22:12:44 +0000 (15:12 -0700)]
Merge "Add MetaData::dumpToLog"

12 years agoAdd MetaData::dumpToLog
Marco Nelissen [Wed, 21 Mar 2012 19:27:00 +0000 (12:27 -0700)]
Add MetaData::dumpToLog

Utility method for dumping the content of a MetaData object to the log.

Change-Id: I2d91b991e1d9fed2215e8995a73c2b1854205074

12 years agoLibAAH_RTP: Properly handle EOS conditions.
John Grossman [Mon, 19 Mar 2012 23:04:18 +0000 (16:04 -0700)]
LibAAH_RTP: Properly handle EOS conditions.

EOS was being treated as a flush operation which was causing problems.
In particular, the transmitter was delcaring that playback was
complete early (by the clock lead time of the system, which was 1
second in this case).  Also, the receiver was treating the EOS message
just like the flush message, immediately destroying the substreams
associated with the program without letting them play out first.

Change the transmitter to send the EOS message like it always does,
but have it wait until the media time of the last sample has arrived
before reporting playback complete to the app level of things.

On the receiver side of things, don't treat the EOS message like the
flush message.  Instead, have the EOS message simply put the substream
into EOS mode, allowing it to signal EOS to its decoder and shut off
the isAboutToUnderflow hack.

Change-Id: Ibe3ac01044373f83edb7a5f4b70478bd78c16d11

12 years agoLibAAH_RTP: Get rid of PipeEvent
John Grossman [Mon, 19 Mar 2012 18:20:02 +0000 (11:20 -0700)]
LibAAH_RTP: Get rid of PipeEvent

Bionic/Android support eventfd, so there is really no reason to have
PipeEvent around any more.  This change gets rid of it in LibAAH_RTP
and replaces it with eventfds.

Change-Id: I841fcb71bf5015d521d7517c69f44eac0ea92278
Signed-off-by: John Grossman <johngro@google.com>
12 years agoLibAAH_RTP: Add unicast mode support to the RXPlayer
John Grossman [Sun, 18 Mar 2012 23:35:36 +0000 (16:35 -0700)]
LibAAH_RTP: Add unicast mode support to the RXPlayer

Add support for unicast mode to the AAH RXPlayer.  At the API level,
things should be pretty simple.  To use unicast mode, instead of
passing the multicast address and port in the data source URL, just
pass the unicast address and port of the transmitters command and
control port.  For example, instead of

aahRX://224.128.60.5:8867

one might instead pass

aahRX://192.168.63.5:55476

Change-Id: I7b40716983d7a91def86dcf40f093dda4255aae3
Signed-off-by: John Grossman <johngro@google.com>
12 years agoLibAAH_RTP: Fix a stuttering audio bug.
John Grossman [Sun, 18 Mar 2012 00:05:50 +0000 (17:05 -0700)]
LibAAH_RTP: Fix a stuttering audio bug.

Fix a bug discovered while working on adding unicast mode to the TX/RX
players.  Also some general cleanup/consolidation regarding timeout
code.

The bug went like this.  When a TX player had hit EOS, it would send
an EOS command payload to its receivers.  Later, when application
level code shutdown and cleaned up the player, it would send another.
In situations where there is massive packet loss, there is a chance
that not only did both of the EOS packets get dropped, but that they
never got filled in by the retry algorithm because the receiver gave
up on the RTP gap due to an aboutToUnderflow situation in at least one
of its active substreams.

When this happens, there are two major problems.  First, all of the
substreams associated with the TX player which has now gone away have
become effectively leaked.  They will only get cleaned up if the
entire RTP stream (the TX Group) goes away for 10 seconds or more, or
when the RX Player itself is reset by application level code or a
fatal error.  These substreams are holding decoder and renderer
resources which are probably in very short supply, which is a Bad
Thing.

Second, there is now at least one substream in the RX player which is
never going to receive another payload (its TX player source is gone),
but is still considered to be active by the rx player.  Assuming that
this substream's program was in the play state when the track ended,
there is now at least one substream which is always
"aboutToUnderflow".  From here on out, when the retry algorithm is
attempting to decide whether or not it has the time to attempt to fill
in a gap in the muxed RTP sequence, it always decides that it does not
have the time because of the orphaned substream which is stuck in its
about to underflow state.  This effectively means that the retry
algorithm is completely shut off until the rx player gets reset
somehow (something which does not happen during normal operation).
Since the environment had to be extremely lossy to trigger this chain
of events in the first place, and its probably no better now, your
playback is just going to be chock full of gaps which produces
horrible stuttering in the presentation stage of the system.

Two new failsafes have been introduced to keep the double EOS drop
from causing this.  First, a timeout has been introduced on the
substream level, in addition to the already existing RTP level
timeout.  If a substream fails to receive an activity for 10 seconds
(same timeout as the master RTP timeout), it will be automatically
flushed and purged.

Second, the nature of the master RTP timeout on the transmitter side
has been changed.  Instead of just sending an empty NOP command packet
to indicate that the main RTP stream is still alive, the transmitter
now sends a new time of command packet; the Active Program Update
packet.  This packet contains a list of all the active program ID
attached to this TX group.  Upon receiving one of these APU packets,
RX players reset the inactivity timers for all substreams which are
members of the programs listed in the packet, but they also
immediately purge any substreams associated with programs not present
in the APU.

Between the two of these, no matter how nasty and selective the packet
smashing gremlins in your system happen to be, substreams will always
eventually clean up and avoid getting stuck in a perma-stutter
situation.

Also in this CL:
+ Extract some common utility code into a utils.cpp file so that it
  can be shared across the library.
+ Stop using custom timeout logic in the RXPlayer.  Instead, use the
  common Timeout helper class in utils.cpp.

Signed-off-by: John Grossman <johngro@google.com>
Change-Id: I350869942074f2cae020f719c2911d9092ba8055

12 years agoLibAAH_RTP: Refactor TXGroup code, add unicast mode.
John Grossman [Thu, 15 Mar 2012 01:37:14 +0000 (18:37 -0700)]
LibAAH_RTP: Refactor TXGroup code, add unicast mode.

Significantly refactor the TXGroup code to allow transmit groups to
operate in a unicast fanout mode in addition to the traditional pure
multicast mode.  Important changes include...

+ Each transmit group active in the system now has its own socket to
  send and receive traffic on.  In the past, this socket was used to
  listen for retry requests from clients.  Now it is also used to
  listen for group membership reports (IGMPv3 style) from unicast
  clients.  Having an individual socket per transmit group allows
  unicast clients to join the group needing only the IP address and
  port of the transmitters socket, and not needing any additional
  "group id" to be sent to the client beforehand.
+ Setup for the transmitter is now slightly different.  As before, to
  setup for multicast mode, a user can call setRetransmitEndpoint
  passing an IPv4 multicast address and specific port to transmit to.
  It used to also be the case that a user could pass a specific
  unicast address and port to transmit to as well.  This is no longer
  allowed.  Instead, to operate in unicast mode, a user passes 0.0.0.0
  (IPADDR_ANY) as the IP address.  In addition, they need to pass
  either 0 for a port to create a new unicast mode TX group, or they
  need to pass a specific port to cause the player to attempt to use
  an existing unicast mode TX group.  The specific port should be the
  command and control port of the TX group which was bound to when the
  group was originally created.
+ A magic invoke was added to allow clients to fetch the command and
  control port on which a TX Player's TX Group is listening.

The API described above is most likely temporary and should eventually
be replaced with one where TX groups are formal top level objects with
their own independent interface and life-cycle management.

Signed-off-by: John Grossman <johngro@google.com>
Change-Id: Ib4e9737c10660d36c50f1825c9824fff5390b1c7

12 years agoMerge "Parse gapless info from mp4 files"
Marco Nelissen [Wed, 21 Mar 2012 17:16:55 +0000 (10:16 -0700)]
Merge "Parse gapless info from mp4 files"

12 years agoLibAAH_RTP: Change names to prepare for refactor.
John Grossman [Tue, 13 Mar 2012 21:02:14 +0000 (14:02 -0700)]
LibAAH_RTP: Change names to prepare for refactor.

Rename AAH_TXSender to AAH_TXGroup in preparation for refactoring to
support unicast retransmission.

Signed-off-by: John Grossman <johngro@google.com>
Change-Id: I3984db27d1c61c6155d5d7cb9c38eead421b9249

12 years agoParse gapless info from mp4 files
Marco Nelissen [Tue, 20 Mar 2012 17:05:06 +0000 (10:05 -0700)]
Parse gapless info from mp4 files

Change-Id: I4c83d4e12e996dc29708268e68a4bb74b368c6f3

12 years agoam fcf2f4b1: am 98e1b541: Reconcile with ics-mr1-release
The Android Open Source Project [Wed, 21 Mar 2012 16:09:04 +0000 (09:09 -0700)]
am fcf2f4b1: am 98e1b541: Reconcile with ics-mr1-release

* commit 'fcf2f4b17338501d8498a2a16eb832445b293e8f':

12 years agoam 98e1b541: Reconcile with ics-mr1-release
The Android Open Source Project [Wed, 21 Mar 2012 16:06:34 +0000 (09:06 -0700)]
am 98e1b541: Reconcile with ics-mr1-release

* commit '98e1b541f271e92b9dc25d54e275c28102746b04':

12 years agoReconcile with ics-mr1-release
The Android Open Source Project [Wed, 21 Mar 2012 16:00:43 +0000 (09:00 -0700)]
Reconcile with ics-mr1-release

Change-Id: Id19190393a665dd1b07c073970925758aa383691

12 years agoam a4a09465: am 35a8f94d: Reconcile with ics-mr1-release
The Android Open Source Project [Wed, 21 Mar 2012 15:29:33 +0000 (08:29 -0700)]
am a4a09465: am 35a8f94d: Reconcile with ics-mr1-release

* commit 'a4a09465569d0f4cce36f089fa02d5ef9b95db81':
  Fix 5960562: Show emergency button on PukUnlock screen

12 years agoMerge "Clean up Track constructor"
Glenn Kasten [Wed, 21 Mar 2012 15:29:18 +0000 (08:29 -0700)]
Merge "Clean up Track constructor"

12 years agoam 35a8f94d: Reconcile with ics-mr1-release
The Android Open Source Project [Wed, 21 Mar 2012 15:26:56 +0000 (08:26 -0700)]
am 35a8f94d: Reconcile with ics-mr1-release

* commit '35a8f94da6a8a3a6757e5663bfcbcd044f72a92a':
  Fix 5960562: Show emergency button on PukUnlock screen

12 years agoReconcile with ics-mr1-release
The Android Open Source Project [Wed, 21 Mar 2012 15:23:03 +0000 (08:23 -0700)]
Reconcile with ics-mr1-release

Change-Id: I10d78e60e39606f85cfa6fc7e9a7da14db0eeb0a

12 years agoMerge "AudioMixer can be configured for fewer max tracks"
Glenn Kasten [Wed, 21 Mar 2012 15:19:04 +0000 (08:19 -0700)]
Merge "AudioMixer can be configured for fewer max tracks"

12 years agoMerge "Update comments"
Glenn Kasten [Wed, 21 Mar 2012 14:24:21 +0000 (07:24 -0700)]
Merge "Update comments"

12 years agoMerge "Whitespace"
Glenn Kasten [Wed, 21 Mar 2012 14:22:40 +0000 (07:22 -0700)]
Merge "Whitespace"

12 years agoMerge "new doesn't fail on Android"
Glenn Kasten [Wed, 21 Mar 2012 14:21:21 +0000 (07:21 -0700)]
Merge "new doesn't fail on Android"

12 years agoam d58b6cd1: am cbc90453: am 14958e21: Merge "audioflinger: fix issue with camcorder...
Eric Laurent [Wed, 21 Mar 2012 02:35:56 +0000 (19:35 -0700)]
am d58b6cd1: am cbc90453: am 14958e21: Merge "audioflinger: fix issue with camcorder and A2DP" into ics-mr1

* commit 'd58b6cd1e3fdf3deb5147daec556fe424a568732':

12 years agoam a48285c4: am 165ee4c5: am 14958e21: Merge "audioflinger: fix issue with camcorder...
Eric Laurent [Wed, 21 Mar 2012 02:35:53 +0000 (19:35 -0700)]
am a48285c4: am 165ee4c5: am 14958e21: Merge "audioflinger: fix issue with camcorder and A2DP" into ics-mr1

* commit 'a48285c4f22ffc43f1771ebd1ff35dcec48db2c7':
  audioflinger: fix issue with camcorder and A2DP

12 years agoam 044e7503: am eaa08d35: am 2a0d685e: Merge "MediaPlayerService: fix AudioSink laten...
Eric Laurent [Wed, 21 Mar 2012 02:35:41 +0000 (19:35 -0700)]
am 044e7503: am eaa08d35: am 2a0d685e: Merge "MediaPlayerService: fix AudioSink latency" into ics-mr1

* commit '044e7503ccdcd81adb69b5218b3b92ede47b005a':

12 years agoresolved conflicts for merge of ec94ecad to master
Eric Laurent [Wed, 21 Mar 2012 02:24:33 +0000 (19:24 -0700)]
resolved conflicts for merge of ec94ecad to master

Change-Id: I13bc9671cc1ef02bede7e83253aa8a005367fa0c

12 years agoMerge "Handling end times of subtitles."
James Dong [Wed, 21 Mar 2012 01:53:29 +0000 (18:53 -0700)]
Merge "Handling end times of subtitles."

12 years agoHandling end times of subtitles.
Insun Kang [Tue, 13 Mar 2012 23:16:35 +0000 (08:16 +0900)]
Handling end times of subtitles.

Change-Id: Ic19ec8980d0a2bf9f265d375cd56e638a2460af8

12 years agoam eb99cacc: am b388138f: resolved conflicts for merge of 3fe7ee65 to ics-mr1-plus...
Eric Laurent [Wed, 21 Mar 2012 01:20:33 +0000 (18:20 -0700)]
am eb99cacc: am b388138f: resolved conflicts for merge of 3fe7ee65 to ics-mr1-plus-aosp

* commit 'eb99caccd7165385fc83b0175c6d176c990f179b':

12 years agoam 04353390: resolved conflicts for merge of 393dd03e to ics-scoop-plus-aosp
Eric Laurent [Wed, 21 Mar 2012 01:20:31 +0000 (18:20 -0700)]
am 04353390: resolved conflicts for merge of 393dd03e to ics-scoop-plus-aosp

* commit '04353390722b9195434cc86af4414004eff058e8':
  AudioTrack: relax check on minimum buffer size

12 years agoAudioMixer can be configured for fewer max tracks
Glenn Kasten [Wed, 21 Mar 2012 00:01:29 +0000 (17:01 -0700)]
AudioMixer can be configured for fewer max tracks

Change-Id: I371b17cef071d083eecf35cd3627a3adff907a33

12 years agoClean up Track constructor
Glenn Kasten [Mon, 19 Mar 2012 18:14:37 +0000 (11:14 -0700)]
Clean up Track constructor

The 'thread' parameter can never be NULL.
Use constructor initialization list when possible.
Make more members const.
Only put the relevant code under "if (mCblk != NULL)".
Add comment about track name leak.

Change-Id: Ib963390a69bed1999638cc982a759edd1d5f4712

12 years agoMerge "Add libmedia_native"
Glenn Kasten [Tue, 20 Mar 2012 21:01:39 +0000 (14:01 -0700)]
Merge "Add libmedia_native"

12 years agoMerge "Move COM tag parsing to constructor"
Marco Nelissen [Tue, 20 Mar 2012 17:08:52 +0000 (10:08 -0700)]
Merge "Move COM tag parsing to constructor"

12 years agoMove COM tag parsing to constructor
Marco Nelissen [Tue, 20 Mar 2012 16:48:02 +0000 (09:48 -0700)]
Move COM tag parsing to constructor

Change-Id: Icfcf05655ca98ccccad4f94834770c2f4098a764

12 years agoMerge "Parse mp3 encoder padding/delay"
Marco Nelissen [Tue, 20 Mar 2012 16:15:05 +0000 (09:15 -0700)]
Merge "Parse mp3 encoder padding/delay"

12 years agoParse mp3 encoder padding/delay
Marco Nelissen [Mon, 19 Mar 2012 20:49:43 +0000 (13:49 -0700)]
Parse mp3 encoder padding/delay

Get the mp3 encoder padding and delay from a XING frame or iTunSMPB tag.

Change-Id: Icde598c8857d7e7c187a718f478ee9799d6a1b8a

12 years agoMerge "Do not set camera preview display if the surface is null."
Wu-cheng Li [Tue, 20 Mar 2012 02:25:56 +0000 (19:25 -0700)]
Merge "Do not set camera preview display if the surface is null."

12 years agoWhitespace
Glenn Kasten [Wed, 14 Mar 2012 19:56:26 +0000 (12:56 -0700)]
Whitespace

Fix indentation, and add blank lines in key places for clarity

Change-Id: I57a0a8142394f83203161aa9b8aa9276abf3ed7c

12 years agoAdd libmedia_native
Glenn Kasten [Tue, 20 Mar 2012 00:36:25 +0000 (17:36 -0700)]
Add libmedia_native

Change-Id: I3ac357c78fb89f108d15c6e5b9fa317de0e9fb9a

12 years agoMerge "Add libmedia_native"
Glenn Kasten [Mon, 19 Mar 2012 23:21:04 +0000 (16:21 -0700)]
Merge "Add libmedia_native"

12 years agoUpdate comments
Glenn Kasten [Tue, 14 Feb 2012 16:52:15 +0000 (08:52 -0800)]
Update comments

Change-Id: I327663a020670d0a72ff57bd0b682e2ce0528650

12 years agonew doesn't fail on Android
Glenn Kasten [Mon, 19 Mar 2012 17:38:51 +0000 (10:38 -0700)]
new doesn't fail on Android

Change-Id: I5079a3bf31097dd0807b2d806d5f8d3cff2077ab

12 years agoam cbc90453: am 14958e21: Merge "audioflinger: fix issue with camcorder and A2DP...
Eric Laurent [Mon, 19 Mar 2012 15:38:45 +0000 (08:38 -0700)]
am cbc90453: am 14958e21: Merge "audioflinger: fix issue with camcorder and A2DP" into ics-mr1

* commit 'cbc90453248bd3f9a11fdbc07e544d4a39592934':

12 years agoam 165ee4c5: am 14958e21: Merge "audioflinger: fix issue with camcorder and A2DP...
Eric Laurent [Mon, 19 Mar 2012 15:37:48 +0000 (08:37 -0700)]
am 165ee4c5: am 14958e21: Merge "audioflinger: fix issue with camcorder and A2DP" into ics-mr1

* commit '165ee4c53da462b1b6d131e25456dade51c18496':
  audioflinger: fix issue with camcorder and A2DP

12 years agoam 14958e21: Merge "audioflinger: fix issue with camcorder and A2DP" into ics-mr1
Eric Laurent [Mon, 19 Mar 2012 15:34:56 +0000 (08:34 -0700)]
am 14958e21: Merge "audioflinger: fix issue with camcorder and A2DP" into ics-mr1

* commit '14958e21c12f922d7501d32c3bec05109eb342d5':
  audioflinger: fix issue with camcorder and A2DP

12 years agoam 14958e21: Merge "audioflinger: fix issue with camcorder and A2DP" into ics-mr1
Eric Laurent [Mon, 19 Mar 2012 15:34:44 +0000 (08:34 -0700)]
am 14958e21: Merge "audioflinger: fix issue with camcorder and A2DP" into ics-mr1

* commit '14958e21c12f922d7501d32c3bec05109eb342d5':
  audioflinger: fix issue with camcorder and A2DP

12 years agoam 14958e21: Merge "audioflinger: fix issue with camcorder and A2DP" into ics-mr1
Eric Laurent [Mon, 19 Mar 2012 15:34:03 +0000 (08:34 -0700)]
am 14958e21: Merge "audioflinger: fix issue with camcorder and A2DP" into ics-mr1

* commit '14958e21c12f922d7501d32c3bec05109eb342d5':
  audioflinger: fix issue with camcorder and A2DP

12 years agoMerge "audioflinger: fix issue with camcorder and A2DP" into ics-mr1
Eric Laurent [Mon, 19 Mar 2012 15:32:35 +0000 (08:32 -0700)]
Merge "audioflinger: fix issue with camcorder and A2DP" into ics-mr1

12 years agoMerge "audio_channel_in/out_mask_from_count"
Glenn Kasten [Mon, 19 Mar 2012 14:31:58 +0000 (07:31 -0700)]
Merge "audio_channel_in/out_mask_from_count"

12 years agoDo not set camera preview display if the surface is null.
Wu-cheng Li [Wed, 14 Mar 2012 09:25:57 +0000 (17:25 +0800)]
Do not set camera preview display if the surface is null.

MediaRecorder.setPreviewDisplay() is not required if applications
use MediaRecorder.setCamera(). Besides, this causes a problem when
apps use Camera.setPreviewTexture. Camera service thinks the
surface texture from Camera.setPreviewTexture and the surface from
MediaRecorder.setPreviewDisplay are different.

bug:5988937

Change-Id: Ia345705b6679ef349db6e354feaa3cc0fe8bcd8c

12 years agoaudioflinger: fix issue with camcorder and A2DP
Eric Laurent [Sat, 17 Mar 2012 03:37:59 +0000 (20:37 -0700)]
audioflinger: fix issue with camcorder and A2DP

Some audio HALs do not support well a device selection of 0 (no device)
received on an input stream.

This can happen because of a problem in the audioflinger code that handles
the forwarding of the output device selection to the record thread for use by
the pre processing modules that need it. If the output device is 0 (meaning
no op, which happens when stopping playback over A2DP) audioflinger could not
detect it was an output device selection and would forward it to the input
stream (see AudioFlinger::setParameters() and RecordThread::checkForNewParameters_l().

Issue 6179641.

Change-Id: Idae534521866538e0d12ba259a2834f402a922e2

12 years agomerge in ics-mr1-release history after reset to ics-mr1
The Android Automerger [Sat, 17 Mar 2012 02:32:33 +0000 (19:32 -0700)]
merge in ics-mr1-release history after reset to ics-mr1

12 years agoam eaa08d35: am 2a0d685e: Merge "MediaPlayerService: fix AudioSink latency" into...
Eric Laurent [Sat, 17 Mar 2012 00:29:43 +0000 (17:29 -0700)]
am eaa08d35: am 2a0d685e: Merge "MediaPlayerService: fix AudioSink latency" into ics-mr1

* commit 'eaa08d35154b0b9d62098c80c75f2deeadf72b9e':

12 years agoam b1853f70: am 2a0d685e: Merge "MediaPlayerService: fix AudioSink latency" into...
Eric Laurent [Sat, 17 Mar 2012 00:27:09 +0000 (17:27 -0700)]
am b1853f70: am 2a0d685e: Merge "MediaPlayerService: fix AudioSink latency" into ics-mr1

* commit 'b1853f706371b5050cd8184f5c33955c2f5ae36a':
  MediaPlayerService: fix AudioSink latency

12 years agoam 2a0d685e: Merge "MediaPlayerService: fix AudioSink latency" into ics-mr1
Eric Laurent [Sat, 17 Mar 2012 00:26:24 +0000 (17:26 -0700)]
am 2a0d685e: Merge "MediaPlayerService: fix AudioSink latency" into ics-mr1

* commit '2a0d685ed62ff7a5e5a40be0748860c092165984':
  MediaPlayerService: fix AudioSink latency

12 years agoam b388138f: resolved conflicts for merge of 3fe7ee65 to ics-mr1-plus-aosp
Eric Laurent [Sat, 17 Mar 2012 00:26:15 +0000 (17:26 -0700)]
am b388138f: resolved conflicts for merge of 3fe7ee65 to ics-mr1-plus-aosp

* commit 'b388138ff2986d6883fa9331fa91ae5e18ae81a0':

12 years agoresolved conflicts for merge of 393dd03e to ics-scoop-plus-aosp
Eric Laurent [Sat, 17 Mar 2012 00:22:34 +0000 (17:22 -0700)]
resolved conflicts for merge of 393dd03e to ics-scoop-plus-aosp

Change-Id: Ib6af53957780a09e59d663206b956a39fe883d6a

12 years agoresolved conflicts for merge of 3fe7ee65 to ics-mr1-plus-aosp
Eric Laurent [Sat, 17 Mar 2012 00:19:25 +0000 (17:19 -0700)]
resolved conflicts for merge of 3fe7ee65 to ics-mr1-plus-aosp

Change-Id: Ia7e1cd869779e9f512e840b768f5b43992c8a122

12 years agoMerge "Report an error instead of waiting for EOS indefinitely in sf2."
Andreas Huber [Fri, 16 Mar 2012 22:19:30 +0000 (15:19 -0700)]
Merge "Report an error instead of waiting for EOS indefinitely in sf2."

12 years agoam 2a0d685e: Merge "MediaPlayerService: fix AudioSink latency" into ics-mr1
Eric Laurent [Fri, 16 Mar 2012 22:01:44 +0000 (15:01 -0700)]
am 2a0d685e: Merge "MediaPlayerService: fix AudioSink latency" into ics-mr1

* commit '2a0d685ed62ff7a5e5a40be0748860c092165984':
  MediaPlayerService: fix AudioSink latency

12 years agoam 3fe7ee65: Merge "AudioTrack: relax check on minimum buffer size" into ics-mr1
Eric Laurent [Fri, 16 Mar 2012 22:01:42 +0000 (15:01 -0700)]
am 3fe7ee65: Merge "AudioTrack: relax check on minimum buffer size" into ics-mr1

* commit '3fe7ee651db0aae9485ead227c89db1e24b9e245':
  AudioTrack: relax check on minimum buffer size

12 years agoam 2a0d685e: Merge "MediaPlayerService: fix AudioSink latency" into ics-mr1
Eric Laurent [Fri, 16 Mar 2012 22:01:03 +0000 (15:01 -0700)]
am 2a0d685e: Merge "MediaPlayerService: fix AudioSink latency" into ics-mr1

* commit '2a0d685ed62ff7a5e5a40be0748860c092165984':
  MediaPlayerService: fix AudioSink latency

12 years agoam 3fe7ee65: Merge "AudioTrack: relax check on minimum buffer size" into ics-mr1
Eric Laurent [Fri, 16 Mar 2012 22:01:01 +0000 (15:01 -0700)]
am 3fe7ee65: Merge "AudioTrack: relax check on minimum buffer size" into ics-mr1

* commit '3fe7ee651db0aae9485ead227c89db1e24b9e245':
  AudioTrack: relax check on minimum buffer size

12 years agoReport an error instead of waiting for EOS indefinitely in sf2.
Andreas Huber [Fri, 16 Mar 2012 20:19:20 +0000 (13:19 -0700)]
Report an error instead of waiting for EOS indefinitely in sf2.

Change-Id: Id7bcfb90a3b6a61f0df8bd8f39ea4ffa3c433d87

12 years agoMerge "ACodec is a little more aggressive in its error checking now."
Andreas Huber [Fri, 16 Mar 2012 20:15:53 +0000 (13:15 -0700)]
Merge "ACodec is a little more aggressive in its error checking now."

12 years agoMediaPlayerService: fix AudioSink latency
Eric Laurent [Tue, 6 Mar 2012 01:27:11 +0000 (17:27 -0800)]
MediaPlayerService: fix AudioSink latency

The AudioSink latency is currently cached when the associated AudioTrack
is created. However, the AudioTrack latency can change if the AudioTrack is moved
from one output stream to another.
The AudioPlayer must also periodically update its view of the latency
as it is needed to compensate the real audio time used for A/V sync.

This fixes an A/V sync problem seen when switching A2DP on and off while
playing a video.

Change-Id: I28b24049ca114e1af3e24791dcc900f463536ba4

Conflicts:

media/libmediaplayerservice/MediaPlayerService.cpp

12 years agoAudioTrack: relax check on minimum buffer size
Eric Laurent [Tue, 6 Mar 2012 01:06:40 +0000 (17:06 -0800)]
AudioTrack: relax check on minimum buffer size

Current AudioTrack implementation enforces that the requested audio
buffer size is at least corresponding the audio latency.
This requirement is too strong and leads to problems with current
stagefright and AudioSink implementations when playing over output
streams with long latency.

Ultimately, the AudioSink design should be changed to specify a minimum
buffer size in time or frames units but not in buffer count units.

Change-Id: I8ba603956f92ac49143a8249572665aa548f2f0f

Conflicts:

media/libmedia/AudioTrack.cpp

12 years agoACodec is a little more aggressive in its error checking now.
Andreas Huber [Fri, 16 Mar 2012 19:00:18 +0000 (12:00 -0700)]
ACodec is a little more aggressive in its error checking now.

Update components to do the right thing.

Change-Id: Ibfbad3f53effc16368cca4a0e978d01d54d08a1d

12 years agoAdd libmedia_native
Glenn Kasten [Fri, 16 Mar 2012 18:42:24 +0000 (11:42 -0700)]
Add libmedia_native

Change-Id: Ib8cff8abd73723b793f08da99ad59549f219e0e7

12 years agoMerge "Remove obsolete software codec header files and amr encoders."
Andreas Huber [Fri, 16 Mar 2012 18:38:38 +0000 (11:38 -0700)]
Merge "Remove obsolete software codec header files and amr encoders."

12 years agoRemove obsolete software codec header files and amr encoders.
Andreas Huber [Fri, 16 Mar 2012 17:53:50 +0000 (10:53 -0700)]
Remove obsolete software codec header files and amr encoders.

Change-Id: Ifbdf252ee312c9cb5ab29498f1e06dae8f23faf7

12 years agoMerge "Skip XING/VBRI frame when decoding"
Marco Nelissen [Fri, 16 Mar 2012 17:11:13 +0000 (10:11 -0700)]
Merge "Skip XING/VBRI frame when decoding"

12 years agoam 97824b70: am aa1bd6de: am d8cc1421: am 42c6d163: Merge "Add empty libmedia_native...
Glenn Kasten [Fri, 16 Mar 2012 17:06:49 +0000 (10:06 -0700)]
am 97824b70: am aa1bd6de: am d8cc1421: am 42c6d163: Merge "Add empty libmedia_native in old location"

* commit '97824b706d8865b50faf2f09d0cf969bec0874e3':
  Add empty libmedia_native in old location

12 years agoam aa1bd6de: am d8cc1421: am 42c6d163: Merge "Add empty libmedia_native in old location"
Glenn Kasten [Fri, 16 Mar 2012 17:03:54 +0000 (10:03 -0700)]
am aa1bd6de: am d8cc1421: am 42c6d163: Merge "Add empty libmedia_native in old location"

* commit 'aa1bd6dec676ab81e14ca428427d2b8c627c83fa':
  Add empty libmedia_native in old location

12 years agoam d8cc1421: am 42c6d163: Merge "Add empty libmedia_native in old location"
Glenn Kasten [Fri, 16 Mar 2012 17:01:28 +0000 (10:01 -0700)]
am d8cc1421: am 42c6d163: Merge "Add empty libmedia_native in old location"

* commit 'd8cc14211a3d5597d6b5807d6c79a4631e36ba2d':
  Add empty libmedia_native in old location

12 years agoMerge "Remove obsolete OMXComponentBase class"
Andreas Huber [Fri, 16 Mar 2012 16:57:23 +0000 (09:57 -0700)]
Merge "Remove obsolete OMXComponentBase class"

12 years agoRemove obsolete OMXComponentBase class
Andreas Huber [Fri, 16 Mar 2012 15:23:32 +0000 (08:23 -0700)]
Remove obsolete OMXComponentBase class

Change-Id: I701ff5a57b0ab49cc772c4f82d03b5005e54ec6f

12 years agoSkip XING/VBRI frame when decoding
Marco Nelissen [Fri, 16 Mar 2012 14:56:42 +0000 (07:56 -0700)]
Skip XING/VBRI frame when decoding

Don't send the XING/VBRI frame to the decoder, as it will result in
extra data being output. Also clean up the XING seeker code a bit.

Change-Id: I714a94180edae9bedc1bc0c96bf382fe6f928ac6

12 years agoFix a bug in MediaPlayer's addExternalSource().
Insun Kang [Thu, 15 Mar 2012 14:04:43 +0000 (23:04 +0900)]
Fix a bug in MediaPlayer's addExternalSource().

Change-Id: I035cbfb7acccc7ff88d659861ece7d0f61314fda

12 years agoam 42c6d163: Merge "Add empty libmedia_native in old location"
Glenn Kasten [Fri, 16 Mar 2012 05:09:38 +0000 (22:09 -0700)]
am 42c6d163: Merge "Add empty libmedia_native in old location"

* commit '42c6d163aaf5170ac23a4d1e5baadddd0fb71406':
  Add empty libmedia_native in old location

12 years agoMerge "Add a new camera open API that allows taking the ownership."
Wu-cheng Li [Fri, 16 Mar 2012 04:23:24 +0000 (21:23 -0700)]
Merge "Add a new camera open API that allows taking the ownership."

12 years agoAdd empty libmedia_native in old location
Glenn Kasten [Thu, 15 Mar 2012 19:53:43 +0000 (12:53 -0700)]
Add empty libmedia_native in old location

Submitting this first, in the old location, will allow early testing of
the build for all the dependent projects.  Then those projects will not
need to be updated atomically when libmedia_native is moved.

Change-Id: I31ab315e53970986d18a4e3b1673e31460f6a3f1

12 years agoaudio_channel_in/out_mask_from_count
Glenn Kasten [Wed, 14 Mar 2012 19:56:06 +0000 (12:56 -0700)]
audio_channel_in/out_mask_from_count

and avoid ambiguous term "channels" where it might be confusing
as to whether it is a channel mask or channel count

Change-Id: I744fa08ccb6001a98c97bd638d2c9d56836c4234

12 years agoMerge "Move CameraParameters.h to frameworks/native."
Eino-Ville Talvala [Thu, 15 Mar 2012 17:34:00 +0000 (10:34 -0700)]
Merge "Move CameraParameters.h to frameworks/native."

12 years agoMerge "Remove dependency on audio_* location"
Glenn Kasten [Thu, 15 Mar 2012 14:53:54 +0000 (07:53 -0700)]
Merge "Remove dependency on audio_* location"

12 years agoAdd a new camera open API that allows taking the ownership.
Wu-cheng Li [Fri, 24 Feb 2012 03:01:00 +0000 (19:01 -0800)]
Add a new camera open API that allows taking the ownership.

The purpose is to let face unlock always get the camera
successfully. What happened was the camera applications may
have opened the camera in onResume under the lock screen.
This API lets face unlock take the camera from the camera
application. A new permission will be added, so other
applicatoins won't be able to take the camera from the face
unlock.

bug:5584464

Change-Id: Ib3d9dcbc2161815b68db42327dc01148453704c6

12 years agoMerge "Defines MediaPlayer APIs to support multiple audio/video/timedtext tracks."
James Dong [Thu, 15 Mar 2012 00:45:18 +0000 (17:45 -0700)]
Merge "Defines MediaPlayer APIs to support multiple audio/video/timedtext tracks."

12 years agoMove CameraParameters.h to frameworks/native.
Eino-Ville Talvala [Thu, 15 Mar 2012 00:14:19 +0000 (17:14 -0700)]
Move CameraParameters.h to frameworks/native.

CameraParameters.h is indirectly required to implement the Camera
HAL. Move it to frameworks/native.

Bug: 6171735
Change-Id: I1bf4db228333be16fc7caa3c51280a9495293011

12 years agoMerge "Fix Xing seeking when TOC[0] == 0"
Marco Nelissen [Wed, 14 Mar 2012 23:58:13 +0000 (16:58 -0700)]
Merge "Fix Xing seeking when TOC[0] == 0"

12 years agoRemove dependency on audio_* location
Glenn Kasten [Tue, 13 Mar 2012 22:59:35 +0000 (15:59 -0700)]
Remove dependency on audio_* location

Change-Id: I4bc66115fcb9ba22b057bd72db3f561dcb18a0d8

12 years agoFix Xing seeking when TOC[0] == 0
Marco Nelissen [Wed, 14 Mar 2012 23:40:11 +0000 (16:40 -0700)]
Fix Xing seeking when TOC[0] == 0

A file purchased from the Amazon mp3 store had two 0 entries at the
start of the TOC (presumably because there was a lot of silence at
the beginning, which compresses well), which made TOC based seeking
think the TOC was not valid.
b/6170518

Change-Id: Ie7135b4af06ebb925f63a374be780cf3a9404347