5462 Commits

Author SHA1 Message Date
Mike J. Chen
06e04e4c17 Add media/libaah_rtp
RTP library used to broadcast media from one device to a collection
of listeners.  Handles failures/retries/etc.

This is a squashed merge from master-tungsten of the following changes:

commit e1a5101fe627d71739a7c4263bb3a65c7bc44385
Author: Jason Simmons <jsimmons@google.com>
Date:   Fri Aug 12 13:24:21 2011 -0700

    Hold ThreadWrapper in a ref-counting pointer

    Change-Id: Iaf3343182e37bcc0ca99fbaf8f9bbb8c4984072a

commit 89b90d62e164ff3db27c9cba85255fc476d2dd96
Author: Jason Simmons <jsimmons@google.com>
Date:   Wed Aug 10 13:08:25 2011 -0700

    Update the Tungsten TX player to use HTTPBase

    Change-Id: I9f7ecf1b4b496cec1815284dbcdb958a43284169

commit 43be3231034ff8537fdd84422a7954780038671f
Author: John Grossman <johngro@google.com>
Date:   Mon Jun 27 18:59:12 2011 -0700

    Move libaah_rtp over from the vendor directory.

    Also move factor PipeEvent out into utils.

    Change-Id: Id3877c66efe22d771cf3ef4877107e431b828e37

Change-Id: I5fe1ea941c09204d7b33f15f4e2b2ab320dc468b
Signed-off-by: Mike J. Chen <mjchen@google.com>
Signed-off-by: John Grossman <johngro@google.com>
Signed-off-by: Jason Simmons <jsimmons@google.com>
2011-10-28 10:14:49 -04:00
Mike J. Chen
7bce396226 Media framework changes for Tungsten.
Squashed merge from master-tungsten of the following changes:

commit 73d09e18c4557e583a1684d44d598a1a02fd0cf2
Author: John Grossman <johngro@google.com>
Date:   Mon Jun 20 13:57:44 2011 -0700

    Remove TungstenMisc and rename LinearTransform

    Change-Id: Ie8aa3e24e09fdbf6ef8996c26deb9c5640e20d1b

commit 3114aabe76ad733b59929d87e49c68229f5ae2e8
Author: John Grossman <johngro@google.com>
Date:   Fri Jun 3 10:47:16 2011 -0700

    Name changes and spelling fixes.

    + Replace the term TungstenTime with the Eugene-approved term CommonTime.
    + Fix a spelling error in a comment I noticed.

    Change-Id: I8c10d618206826d16055f78c7724e24443bb03fd

commit cbf2903ab6893b6e662514e2f6d670e268a419df
Author: John Grossman <johngro@google.com>
Date:   Fri Apr 15 09:27:54 2011 -0700

    Migrate Tungsten code from the HC-Tungsten to the Master-Tungsten branch.

    Change-Id: I95372d913a0761d90168edb4016f5ece0ea74502

commit bc7c46aa629f9883e959ef23de8da297f9eb508b
Author: Jason Simmons <jsimmons@google.com>
Date:   Mon Jun 20 13:59:17 2011 -0700

    Create a separate class for timed AudioTracks

commit 43be3231034ff8537fdd84422a7954780038671f
Author: John Grossman <johngro@google.com>
Date:   Mon Jun 27 18:59:12 2011 -0700

    Move libaah_rtp over from the vendor directory.

    Also move factor PipeEvent out into utils.

    Change-Id: Id3877c66efe22d771cf3ef4877107e431b828e37

commit 17526eb3148c9c3d4365b6d5b47e8dc13bca71b6
Author: John Grossman <johngro@google.com>
Date:   Mon Jun 27 17:06:49 2011 -0700

    Name changes for the TRTP Players s/tungsten/aah/g

    Change-Id: I55e9ad13003f6aa6a36955b54426a7efbe31ac51

commit 423fc1bfc0fda799c421a650c83c4b9293b1a08c
Author: Jason Simmons <jsimmons@google.com>
Date:   Mon Jun 20 17:56:09 2011 -0700

    More timed AudioFlinger changes requested by code review:
    * change trimTimedBufferQueue to trimTimedBufferQueue_l
    * create one timed audio buffer heap per client process instead of one per track
    * grow the silence buffer on demand
    * some error handling fixes in timed getNextBuffer
    * calculate the next output PTS in all mixer and track hooks

    Change-Id: Ifc51a08b55029b7c48902ab2f22933ad7bafe1ad

commit a148e2674b1d3cb73289b82b85c333f0a66824a9
Author: John Grossman <johngro@google.com>
Date:   Mon Jun 20 17:02:24 2011 -0700

    Move the A@H time service into frameworks/base

    Change-Id: I5c570cde70e8931e205516cb33517585804ce841

commit dfa438fa49bdaeeb2ec5fd0d17b30d881608b6b1
Author: John Grossman <johngro@google.com>
Date:   Mon Jun 20 11:55:36 2011 -0700

    Fix the build after Mike's code moving.

    Change-Id: Ia883643ded252168bcc5a70584ab6ce97bb05266

commit 04489474ec8e73efe1bf52918831f41659033162
Author: John Grossman <johngro@google.com>
Date:   Fri Jun 17 14:19:50 2011 -0700

    Refactor the local/common clock services.

    This change is one of a set of 5 changes made to different repositories.  Look
    for this comment in all of them.

    Refactor the local/common clock services in tungsten to match android best
    practice.  Notable changes include

    + The kernel no longer knows anything about common time.  Common time has been
      moved completely up into user land.  This has an impact on the accuracy of the
      timesync debugging code, and the netfilter assisted approach to network based
      timesync is going to have to be modified.
    + The timesync driver used by A@H is now just local time driver.
    + The kernel no longer needs access to the linear transform math code, and it
      has been removed.
    + A new HAL has been introduced to expose the concept of local time to the
      system.
    + A non-slewable stub implementation of the local time HAL based on
      CLOCK_MONOTONIC has been added.
    + The TungstenTime library has been eliminated.  Its functionality has been
      distributed among the common time binder service, the local time hal and the
      linear transform utility code.
    + All clients of the old TungstenTime library have been changed to be clients of
      the binder service, the hal and the utility code.
    + The reset_tt utilities have been removed, they no longer have a purpose in the
      system.
    + more progress has been made in eliminating the word "tungsten" from the code.

    Things left to do include
    + Finish getting rid of tungsten from the time service.
    + Move the time service into the framework; AudioFlinger's new timed mode
      depends on it and the service cannot continue to live in vendor tungsten.

    Change-Id: I999b6cfb4a9d267818a86d747c35eecfc6693101

commit d48194545eed1116a84d81e2fb53315d2b0701a7
Author: Jason Simmons <jsimmons@google.com>
Date:   Thu Jun 16 14:22:46 2011 -0700

    Change the interface of the AudioMixer and AudioBufferProvider to accept a presentation timestamp

    Change-Id: Ice2df5628d45a7f77100e7008103b35b3d3160a4

commit 02561419db82b01ffb28df38000716c612988427
Author: John Grossman <johngro@google.com>
Date:   Tue May 10 14:00:21 2011 -0700

    Put in a hack for controling master volume in the policy manager.
    Fix initial master volume reporting.

    Change-Id: Ia6caf2bbc6083c5f99fab852baa40fff10fc5fc7

commit 549cdc3ba115dc654cdade261fb055c72c6cdb79
Author: John Grossman <johngro@google.com>
Date:   Wed May 4 11:46:17 2011 -0700

    Make certain the logic for computing the output stream mixing point is hardened
    against underflow and overflow when input and output sample rates don't match.

    Change-Id: I5ebea07c9938107b435bec7413418622767e4e16

commit 8043d8ed63f51e76d452d22be7d453d4a7794530
Author: Jason Simmons <jsimmons@google.com>
Date:   Wed Apr 27 18:06:27 2011 -0700

    Add the patch for timed audio support to the mono resampler

    Change-Id: I526f34ae9d1e8e3b0ed2fb05af3d024d5c5fe711

commit 2be89486ef23f0b0b0cc2dc25a4c0ee691043f00
Author: John Grossman <johngro@google.com>
Date:   Wed Apr 27 10:38:57 2011 -0700

    Extend the AudioHWInterface to allow it to specify the initial master volume used by AudioFlinger.

    Change-Id: I8823330801c927494cf7ca31a6b8f9264fbfbb26

commit ff89a4d5e37e6a05a2b03f79ab4e97833dd66393
Author: John Grossman <johngro@google.com>
Date:   Wed Apr 27 09:07:14 2011 -0700

    Fix an issue with inconsistent volume reporting.

    Changed masterVolume() to return the same value as the last call
    to setMasterVolume when the HW layer is implementing master
    volume control.  The masterVolume/setMasterVolume API seems to be
    an idea which was abandonded a long time ago; as of today the
    system only ever sets it to 1.0 at startup and then never changes
    it.  Until we can figure out how the concept of external
    amplifier gain control fits into the Android audio framework,
    Tungsten is exposing this API via a hack-tastic invoke back door
    in the TungstenRXPlayer and needs the getter/setter results to be
    consistent.

    Change-Id: I2ac730fa8fc9ee28c88f1a8e6f2e493eb5b65544

commit 086511b2d19cceb976747ac23e12b73fc7c28bea
Author: Jason Simmons <jsimmons@google.com>
Date:   Mon Apr 25 16:07:19 2011 -0700

    Add handling of timed audio tracks in the generic resampling mixer

    Change-Id: Ic3be1d21b1117f1b233808be543c28a0dcec4792

Change-Id: I6ec5d2bca9b8ebc0acd395a7dd92e1a48fcdfa9b
Signed-off-by: Mike J. Chen <mjchen@google.com>
Signed-off-by: John Grossman <johngro@google.com>
Signed-off-by: Jason Simmons <jsimmons@google.com>
2011-10-28 10:14:48 -04:00
Jamie Gennis
fc9592f8a5 am 08479cee: Merge "Stagefright: ANW::connect in MediaPlayerService" into ics-mr0
* commit '08479ceeba56c460fb52f60a24df27776f1936c3':
  Stagefright: ANW::connect in MediaPlayerService
2011-10-28 02:14:01 +00:00
James Dong
da57c0e8cf Merge "Report call status from AudioSource::start() to file writer" into ics-mr1 2011-10-27 15:24:28 -07:00
James Dong
17a5fb36f8 Merge "Unhide QVGA related resolution profiles and allow to use QVGA resolution for timelapse video recording." into ics-mr1 2011-10-27 14:09:50 -07:00
Andreas Huber
1388aced2a Merge "Fix a reference to a stale pointer in AwesomePlayer." into ics-mr1 2011-10-27 09:07:23 -07:00
James Dong
33fe290ca3 Unhide QVGA related resolution profiles and allow to use QVGA resolution for timelapse video recording.
Change-Id: I328d9fa83a381415d7648218a6fb93b3724bbcc6
related-to-bug: 5343832
2011-10-27 08:47:07 -07:00
James Dong
b888fd1306 Fix a hang issue where the first frame can be dropped for timelapse video recording.
Change-Id: I04754f1005a983953a80a659ff13f8762d0e120c
related-to-bug: 5523502
2011-10-26 23:47:55 -07:00
James Dong
02b32fc33a Report call status from AudioSource::start() to file writer
Change-Id: I5109dc87a92170dede4eaa58b039efe6d8b7c330
related-to-bug: 5514288
2011-10-26 23:35:01 -07:00
Jamie Gennis
2fa0ac2e44 Stagefright: ANW::connect in MediaPlayerService
This change moves the ANativeWindow connect and disconnect logic from
MediaPlayer to MediaPlayerService::Client.

Bug: 5502654
Change-Id: Ifc43b98b01ad8f35d62d7ece43110724ec7fda3d
2011-10-26 18:40:00 -07:00
Andreas Huber
e96e84b577 Properly report that we're no longer playing after receiving event
MEDIA_PLAYBACK_COMPLETE or MEDIA_ERROR.

Change-Id: I03eeba751d3728adb33d9c66de4c7444a91696f3
2011-10-26 15:23:31 -07:00
Jamie Gennis
5ded5fc55f am b7b4eaaa: Merge "Stagefright: push blank buffers when tearing down" into ics-mr0
* commit 'b7b4eaaa05284634d50d581d924a250f1194f66d':
  Stagefright: push blank buffers when tearing down
2011-10-26 20:34:38 +00:00
Andreas Huber
d2b76d707b Fix a reference to a stale pointer in AwesomePlayer.
The pointer returned by MetaData::findCString may become stale if the metadata
object is modified. Make a copy of the returned mime type in order to prevent
MediaPlayer::dump log corruption.

Change-Id: I9077aee36c4316d83b37fb909bf91e6b3f75d5d2
2011-10-26 12:35:03 -07:00
Jamie Gennis
c0e4293794 Stagefright: push blank buffers when tearing down
This change makes OMXCodec push RGB 565 buffers filled with black to an
ANativeWindow when tearing down after decoding to protected gralloc
buffers.  This allows the OMX tear down to zero out any protected
buffers that were used without the possibility that the buffer is still
being used by SurfaceFlinger or HWComposer.

Bug: 5483222
Change-Id: I8acedd81a7bb67dfdc2fd15733e3375b6ce8d560
2011-10-25 18:35:02 -07:00
Dave Burke
149a14931e am 23d64420: Merge "Stagefright: idle OMX after ANW errors" into ics-mr0
* commit '23d644202a44383bf008ff86f6faa3ea7e447290':
  Stagefright: idle OMX after ANW errors
2011-10-19 22:38:45 -07:00
Dave Burke
23d644202a Merge "Stagefright: idle OMX after ANW errors" into ics-mr0 2011-10-19 22:37:18 -07:00
Jamie Gennis
6607b39baa Stagefright: idle OMX after ANW errors
This change fixes an issue in Stagefright where the state of an OMXCodec
object can get out of sync with the state of the OMX component.  In
particular, if one of the ANativeWindow functions failed and put the
OMXCodec into the ERROR state, this would cause Stagefright to skip
doing the Executing -> Idle transition.  Without this transition the
freeBuffersOnPort call would never be made, and the MediaBuffers would
end up being leaked (which would also leak the Gralloc buffers they
reference).

Bug: 5333695
Change-Id: I85ea0cf92d18e7ef6d35c7d1e2a7b4e2c9745d34
2011-10-19 21:22:19 -07:00
James Dong
c7d927466e am b3cdadb6: Merge "Check whether media recorder client exists before dumping." into ics-mr0
* commit 'b3cdadb639027f62c7c1637ca962a70d2d1f3b4d':
  Check whether media recorder client exists before dumping.
2011-10-19 17:57:58 -07:00
Marco Nelissen
e68a6936c7 Merge "Refactor FileInserter in MediaScanner and adding unit tests for the newly added class." 2011-10-19 07:50:24 -07:00
James Dong
dc8bbe79b8 Check whether media recorder client exists before dumping.
Change-Id: I1f3a644a958975e4cf6c02099c53e30cc4d2fd82
related-to-bug: 5477177
2011-10-18 22:29:20 -07:00
James Dong
3c563ce672 am 5264f600: Merge "Bail out after kMaxColorFormatSupported calls to OMX_GetParameter(). Avoid infinite loop in querying omx component about the supported color format." into ics-mr0
* commit '5264f6003bbcb8ca70df034379154914260cc322':
  Bail out after kMaxColorFormatSupported calls to OMX_GetParameter(). Avoid infinite loop in querying omx component about the supported color format.
2011-10-18 22:17:34 -07:00
James Dong
5a37afa87c Bail out after kMaxColorFormatSupported calls to OMX_GetParameter().
Avoid infinite loop in querying omx component about the supported color format.

Change-Id: I4997efd36462c792a6d8b5e04c79a80966a559fe
related-to-bug: 5466057
2011-10-18 16:27:53 -07:00
Eric Laurent
46c8f1535a am c0a87dc1: Merge "Fix issue 5462427: Volume should never be 0 ..." into ics-mr0
* commit 'c0a87dc10cc74918518457e96b48f16bcc0ea2cd':
  Fix issue 5462427: Volume should never be 0 ...
2011-10-17 19:50:36 -07:00
Eric Laurent
c0a87dc10c Merge "Fix issue 5462427: Volume should never be 0 ..." into ics-mr0 2011-10-17 19:48:31 -07:00
Dave Burke
499e252245 am 6f13adb2: Merge "Don\'t hold onto the lock while reconnecting to the server" into ics-mr0
* commit '6f13adb22afcb47a1cd45a90eaa3c154522089d4':
  Don't hold onto the lock while reconnecting to the server
2011-10-17 18:36:48 -07:00
Dave Burke
6f13adb22a Merge "Don't hold onto the lock while reconnecting to the server" into ics-mr0 2011-10-17 18:35:11 -07:00
Andreas Huber
96e35f2e57 Don't hold onto the lock while reconnecting to the server
to avoid stalling the readers.

Change-Id: I73b646587c8a654a73ff7d800c0f17bd78001855
2011-10-17 15:49:01 -07:00
Jamie Gennis
29fe8cb941 am c4de6f81: Merge "MediaPlayer: properly handle released surfaces" into ics-mr0
* commit 'c4de6f81d4533acbfc162d051de480d474b72e76':
  MediaPlayer: properly handle released surfaces
2011-10-17 12:40:49 -07:00
Jamie Gennis
f76afc80d2 MediaPlayer: properly handle released surfaces
Bug: 5396571
Change-Id: I6af87cb04f09f9ae6ea77cd7ba31108a3e93d24a
2011-10-14 19:55:12 -07:00
Eric Laurent
b024c30a80 Fix issue 5462427: Volume should never be 0 ...
Make sure that ring or notification volume index
never reaches 0 unless in silent mode.
Conversely, enter silent mode when this volume is set to 0.

Change-Id: Iff5e5e972b607f4736e7a704b26b2dadb40074b0
2011-10-14 17:19:27 -07:00
Eric Laurent
e04783ccde am 615858a8: Merge "Indicate screen off condition to audio framework." into ics-mr0
* commit '615858a8ebb12b3541fd709e6e965ac814880261':
  Indicate screen off condition to audio framework.
2011-10-14 12:58:40 -07:00
Eric Laurent
950e8cb40a Indicate screen off condition to audio framework.
Add a mechanism for AudioService to notify audio framework and audio HAL
that screen is turned on or off. This indication can be used by lower
audio layers to trigger low power audio playback mode.
Current implementaiton based on setParameters() method is experimental
and will be replaced by a different interface when ready.

Change-Id: Ie72ada0a8edec3d71b47681b9f51cb5bc839d45b
2011-10-14 11:40:24 -07:00
Jean-Michel Trivi
414b74c564 am e48440d5: Merge "Fix 5153611 remove remote control client/display log from AudioService" into ics-mr0
* commit 'e48440d59a52c0f13166da2fd32023356d9215d9':
  Fix 5153611 remove remote control client/display log from AudioService
2011-10-14 08:46:08 -07:00
Jean-Michel Trivi
7ff866e8cf Fix 5153611 remove remote control client/display log from AudioService
Do not log debug messages for the RemoteControlClient and
 IRemoteControlDisplay related features.

Change-Id: I81bfeec1770f81b78b679dc03fb40806393b170a
2011-10-13 18:09:26 -07:00
Andreas Huber
a6be6dcd03 NuPlayer is now taking on the task of streaming over RTSP.
Change-Id: Ie204db8810807f1e7981959e34dc0149e5d9563a
2011-10-13 11:31:06 -07:00
Andreas Huber
0eb6ef1798 Merge "Support for an MPEG2 Program Stream extractor." 2011-10-13 10:03:26 -07:00
Mike Lockwood
8334038f9e MtpServer: Pass 0xFFFFFFFF for file size when receiving files >= 4GB in size
Bug: 5432487

Change-Id: Ie86e72d9d85476941eab6a9d271948b8fdde6926
Signed-off-by: Mike Lockwood <lockwood@android.com>
2011-10-13 11:38:20 -04:00
Andreas Huber
33d94067ad Assume a PTS of 0 if absent, don't bail on fragmented PES packets not having PTS
Change-Id: I3b31f08428fb7195b98f145ae0675006c8756de1
related-to-bug: 5450187
2011-10-12 12:14:23 -07:00
Jean-Michel Trivi
09b4d99822 DO NOT MERGE Fix 5389442 RemoteControlClient javadoc
Extend RemoteControlClient class description with an example
 of instance creation showing how the PendingIntent is created
 and how it uses the same ComponentName as the one used
 in AudioManager.registerMediaButtonEventReceiver()

Change-Id: I1af61ddbf5cfb9160ea5b814bed7b881d51b7eff
2011-10-11 18:59:34 -07:00
Dongwon Kang
8e2ed8d512 Refactor FileInserter in MediaScanner and adding unit tests for the newly added class.
Change-Id: Ia0e8c95239916fd4c21cb5bf10ac94201e6eb6f1
2011-10-10 19:34:35 -07:00
James Dong
50c31024e3 Merge "Support AMR as a file type so that it can be imported into movie studio" 2011-10-10 15:22:04 -07:00
Andreas Huber
7f3259403d YouTube can now request custom cache/prefetch parameters and disconnect-at-highwater
through the use of pseudo http headers specified in the setDataSource call.

x-cache-config: -1/-1/0
x-disconnect-at-highwatermark: 1

turns off keep-alives and disconnects every time the cache is full (will attempt
to reconnect once it run below lowwater mark)

related-to-bug: 5433309

Change-Id: Id2f942fc956e0e156834cfcd6bb08dae6a29fae1
2011-10-10 12:41:21 -07:00
James Dong
f58ba65069 Support AMR as a file type so that it can be imported into movie studio
Change-Id: I3fc4f49ae0a210f53b1bab68716f4e558b3d91c5
related-to-bug: 5419452
2011-10-09 21:14:58 -07:00
Andreas Huber
b987d875c6 Specifying -1 for both low and highwater marks would not actually do the right thing
before this change. Also make it more consistent in that specifying -1 for the
keepalive settings specifies the default.

Change-Id: I086f530fbf42abce66d1c8e61157215cb474e044
2011-10-07 10:00:38 -07:00
Andreas Huber
59797e6bec Merge "Allow a system property "media.stagefright.cache-params" to override cache/prefetcher" 2011-10-07 07:59:35 -07:00
James Dong
f3c0056816 Merge "Fix an issue where we should allow negative values but did not" 2011-10-06 20:38:29 -07:00
Andreas Huber
594f0ba996 Allow a system property "media.stagefright.cache-params" to override cache/prefetcher
default parameters. To override specify a property

adb shell setprop media.stagefright.cache-params "4096/20480/15" to
set the low water threshold to 4096 KB, the high water threshold to 20 MB
and the keepalive interval to 15 secs.

if high and/or lowwater mark are negative, the default values are used for
the respective value.

if keep-alive interval is 0, keep-alives are disabled.

Change-Id: I89a4a06836e4a2f473d7a92b567ab07818c2f87d
2011-10-06 15:27:24 -07:00
Andreas Huber
90ba107fcf Return a runtime error instead of assertion if seeking beyond EOS in mpeg4 files.
Change-Id: If6531b4a1ff45460cfcdcc04764c5c63a2f5a749
related-to-bug: 5418914
2011-10-06 09:07:12 -07:00
James Dong
56f71d7dfa Fix an issue where we should allow negative values but did not
Change-Id: Ia8d718b4e6aec4c17db86e30134132f767fd72c5
related-to-bug: 5419527
2011-10-05 20:43:52 -07:00
Lakshman Gowda
db62a245f9 Set crop params to ANative Window during Initialization.
The native_window_set_crop() is called when port reconfig event callback comes from decoder's and
crop parameters are changed from default getconfig() OMX_IndexConfigCommonOutputCrop values.
Since the default crop params are same as port reconfig crop params, the native_window_set_crop()
is not called, hence resulting in displaying the whole frame(paddedWidth x paddedHeight).
By calling native_window_set_crop() during initilaization of output port of decoder ensures
in setting up ANative window to crop region.

Change-Id: I68926464a1f5c7e6053804615c8b9bd32ea85688
Signed-off-by: Lakshman Gowda <lakshman79@ti.com>
2011-10-05 10:29:27 -07:00