OSDN Git Service

android-x86/frameworks-av.git
10 years agofix codec buffer leak in error handling when timestamp goes backward
Chong Zhang [Fri, 14 Feb 2014 23:26:00 +0000 (15:26 -0800)]
fix codec buffer leak in error handling when timestamp goes backward

don't touch codec buffer if we decided to drop a frame with bad pts

Bug: 11971963
Change-Id: I9b4c56210f64258f1be257b14184381a1133e0d6
(cherry picked from commit b63d2433350d56bda9f3477549086c90bb6d535e)

10 years agoMerge "Cap pts gap between adjacent frames to specified value" into klp-dev
Chong Zhang [Tue, 11 Mar 2014 22:09:39 +0000 (22:09 +0000)]
Merge "Cap pts gap between adjacent frames to specified value" into klp-dev

10 years agoCap pts gap between adjacent frames to specified value
Chong Zhang [Sat, 11 Jan 2014 01:36:57 +0000 (17:36 -0800)]
Cap pts gap between adjacent frames to specified value

- In the scenario of cast mirroring, encoding could be suspended
  for prolonged periods. Limiting the pts gap to workaround the
  problem where encoder's rate control logic produces huge frames
  after a long period of suspension.

- Repeat last frame a couple more times to get better quality
  on static scenes.

- Fix the timestamp on repeat frames (it was not set)

Bug: 11971963
Change-Id: I1d68ab3d269874bf3921aa429a985c5f63e428c7
(cherry picked from commit 94ee4b708acfa941581160b267afb79192b1d816)

10 years agosave mGraphicBuffer pointer even when we're suspended
Chong Zhang [Sat, 18 Jan 2014 00:29:59 +0000 (16:29 -0800)]
save mGraphicBuffer pointer even when we're suspended

Bug: 12609966
Change-Id: Ifd41fd973876da69039113fcaeacdccf39472b37
(cherry picked from commit 49270665e7a20cd120724fc388da8b166ff0b4f1)

10 years agoDO NOT MERGE: Camera: delete preview callback when preview size is changed
Zhijun He [Tue, 21 Jan 2014 20:15:56 +0000 (12:15 -0800)]
DO NOT MERGE: Camera: delete preview callback when preview size is changed

Preview callback stream is left configured even the preview size is changed.
This makes the callback stream unnecessarily configured even in recording mode,
which could cause distorted preview for some devices.

Bug: 12210027
Bug: 12591410
Change-Id: If50cddfe5562e91aec1feb1760eccb82ddb21730

10 years agoMerge "AudioTrack: When paused, return cached playback position" into klp-dev
Eric Laurent [Sat, 8 Mar 2014 00:29:56 +0000 (00:29 +0000)]
Merge "AudioTrack: When paused, return cached playback position" into klp-dev

10 years agoMerge "Simplify AudioTrack stream end and fix race" into klp-dev
Glenn Kasten [Fri, 7 Mar 2014 20:22:38 +0000 (20:22 +0000)]
Merge "Simplify AudioTrack stream end and fix race" into klp-dev

10 years agoSimplify AudioTrack stream end and fix race
Glenn Kasten [Fri, 20 Sep 2013 16:28:56 +0000 (09:28 -0700)]
Simplify AudioTrack stream end and fix race

Bug: 10994052
Change-Id: Ib2e38e7a600bcffef8cbc68c1722e40fbbc7ea67

10 years agoAllow for larger codec private data
Marco Nelissen [Mon, 3 Feb 2014 22:33:16 +0000 (14:33 -0800)]
Allow for larger codec private data

This change adds support for multibyte sizes in the ESDS. Previously the
Matroska extractor only supported single byte sizes, so codec private data
had to be less than 108 bytes, and would crash if it was bigger.
b/12584090

Change-Id: I9edfc2f687187d1e98bcfd2fe56576312435df3e

10 years agoMerge "Fix SIGABRT when playing mp4 file" into klp-dev
Marco Nelissen [Fri, 7 Mar 2014 18:22:53 +0000 (18:22 +0000)]
Merge "Fix SIGABRT when playing mp4 file" into klp-dev

10 years agoMerge changes I787e1c05,I72d3a5e1,I0a5cc65f,I75fc2a25,I2c2be08d, ... into klp-dev
Lajos Molnar [Fri, 7 Mar 2014 02:35:50 +0000 (02:35 +0000)]
Merge changes I787e1c05,I72d3a5e1,I0a5cc65f,I75fc2a25,I2c2be08d, ... into klp-dev

* changes:
  LiveSession: Use the actual, possibly redirected url as base in the M3U
  M3UParser: Skip query strings when looking for the last slash in a URL
  ChromiumHTTPDataSource: Keep track of the redirected URL
  Initial HLS seamless switch implementation.
  NuPlayer side support for seamless format switch.
  LiveSession refactor
  PlaylistFetcher: Add support for block-by-block decryption.
  LiveSession: Add support for block-by-block fetchFile.

10 years agoMerge "AnotherPacketSource support to get latest buffered MetaData." into klp-dev
Lajos Molnar [Fri, 7 Mar 2014 02:33:32 +0000 (02:33 +0000)]
Merge "AnotherPacketSource support to get latest buffered MetaData." into klp-dev

10 years agoMerge "Added support to query ACodec whether adaptive playback is enabled." into...
Lajos Molnar [Fri, 7 Mar 2014 02:33:08 +0000 (02:33 +0000)]
Merge "Added support to query ACodec whether adaptive playback is enabled." into klp-dev

10 years agoMerge "stagefright: use CODECS field in EXT-X_STREAM-INF as fallback" into klp-dev
Lajos Molnar [Fri, 7 Mar 2014 02:32:34 +0000 (02:32 +0000)]
Merge "stagefright: use CODECS field in EXT-X_STREAM-INF as fallback" into klp-dev

10 years agoMerge "Fixed misplaced bracket for switch-case block." into klp-dev
Lajos Molnar [Fri, 7 Mar 2014 02:32:25 +0000 (02:32 +0000)]
Merge "Fixed misplaced bracket for switch-case block." into klp-dev

10 years agoMerge "stagefright: Fix issue with tracking media format in packet source" into klp-dev
Lajos Molnar [Fri, 7 Mar 2014 02:32:09 +0000 (02:32 +0000)]
Merge "stagefright: Fix issue with tracking media format in packet source" into klp-dev

10 years agoMerge "stagefright: Fix bugs in playlist fetcher logic" into klp-dev
Lajos Molnar [Fri, 7 Mar 2014 02:31:50 +0000 (02:31 +0000)]
Merge "stagefright: Fix bugs in playlist fetcher logic" into klp-dev

10 years agoLiveSession: Use the actual, possibly redirected url as base in the M3U
Martin Storsjo [Fri, 22 Nov 2013 15:57:31 +0000 (17:57 +0200)]
LiveSession: Use the actual, possibly redirected url as base in the M3U

This fixes playback of HLS streams where the M3U playlists use
relative paths and the main playlist is opened via a redirect.

Bug: 13174301
Change-Id: I787e1c050daddc566be4c8e3f84803d3f91eec46

10 years agoM3UParser: Skip query strings when looking for the last slash in a URL
Martin Storsjo [Fri, 22 Nov 2013 15:05:05 +0000 (17:05 +0200)]
M3UParser: Skip query strings when looking for the last slash in a URL

Bug: 13174301
Change-Id: I72d3a5e11fef9bbd75b291bc490c9cab1dce58da

10 years agoAudioTrack: When paused, return cached playback position
Haynes Mathew George [Wed, 8 Jan 2014 21:59:53 +0000 (13:59 -0800)]
AudioTrack: When paused, return cached playback position

An offload output can be re-used between two audio tracks having
the same configuration. A timestamp query for a paused track
while the other is running would return an incorrect time.
To fix this, cache the playback position on a pause() and return
this time when requested until the track is resumed.

Bug: 12826612.
Change-Id: Ia42b8b8fd2ba8993dfcc9abca72da48d71d78d74

10 years agoFix SIGABRT when playing mp4 file
Marco Nelissen [Mon, 25 Nov 2013 16:39:56 +0000 (08:39 -0800)]
Fix SIGABRT when playing mp4 file

If the track duration was shorter than the segment duration, the calculated
encoder padding would be negative, resulting in a crash.
b/11823061
https://code.google.com/p/android/issues/detail?id=62610

Change-Id: I3989ad88caea38d212b61355c15aec13382c6116

10 years agoMerge changes Id28b35fd,Ie4e64977,I2950f31e into klp-dev
Eino-Ville Talvala [Fri, 7 Mar 2014 01:40:59 +0000 (01:40 +0000)]
Merge changes Id28b35fd,Ie4e64977,I2950f31e into klp-dev

* changes:
  DO NOT MERGE: Camera: fix focusArea wrong indexing issue
  DO NOT MERGE: camera2: Fix race with stream deletion during disconnect.
  DO NOT MERGE: camera2/3: Add protection for still capture path

10 years agoMerge "stagefright: do not offload LD-AAC decoding" into klp-dev
Eric Laurent [Fri, 7 Mar 2014 01:09:33 +0000 (01:09 +0000)]
Merge "stagefright: do not offload LD-AAC decoding" into klp-dev

10 years agoChromiumHTTPDataSource: Keep track of the redirected URL
Martin Storsjo [Fri, 22 Nov 2013 16:11:58 +0000 (18:11 +0200)]
ChromiumHTTPDataSource: Keep track of the redirected URL

This makes the code actually match an existing comment in
DrmInitialization, which claimed that mURI was the redirected
URL and not the original one.

Bug: 13174301
Change-Id: I0a5cc65f520f1482ff91320ae78af84a8a681ee3

10 years agoInitial HLS seamless switch implementation.
Robert Shih [Thu, 20 Feb 2014 21:07:26 +0000 (13:07 -0800)]
Initial HLS seamless switch implementation.

Bug: 11854054
Change-Id: I75fc2a258111295039ac13cc37e407df25891dd2

10 years agoNuPlayer side support for seamless format switch.
Robert Shih [Fri, 24 Jan 2014 00:18:22 +0000 (16:18 -0800)]
NuPlayer side support for seamless format switch.

Avoid reinstantiating decoder if seamless format switch is supported.

Bug: 11854054
Change-Id: I2c2be08d6da90cc835ec747d04a76db2313dfc7c

10 years agoLiveSession refactor
Robert Shih [Fri, 14 Feb 2014 20:21:50 +0000 (12:21 -0800)]
LiveSession refactor

Bug: 11854054
Change-Id: Ia91dce109835e042f72934376d4838b4cc72cb10

10 years agoPlaylistFetcher: Add support for block-by-block decryption.
Robert Shih [Thu, 6 Feb 2014 22:25:25 +0000 (14:25 -0800)]
PlaylistFetcher: Add support for block-by-block decryption.

Bug: 11854054
Change-Id: Ifd3f3369275889e716b360087b5b60d01635b578

10 years agoLiveSession: Add support for block-by-block fetchFile.
Robert Shih [Thu, 6 Feb 2014 22:01:30 +0000 (14:01 -0800)]
LiveSession: Add support for block-by-block fetchFile.

Bug: 11854054
Change-Id: I4025ba7fab8fab2e0c720f73894e908fd98a43d8

10 years agoAnotherPacketSource support to get latest buffered MetaData.
Robert Shih [Thu, 23 Jan 2014 22:25:32 +0000 (14:25 -0800)]
AnotherPacketSource support to get latest buffered MetaData.

Bug: 11854054
Change-Id: Ib3b6e0984036082bf3c4eb7901a2b29be52fdd29

10 years agoAdded support to query ACodec whether adaptive playback is enabled.
Robert Shih [Thu, 23 Jan 2014 23:26:43 +0000 (15:26 -0800)]
Added support to query ACodec whether adaptive playback is enabled.

Bug: 11854054
Change-Id: I6b0308aa8550c643706959277e46dad586c37297

10 years agostagefright: use CODECS field in EXT-X_STREAM-INF as fallback
Robert Shih [Thu, 23 Jan 2014 23:00:53 +0000 (15:00 -0800)]
stagefright: use CODECS field in EXT-X_STREAM-INF as fallback

Use the CODECS field in EXT-X-STREAM-INF as a viable fallback for identifying
available streams in a variant playlist.

Bug: 11854054
Change-Id: I5011809dc7c56220b023eb1a16f2d6a392ddd6f1

10 years agoFixed misplaced bracket for switch-case block.
Robert Shih [Thu, 23 Jan 2014 22:16:32 +0000 (14:16 -0800)]
Fixed misplaced bracket for switch-case block.

Bug: 11854054
Change-Id: I66b410e1e19601ad65d8357bda4c0c58e2dc15dc

10 years agostagefright: Fix issue with tracking media format in packet source
Lajos Molnar [Tue, 17 Dec 2013 22:10:46 +0000 (14:10 -0800)]
stagefright: Fix issue with tracking media format in packet source

Media format in AnotherPacketSource is now tracked across discontinuities.
This fixes a bug where format was set on queueAccessUnit and cleared on
dequeueAccessUnit, thereby allowing it to remain cleared.

Change-Id: I20975a630443f4a223a2b4344e8244f34b9560b9
Signed-off-by: Lajos Molnar <lajos@google.com>
Bug: 12060952

10 years agostagefright: Fix bugs in playlist fetcher logic
Lajos Molnar [Mon, 16 Dec 2013 18:16:32 +0000 (10:16 -0800)]
stagefright: Fix bugs in playlist fetcher logic

1. Improve start time: start playback as soon as the target duration
or 10s was buffered.
2. Select playlist monitor time based on target duration to avoid
continuously missing the boat.
3. If "we miss the boat" we still must request a safe sequence
number (last - 3)

Change-Id: Ie99c360ac67b152ad9af19e9c6e520016f67e4e3
Signed-off-by: Lajos Molnar <lajos@google.com>
Bug: 12060952

10 years agoMerge "stagefright: fix offloading HE-AAC sampling rate." into klp-dev
Eric Laurent [Thu, 6 Mar 2014 19:21:49 +0000 (19:21 +0000)]
Merge "stagefright: fix offloading HE-AAC sampling rate." into klp-dev

10 years agostagefright: do not offload LD-AAC decoding
Eric Laurent [Fri, 6 Dec 2013 19:51:42 +0000 (11:51 -0800)]
stagefright: do not offload LD-AAC decoding

For now, do not offload LD and ELD AAC decoding because there
is no way to know if it is supported by the audio DSP implementation.
The longer term fix will be to have mapMimeToAudioFormat() use the
audio object type in track metadata to refine the AAC format and the
audio HAL list supported AAC profiles.

Bug: 11697128.

Change-Id: Iaa88ecf3f4ae42ad48c1b42a9b007dd80eb88147

10 years agoset AAC MPEG version to MPEG-2
Chong Zhang [Fri, 7 Feb 2014 20:05:34 +0000 (12:05 -0800)]
set AAC MPEG version to MPEG-2

wifi display play spec only allows MPEG-2 AAC.

Bug: 12747927
Change-Id: Ic96d27ce57f5c8e7da55e43b38f629b5c7333817

10 years agostagefright: fix offloading HE-AAC sampling rate.
Eric Laurent [Fri, 6 Dec 2013 19:16:54 +0000 (11:16 -0800)]
stagefright: fix offloading HE-AAC sampling rate.

Fix HE AAC SBR sampling rate reading for explicit
signaling.

Bug: 11697128.
Change-Id: Ifec0ab9d48d9293f6774ec1efd9da9445994cb7c

10 years agoDO NOT MERGE: Camera: fix focusArea wrong indexing issue
Zhijun He [Wed, 29 Jan 2014 16:52:01 +0000 (08:52 -0800)]
DO NOT MERGE: Camera: fix focusArea wrong indexing issue

Bug: 12304559
Change-Id: Id28b35fdd9697c1ec3365f617996801965de8bd0

10 years agoDO NOT MERGE: camera2: Fix race with stream deletion during disconnect.
Ruben Brunk [Thu, 5 Dec 2013 19:00:37 +0000 (11:00 -0800)]
DO NOT MERGE: camera2: Fix race with stream deletion during disconnect.

Bug: 11856804

- Shutdown order in Camera2Client allows a stream to be
  deleted before the corresponding processing thread has
  quit.  This can result in updates being called on the
  processor thread without a valid stream.

Change-Id: Ie4e649771f4321498659211f2a37ed89a6d956c4

10 years agoDO NOT MERGE: camera2/3: Add protection for still capture path
Zhijun He [Tue, 26 Nov 2013 23:11:05 +0000 (15:11 -0800)]
DO NOT MERGE: camera2/3: Add protection for still capture path

Jpeg stream in JpegProcessor could be deleted while process new capture is
ongoing, which unsafe to access a dead consumer endpoint.
Bug: 9316454
Change-Id: I2950f31ea28d0ba01f08502e2e3ba452bf8bb818

10 years agoIncrease kFastTrackMultiplier from 1 to 2
Glenn Kasten [Tue, 3 Dec 2013 17:06:43 +0000 (09:06 -0800)]
Increase kFastTrackMultiplier from 1 to 2

Bug: 11967381
Change-Id: Iedec06280aa745d9df5d661f4916940cede9c191

10 years agoAudioTrack: fix obtainBuffer timeout calculation
Eric Laurent [Tue, 28 Jan 2014 02:13:39 +0000 (18:13 -0800)]
AudioTrack: fix obtainBuffer timeout calculation

AudioTrack::obtainBuffer() passes a pointer to a timeout
variable that has gone out of scope when calling
ClientProxy::obtainBuffer().

Same fix for AudioRecord.

Bug: 11968591.
Change-Id: I5b3d0d86ed2bd8c0412eb2432b1ab519d70efce9

10 years agolibstagefright: Delay release of wakelock in TimedEventQueue
Haynes Mathew George [Fri, 6 Dec 2013 19:31:57 +0000 (11:31 -0800)]
libstagefright: Delay release of wakelock in TimedEventQueue

Delay release of wakelock in the TimedEventQueue to
after an event has been processed.
This ensures AP shutdown does not happen while an event
is ready but hasn't been processed yet.

Bug: 11976087.
Change-Id: I9bce83b9ff0f2b4d174a53c95e5b0f135b5ccc70

10 years agoaudioflinger: fix static track end detection
Eric Laurent [Sat, 21 Dec 2013 01:36:01 +0000 (17:36 -0800)]
audioflinger: fix static track end detection

If a static track is not a fast track,
prepareTracks_l() must rely on framesReady() to
detect end of buffer and remove the track from the active
track list.
Failing to do so results in the track staying active but
not processed by the mixer because in underrun. This leaves the
mix buffer content uninitialized and causes the effect process
function to accumulate its output onto undefined data.

Bug: 12013676.
Change-Id: I4b0819a9d93141ac3307b8786fc6a451dd585220

10 years agoAudioMixer: Remove tracks from enabledTracks after reseting outTemp
Gaurav Kumar [Mon, 6 Jan 2014 05:27:18 +0000 (10:57 +0530)]
AudioMixer: Remove tracks from enabledTracks after reseting outTemp

If any track goes through AudioMixer::process__genericNoResampling, and
its getnextbuffer returns NULL, Then that track is removed by AudioMixer
from enabledTracks.

Thus if all tracks getnextbuffer return NULL, Then this function doesn't
reset outTemp and last buffer in AudioFlinger's mMixBuffer will be
repeated and noise is observed.

Remove tracks from enabledTracks after reseting outTemp to zero, so that
process__genericNoResampling will reset outTemp and noise won't appear.

Bug: 12450065

Change-Id: I28996d425838728955f01eb1a00acf6e6dc2dea1
Signed-off-by: Gaurav Kumar <gaurav.kumar@broadcom.com>
Signed-off-by: Pierre Couillaud <pierre@broadcom.com>
10 years agoupdate offloaded audio track sampling rate
Eric Laurent [Sat, 27 Jul 2013 00:16:50 +0000 (17:16 -0700)]
update offloaded audio track sampling rate

AudioPlayer must read the sampling rate from offloaded audio sinks
whenever a new time position is computed as the decoder can update
the sampling rate on the fly.

Bug: 12823955.

Change-Id: I997e5248cfd4017aeceb4e11689324ded2a5bc88

10 years agoaudioflinger: fix offload write buffer offset
Eric Laurent [Fri, 22 Nov 2013 17:29:56 +0000 (09:29 -0800)]
audioflinger: fix offload write buffer offset

Fix current audio HAL write buffer offset calculation
which assumes that the frame size is a multiple of 2.
'
Bug: 12823725.

Change-Id: I0195ed5cfef225a6f114e7dd405a02680bb7254e

10 years agofix deadlock issues that arise when there are simultaneous
jpadmana [Thu, 14 Nov 2013 11:50:52 +0000 (17:20 +0530)]
fix deadlock issues that arise when there are simultaneous
effect control interface calls to proxy and to
non sub-effect wrappers(eg., bundlewrapper) from audioflinger
Also, return NO_ERROR when CMD_OFFLOAD succeeds

Whenever there are parallel calls to proxy and non sub-effects wrappers,
some of the calls are not completed. This is due to deadlock arsing out
of Proxy waiting for the subeffect call to return and subeffect waiting
for proxy to release lock.
The call flow is changed to a cleaner and simple one - Proxy gets the
aeli(effect library info) of subeffects during the EffectGetSubEffects()
call. Therby, proxy will manage the sub effects by itself rather than
going through effects factory.

Change-Id: If4b259da5776f151c1e81a78a0239d342046d923
Signed-off-by: jpadmana <jayashree.r.padmanaban@intel.com>
Bug: 12424044

10 years agoaudioflinger: check for condition before waiting
Haynes Mathew George [Wed, 4 Dec 2013 05:26:02 +0000 (21:26 -0800)]
audioflinger: check for condition before waiting

AsyncCallbackThread must check for any condition that
was already been satisfied before waiting.

Bug: 11824817
Change-Id: I04683a1f355de4f440106cab47fd916aa39d5e35

10 years agoaudioflinger: update track ready condition
Haynes Mathew George [Sat, 28 Dec 2013 00:09:28 +0000 (16:09 -0800)]
audioflinger: update track ready condition

Signal track ready if the track isStopping().

Bug: 12423190
Change-Id: I95e14905df10ebf301e398263478c8ca25d7e2ce

10 years agoaudioflinger: Fix for a deadlock in track creation
Haynes Mathew George [Fri, 13 Dec 2013 23:40:13 +0000 (15:40 -0800)]
audioflinger: Fix for a deadlock in track creation

AudioFlinger enters a deadlock (with itself) on trying to free a
RecordTrack or Track object that failed initialization. Clear this
bad object from the caller instead.

Bug: 12423233
Change-Id: I926f2beb922a70f6924e593e2bbf1a5b5df85b16

10 years agoAudioTrack: fix position callback after restore
Eric Laurent [Wed, 27 Nov 2013 22:29:13 +0000 (14:29 -0800)]
AudioTrack: fix position callback after restore

When restoring an AudioTrack, the next position callback point
should not be modified and set ahead of current buffer head.
Otherwise, as frames are dropped, the new position is never reached
and an application relying on position callbacks to reload the buffer
would be stalled.

Bug: 11868603.
Change-Id: I93b2a311642a0c89944b78bcc0482d4ceed98ae4

10 years agoMerge "WA: Queue extra buffers on output port during reconfig if input EOS-ed" into...
Lajos Molnar [Tue, 19 Nov 2013 01:28:28 +0000 (01:28 +0000)]
Merge "WA: Queue extra buffers on output port during reconfig if input EOS-ed" into klp-dev

10 years agoMerge "Fix metadata access" into klp-dev
Marco Nelissen [Fri, 15 Nov 2013 21:58:45 +0000 (21:58 +0000)]
Merge "Fix metadata access" into klp-dev

10 years agoFix metadata access
Marco Nelissen [Fri, 15 Nov 2013 21:49:58 +0000 (13:49 -0800)]
Fix metadata access

Metadata string pointers become invalid after setting more metadata,
so don't cache them.
b/11692062

Change-Id: Iaf1afb24cf53f7fa36f49ce759355693494076e5

10 years agoaudioflinger: do not use raw pointer for tracks
Eric Laurent [Fri, 15 Nov 2013 20:02:28 +0000 (12:02 -0800)]
audioflinger: do not use raw pointer for tracks

Commit 9da3d95 surfaced a problem caused by the use of a raw
pointer to a track in offload thread implementation.

Pointers to tracks should always be weak or strong pointers.

Bug: 11708529.
Change-Id: Ic48632532d186c9be8261f73cefdf824b9fbbd2b

10 years agoMerge "AwesomePlayer: correct stream type for offload" into klp-dev
Eric Laurent [Fri, 15 Nov 2013 15:34:11 +0000 (15:34 +0000)]
Merge "AwesomePlayer: correct stream type for offload" into klp-dev

10 years agoAwesomePlayer: correct stream type for offload
Eric Laurent [Fri, 15 Nov 2013 01:28:47 +0000 (17:28 -0800)]
AwesomePlayer: correct stream type for offload

canOffloadStream() function in stagefright utils forces the
stream type to AUDIO_STREAM_MUSIC when querying the audio policy
manager if a particular track is offloadable or not.
This causes MP3 ringtones to be offloaded which is not a validated use case.

The fix consists in using the actual stream type read from the AudioSink.

Bug: 11410937.
Change-Id: I44b8e033a8e785a79cdc291b142f80b5580bdc4d

10 years agoWA: Queue extra buffers on output port during reconfig if input EOS-ed
Lajos Molnar [Thu, 7 Nov 2013 05:04:34 +0000 (21:04 -0800)]
WA: Queue extra buffers on output port during reconfig if input EOS-ed

Some codecs may return input buffers before having them processed.
This causes a halt if we already signaled an EOS on the input
port.  For now keep submitting output meta buffers one at a time if
the input EOS-ed, but the output not yet.

Normally, we submit an output buffer for each input buffer that is
with the component (waiting to be processed).

Change-Id: I8a1251bfb504f40f1e4085a1e220bf9a4d0b05d9
Signed-off-by: Lajos Molnar <lajos@google.com>
Bug: 11433909

10 years agoCamera2: Rework the FPS range vs. FPS single setting detection
Eino-Ville Talvala [Thu, 14 Nov 2013 18:32:13 +0000 (10:32 -0800)]
Camera2: Rework the FPS range vs. FPS single setting detection

Give up on current approach of writing out consistent FPS values
into parameters that will be read back by the app.

- Preserve app's latest set parameters exactly, and compare against
  them when detecting if a new FPS range or single FPS value has been
  selected.

- Since get() returns exactly what was set(), it doesn't matter if the
  app calls getParameters() before its next setParameters(), in terms
  of retriggering FPS selection logic. Before, the behavior varied
  depending on whether the app re-read the parameters.

- As before, if app changes both range and single FPS in a single set
  call, the range set wins. Otherwise, the value that has changed more
  recently is used.

Bug: 11570973
Change-Id: I72b5e60c3f60e88d55127dd1bda87e26eaf929c6

10 years agoMerge "audioflinger: fix offload track transition" into klp-dev
Eric Laurent [Thu, 14 Nov 2013 16:43:19 +0000 (16:43 +0000)]
Merge "audioflinger: fix offload track transition" into klp-dev

10 years agoMerge "audioflinger: fix offload resume after drain" into klp-dev
Eric Laurent [Thu, 14 Nov 2013 16:42:30 +0000 (16:42 +0000)]
Merge "audioflinger: fix offload resume after drain" into klp-dev

10 years agoMerge "stagefright: limit default max-input-size for AVC" into klp-dev
Lajos Molnar [Wed, 13 Nov 2013 23:53:42 +0000 (23:53 +0000)]
Merge "stagefright: limit default max-input-size for AVC" into klp-dev

10 years agoMerge "AwesomePlayer: Improve performance on high-fps clips" into klp-dev
Lajos Molnar [Wed, 13 Nov 2013 23:52:37 +0000 (23:52 +0000)]
Merge "AwesomePlayer: Improve performance on high-fps clips" into klp-dev

10 years agostagefright: limit default max-input-size for AVC
Lajos Molnar [Wed, 13 Nov 2013 22:11:41 +0000 (14:11 -0800)]
stagefright: limit default max-input-size for AVC

AVC has a compression ratio of at least 2.  Account for this, as
some codecs refuse exorbitant max-input-size requests.

Change-Id: Ib68b485879ba33a12a486f2ce18fe100be977699
Signed-off-by: Lajos Molnar <lajos@google.com>
Bug: 11599364

10 years agoMerge "Only initialize sniffers once, don't hold mutex while sniffing" into klp-dev
Marco Nelissen [Wed, 13 Nov 2013 18:11:54 +0000 (18:11 +0000)]
Merge "Only initialize sniffers once, don't hold mutex while sniffing" into klp-dev

10 years agoMerge "Ignore transport stream packets with the "transport_error_indicator" bit set...
Andreas Huber [Wed, 13 Nov 2013 18:06:01 +0000 (18:06 +0000)]
Merge "Ignore transport stream packets with the "transport_error_indicator" bit set" into klp-dev

10 years agoam 27ae268a: am 00cb884f: Merge "StageFright: Removes hacks for Nvidia MPEG2 decoder...
Adam Hampson [Wed, 13 Nov 2013 17:25:33 +0000 (09:25 -0800)]
am 27ae268a: am 00cb884f: Merge "StageFright: Removes hacks for Nvidia MPEG2 decoder" into jb-mr2-dev

* commit '27ae268af29b25d85f83aa34e92ac8b7f6c87c6f':
  StageFright: Removes hacks for Nvidia MPEG2 decoder

10 years agoam 00cb884f: Merge "StageFright: Removes hacks for Nvidia MPEG2 decoder" into jb...
Adam Hampson [Wed, 13 Nov 2013 17:21:33 +0000 (09:21 -0800)]
am 00cb884f: Merge "StageFright: Removes hacks for Nvidia MPEG2 decoder" into jb-mr2-dev

* commit '00cb884fc870aba4052c8d187a45e4aec50a6b43':
  StageFright: Removes hacks for Nvidia MPEG2 decoder

10 years agoMerge "StageFright: Removes hacks for Nvidia MPEG2 decoder" into jb-mr2-dev
Adam Hampson [Wed, 13 Nov 2013 17:14:31 +0000 (17:14 +0000)]
Merge "StageFright: Removes hacks for Nvidia MPEG2 decoder" into jb-mr2-dev

10 years agoaudioflinger: fix offload track transition
Eric Laurent [Wed, 13 Nov 2013 03:25:43 +0000 (19:25 -0800)]
audioflinger: fix offload track transition

Make sure that when transitioning from one active
offloaded track to the next we flush DSP content
if both tracks are not on the same audio session.
This happens when switching between two applications
playing the same type of content (e.g MP3, stereo, 44.1).
In this case, we reuse the same output thread because the track
formats are compatible.

Bug: 11247103.
Change-Id: I2b9031591149adeb70766da5e0d21ff2933a37e8

10 years agoaudioflinger: fix offload resume after drain
Eric Laurent [Wed, 13 Nov 2013 03:10:17 +0000 (19:10 -0800)]
audioflinger: fix offload resume after drain

When pausing and resuming during the drain,
the drain sequence number shuold not be modified
otherwise the drain callback will be ignored.
This causes failure to notify end of stream to audio
player and transition to next song.

Bug: 11247103.
Change-Id: I2a35c5cc3fd6aa667cdd257f9e9cc8715cef5159

10 years agoAwesomePlayer: Improve performance on high-fps clips
Lajos Molnar [Wed, 23 Oct 2013 22:19:47 +0000 (15:19 -0700)]
AwesomePlayer: Improve performance on high-fps clips

- Immediately retry rendering next frame after frame skip.
- Schedule next videoEvent based on the timestamp of the
  next frame.

Change-Id: Ia106382c4c225321b682c1f7c2d126d7eab7d56d
Signed-off-by: Lajos Molnar <lajos@google.com>
Bug: 11159147

10 years agoIgnore transport stream packets with the "transport_error_indicator" bit set
Andreas Huber [Mon, 11 Nov 2013 21:35:39 +0000 (13:35 -0800)]
Ignore transport stream packets with the "transport_error_indicator" bit set

which indicates that they contain at least one bitstream error that was
unrecoverable.

Change-Id: I10665fd190194fdd2568175fe00b6063d3fc10a5
related-to-bug: 11537029

10 years agoMerge "Back to the old way of making sure that no more buffers are submitted" into...
Andreas Huber [Tue, 12 Nov 2013 18:37:46 +0000 (18:37 +0000)]
Merge "Back to the old way of making sure that no more buffers are submitted" into klp-dev

10 years agoCamera API2: Add support for partial result quirk
Eino-Ville Talvala [Thu, 7 Nov 2013 23:13:16 +0000 (15:13 -0800)]
Camera API2: Add support for partial result quirk

- Camera3Device: Include requestId in partial 3A results
- FrameProcessorBase: Add support for partial result listeners
- CameraDeviceClient: Listen and forward partial results to client

Bug: 11115603
Change-Id: If1cc6bbc32932742ac142c058688761ebf6a8024

10 years agoMerge "configure bitrate and bitrate mode at encoder initialization for VP8/9" into...
Andreas Huber [Tue, 12 Nov 2013 00:21:51 +0000 (00:21 +0000)]
Merge "configure bitrate and bitrate mode at encoder initialization for VP8/9" into klp-dev

10 years agoOnly initialize sniffers once, don't hold mutex while sniffing
Marco Nelissen [Wed, 6 Nov 2013 18:50:17 +0000 (10:50 -0800)]
Only initialize sniffers once, don't hold mutex while sniffing

b/11482896

Change-Id: Ie036554b4c9e7e8863cb07901d414ea457f1b2f1
(cherry picked from commit 377fce69297a0e5b7c3b266a7602b17146785635)

10 years agoMerge "StageFrightRecorder: do not use meta-data mode for software encoders" into...
Lajos Molnar [Mon, 11 Nov 2013 16:16:46 +0000 (16:16 +0000)]
Merge "StageFrightRecorder: do not use meta-data mode for software encoders" into klp-dev

10 years agoMerge "TimedEventQueue: improve wakelock management" into klp-dev
Eric Laurent [Mon, 11 Nov 2013 00:21:16 +0000 (00:21 +0000)]
Merge "TimedEventQueue: improve wakelock management" into klp-dev

10 years agoBack to the old way of making sure that no more buffers are submitted
Andreas Huber [Fri, 8 Nov 2013 18:57:34 +0000 (10:57 -0800)]
Back to the old way of making sure that no more buffers are submitted

to the component while in executing->idle state.

Change-Id: Ia207f0a112025ed0e2c4d62f404afbbfa694cbab
related-to-bug: 1155746311573543

10 years agoMerge "Properly handle executing->idle in GraphicBufferSource" into klp-dev
Andreas Huber [Fri, 8 Nov 2013 16:19:35 +0000 (16:19 +0000)]
Merge "Properly handle executing->idle in GraphicBufferSource" into klp-dev

10 years agoTimedEventQueue: improve wakelock management
Eric Laurent [Tue, 5 Nov 2013 00:08:15 +0000 (16:08 -0800)]
TimedEventQueue: improve wakelock management

Do not acquire a wakelock unless the event is delayed by more
than a given time. This prevents from acquiring/releasing
wakelocks too often which has adverse effects on performance.

Bug: 11509471.
Change-Id: Id06803b393b40c4db5095a6e7ec02339fa581a38

10 years agoReplace assert with error message
Andy McFadden [Thu, 7 Nov 2013 22:39:03 +0000 (14:39 -0800)]
Replace assert with error message

The failure happens when vendor code sends EMPTY_BUFFER_DONE
twice on the same buffer.  The second time through, we see a slot
that has already been emptied, and get very confused.

This should be handled with an error, not an assertion, so we now
log a stern complaint and carry on.

Bug 11557463

Change-Id: I76e53ff08924bca81afb6980df8e59a6012ff8fe

10 years agoProperly handle executing->idle in GraphicBufferSource
Andreas Huber [Thu, 7 Nov 2013 19:13:27 +0000 (11:13 -0800)]
Properly handle executing->idle in GraphicBufferSource

ACodec has initiated the transition from exectuing->idle and is waiting
for the component to return all buffers so they can be freed.
It's counter productive and with some vendors harmful to submit additional
buffers to the component from this point on.

Change-Id: I332be254a1faf94902c77b5792a373ab447e44d3
related-to-bug: 11573543

10 years agoCamera HAL3/API1: Add support for the partial result quirk.
Eino-Ville Talvala [Fri, 11 Oct 2013 16:51:09 +0000 (09:51 -0700)]
Camera HAL3/API1: Add support for the partial result quirk.

- Camera2Client:
 - Detect partial result quirk
- Camera3Device:
 - Accumulate all partial results together
 - Fire off 3A-only result once all 3A states are available
- FrameProcessorBase:
 - Filter out partials, don't send to listeners
- FrameProcessor:
 - Skip face detect on partials
 - Make sure to only handle a 3A update for a given frame once
 - Trigger AF notifications when AF mode or trigger changes, to
   properly detect all AF transitions.

Bug: 11115603
Change-Id: Iea8aa73c568701562a46071f7ea100624251d10b

10 years agoMerge "audioflinger: fix direct output underrun" into klp-dev
Eric Laurent [Wed, 6 Nov 2013 17:29:58 +0000 (17:29 +0000)]
Merge "audioflinger: fix direct output underrun" into klp-dev

10 years agoaudioflinger: fix direct output underrun
Eric Laurent [Wed, 6 Nov 2013 02:22:08 +0000 (18:22 -0800)]
audioflinger: fix direct output underrun

Underruns on tracks handled by a direct or offloaded
threads were not properly reported to the applications
causing a failure to automatically recover.

Bug: 11535001.
Change-Id: I7a8696b4d646f78b16710addfe7c108d0dd0038d

10 years agoconfigure bitrate and bitrate mode at encoder initialization for VP8/9
Andreas Huber [Tue, 5 Nov 2013 20:36:17 +0000 (12:36 -0800)]
configure bitrate and bitrate mode at encoder initialization for VP8/9

Change-Id: I0389264db4102cabb0c6fcb4ca223d85cc9e86fb
related-to-bug: 11536167

10 years agoMerge "Notify current video size if available" into klp-dev
Marco Nelissen [Mon, 4 Nov 2013 17:42:11 +0000 (17:42 +0000)]
Merge "Notify current video size if available" into klp-dev

10 years agoMerge "Restore NuPlayer error and EOS handling" into klp-dev
Lajos Molnar [Fri, 1 Nov 2013 23:17:47 +0000 (23:17 +0000)]
Merge "Restore NuPlayer error and EOS handling" into klp-dev

10 years agoNotify current video size if available
Marco Nelissen [Fri, 1 Nov 2013 17:33:18 +0000 (10:33 -0700)]
Notify current video size if available

b/11248101

Change-Id: I0fa3b5592efcf400c86692002267da6825e331ad

10 years agoMerge "AudioFlinger: fix duplicating thread standby." into klp-dev
Eric Laurent [Thu, 31 Oct 2013 22:29:50 +0000 (22:29 +0000)]
Merge "AudioFlinger: fix duplicating thread standby." into klp-dev

10 years agoAudioFlinger: fix duplicating thread standby.
Eric Laurent [Wed, 30 Oct 2013 23:57:06 +0000 (16:57 -0700)]
AudioFlinger: fix duplicating thread standby.

Commit fd47797 fixing issue 11247103 introduced a regression
where the duplicating thread does not exit standby state as
expected. This in turn prevents the tracks sending audio to
other threads to complete their activity cycle normally.

The fix conists in clearing mStandby state also in the specialized
threadLoop_write() method of DuplicatingThread subclass.

Bug: 11451415.
Change-Id: Ie8a92c819a56a2834ea25fa70a8b7b2125721775

10 years agoMerge "camera: Collect stack traces when bad things happen, print with dumpsys" into...
Igor Murashkin [Wed, 30 Oct 2013 21:09:49 +0000 (21:09 +0000)]
Merge "camera: Collect stack traces when bad things happen, print with dumpsys" into klp-dev

10 years agoRestore NuPlayer error and EOS handling
Lajos Molnar [Mon, 28 Oct 2013 21:59:21 +0000 (14:59 -0700)]
Restore NuPlayer error and EOS handling

This was erroneously removed by commit a73c954

Change-Id: I4742339139e770f0181c99d427875897fd60b68e
Signed-off-by: Lajos Molnar <lajos@google.com>
Bug: 11413439

10 years agoMerge "AwesomePlayer: ensure STARTED message works after reset" into klp-dev
Lajos Molnar [Wed, 30 Oct 2013 20:23:17 +0000 (20:23 +0000)]
Merge "AwesomePlayer: ensure STARTED message works after reset" into klp-dev

10 years agoStageFrightRecorder: do not use meta-data mode for software encoders
Lajos Molnar [Wed, 30 Oct 2013 17:02:12 +0000 (10:02 -0700)]
StageFrightRecorder: do not use meta-data mode for software encoders

Camera HAL v1 uses vendor-specific camera-source meta-data mode, but
software encoders use generic gralloc-source mode, so they are not
compatible.

Change-Id: I0d1bab8eada26dcb70c97b1eec83f06d1f331239
Signed-off-by: Lajos Molnar <lajos@google.com>
Bug: 11446505