| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
| |
Revert 3cdaed88daeeebfe05e7913837f41c2d92f411cc and
883ff4f4c41ae9bf84d1912ab054fe38f7505dd0, and fix the overflows that
should have been clamped instead of allowed to overflow.
Bug: 25843966
Bug: 23752600
Change-Id: I9af1726d058eb8eeaa80fa8df74fe0a3759486c1
|
|
|
|
|
|
|
|
|
|
|
|
| |
clock_gettime() can change errno if something goes wrong (most
commonly setting EBADF). This failure should not cause a failure
in ClientProxy::obtainBuffer() if the futex returned successfully
or with a known status. Preserve errno before calling clock_gettime
to prevent propagation of an invalid, unexpected error.
Propagated from Ib69201031a81395ece47dd8ad7c4dcddd2b00153
Change-Id: I48320fc287b6a0ef2a1b9e71f9d0e979bd6343a5
|
|
|
|
|
|
|
|
|
|
| |
b/25372978 tracks an assertion in Renderer when the
size of the buffer to be written is not a multiple of audio sink
framesize. Until resolved, avoid assertion and notify an error
back to the player
CRs-Fixed: 941002
Change-Id: Id54b357dcbf7afe90e2290665392275d6dd5eaef
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
While direct output should ideally be abstracted from the AudioTrack,
the use of an offload path can leave data stuck in the shared buffer
(especially if the clip is short such that the buffer is never
entirely filled). To ensure that all data is played out on track
stop(), AudioTrack must be aware of the direct output or offload
session. Set the DIRECT track flag for track offload use cases to
avoid losing data in the shared buffer.
CRs-Fixed: 944878
Change-Id: I13f840b5d67be56e03ec65d3bc7d44f1090b48c5
|
|
|
|
|
|
|
|
| |
Handle startOutput on AudioPolicyService output command thread
to serialize with concurrent releaseOutput/stopOutput calls.
CRs-Fixed: 944129
Change-Id: Ie333c736750c7dfb31d3036d79dfff13cd0486fc
|
|
|
|
|
|
|
|
| |
not request or send out data."
* Missing from backport
Change-Id: I562d28a4770aec2f9c547c482e79cca49be9dbb9
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The aac audio profile retrieved from the AACExtractor
is ranged from 0-3.
However the corresponding OMX header definition
is from 1-4:
typedef enum OMX_AUDIO_AACPROFILETYPE{
...
OMX_AUDIO_AACObjectMain = 1,
OMX_AUDIO_AACObjectLC,
OMX_AUDIO_AACObjectSSR,
OMX_AUDIO_AACObjectLTP,
...
Change-Id: I1c8932abe19bff918acd5e4d8c2e39eaaac4f6c3
|
|
|
|
|
|
| |
* Remove bogus code and replace with proper reassembly.
Change-Id: I16a84eb94e5535fc2c4044875144f8007852a4d2
|
|
|
|
|
|
|
| |
* Pass the bits-per-sample value when setting up the raw PCM
output in case FFMPEG is decoding as it will produce floats.
Change-Id: If5a8cc43a1c41e522324e77871823c9084f92169
|
|
|
|
|
|
|
|
| |
* Be consistent about AAC profile selection in both Stagefright an
our custom plugin.
* Also fix duplication in the override code.
Change-Id: I9d2724ea8861bc9d7db6a100a2f633f81d243c6c
|
|
|
|
|
|
|
|
|
|
| |
- Originally, audio record latency is calculated by frame
buffers allocated for this track, while the actual
latency is determined by audio hal.
- Compute the track latency by frame count returned
from audio hal when in TRANSFER_CALLBACK mode
Change-Id: I26e5e47e8cc3720895b962f7aab8a595a54b7c83
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If the value of the multiplier used in calculating
mNormalFrameCount is odd, it is rounded off to a higher even value.
This results in an increase of mNormalFrameCount and thereby
the latency which is not expected.
Do not prefer an even multiplier and let the value remain as is
even if it is odd.
CRs-Fixed: 931454
Change-Id: Ia60d87d01caef6f45998bffeafc3d6a24f7c7fb4
|
|
|
|
|
|
|
|
|
|
| |
request or send out data.
Port of AOSP commit: 3bc667014875aba35102941b3997d242c303aa0d
Bug: 25372978
CRs-Fixed: 941002
Change-Id: Id66ab9b9961d5a3b9fb783ae73c27ed1c8054db8
|
|
|
|
|
|
|
| |
This reverts commit 00208bc4c6d725ea9ce0795a897d42b5a32360c3.
CRs-Fixed: 941002
Change-Id: I22c9954fc3ed3207f218dde0c02f7dddc8751df9
|
|
|
|
|
|
|
| |
This reverts commit 9944bae1fda19634b04cd4e2b755c3d368405a8b.
CRs-Fixed: 941002
Change-Id: Ief7c6a1a8d9fd290da49867b1fef9f6e9e2a51a1
|
|
|
|
|
|
|
| |
- Check Direct PCM usecase with Offload
- do not process s/w effect when direct PCM is enabled
Change-Id: I2eb843b17558e60cf36daff0c5fbdf50dccf99ca
|
|
|
|
|
|
|
|
|
| |
-Update channel mask from channel count if parser reports channel mask to be 0
-Update source format for each buffer by extending call to setPcmFormat when
aggregation is not done
Change-Id: I1f4ce07e3e784d85e63be03a69ac1395bfa913e2
CRs-Fixed: 948222
|
|
|
|
|
|
|
| |
Do not drop EOS frame even if DATACORRUPT flag is associated
with it.
Change-Id: Ib231dd8eb89aa14f824760562fcc371246d7ba9d
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously SkipCutBuffer would check its input parameters to ensure
they were sane, however since bogus values might be the result of
overflows, and overflow protection was recently turned on for
libstagefright, the compiler's overflow checks were performed before
SkipCutBuffer's, resulting in abort rather than just ignoring the
bogus values.
Moving the multiplication by framesize into SkipCutBuffer fixes this.
Change-Id: I1ad6744bb045a5212701bbf6ee44eecb5f318210
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
IMediaMetadataRetriever::setDataSource(fd, offset, length) takes the ownership
of |fd| on the direct invocation, and doesn't take the ownership on invocation
from Binder. This is inconsintent to other similar methods like
IMediaPlayer::setDataSource, and causes potential double close of |fd|.
This CL changes the caller and implementations to leave the ownership to make
them consistent.
Also, fixes a double close in IMediaPlayerService::setDataSource in an error
case.
Change-Id: Id551a1e725c4392b0fe6b7293871212eb101c0a5
|
|
|
|
|
|
| |
* Found using "perf sched latency"
Change-Id: I358a6f9baf3d52b9ed7f010c06893dbf839e1973
|
|
|
|
| |
Change-Id: I63b78d3cabf981111cf9eb3a2816805db7d105e1
|
|
|
|
| |
Change-Id: Ie9a3a8c335611d11c84bf24cb50c73c1644ad381
|
|
|
|
|
|
|
|
|
| |
The AACExtractor does not pass the aacprofile via
kKeyAACAOT and google aac decoder does not support LTP profile.
Solve by setting the kKeyAACAOT profile and use ffmpeg
when it is aac LTP profile.
Change-Id: I79762bd23e3bcc34f2ea56e35686162f1630c06b
|
|
|
|
| |
Change-Id: If91536d2be0165c90effccdfa2b92722223eb905
|
|
|
|
| |
Change-Id: I1f6a2797156eba00e8f4cc1a5728b8e274ce965f
|
|
|
|
|
|
|
| |
* Annotate source buffers with the audio format
* Add support for 32-bit signed PCM offload (zero copy)
Change-Id: Id758830784740c0a038452d383c8ec8e3e4593bb
|
|
|
|
|
|
| |
* Remove unnecessary check condition.
Change-Id: I3267a0c13165d74a2ea90333b42f000b51ace98b
|
|
|
|
|
|
|
|
| |
* This code should have been left inside the conditional
* Also fix a misplaced flag which remained set even if opening
in offload mode failed
Change-Id: Id72c17051db601e37b2289e6d904ce8f75ba6878
|
|
|
|
|
|
|
| |
* Fix PCM offload when passthrough isn't used (OMX decoder)
* Fix resume of PCM offload after pause timeout
Change-Id: I742eafd6ae8656fb214ba6b81cc63af57590c28c
|
|
|
|
|
|
|
|
|
|
| |
Audio EOS won't be notified by renderer if AudioSink is not ready
and first buffer itself has EOS. Playback complete won't happen
due to missing audio EOS. Hence, audio EOS needs to be handled
and notified.
Change-Id: I779c7034d1964485c2b064c0179d3cd341af5a5f
CRs-Fixed: 801121
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
While offload playback is going on, if user seeks
to new position and after playback for some time,
pauses till offload tear-down happens then playback
resumes with old seek position
The book-keeping of seektime for start of playback
mStartupSeekTimeUs is also done in running state,
it should be done only if current state is paused.
Change-Id: I4173a2ee4244bcc6794822dde24c467f0189b84f
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
While offload playback is going on, if user pause
and seeks to new position before offload tear-down,
on resume playback starts from old time-stamp
Once tear-down happens NuPlayer loses updated time-stamp
so while resuming it resumes playback with stale time-stamp.
Make sure the updated time-stamp is maintained in
NuPlayerDriver wich is used while starting the playback
after resume.
Change-Id: I3451051f569264b21a43be81b01798fabed0182e
|
|
|
|
|
|
|
|
|
|
|
| |
* Fix compilation with debug enabled
* Allow FLAC offload to be enabled independent of QCOM_HARDWARE,
tested with the Nexus 5X and is working!
* Disable the FLACExtractor if offload is enabled since it can
only output decoded PCM. This will force FFMPEG to be used,
which does everything we need for FLAC offload
Change-Id: I7d71c153a6a6ea7df8e32bc73f5cbe9f51cdcf64
|
|
|
|
| |
Change-Id: Ie9ff0d275fc5f853c18fe4d5e590443d0c316e99
|
|
|
|
|
|
| |
* Fill in stubs for CAF commit bd019775a921ae9165e924e4d37bc838a7ef5781
Change-Id: Ia97d965d121aa3c3c2fc0ab8b164244416852ca5
|
|
|
|
|
|
| |
* Forward-port CAF L-MR1 code to fill in stubs.
Change-Id: I6c07e803ad4fe3ef5286f61667b5ca11380db984
|
|
|
|
|
|
|
| |
* New Qualcomm DSPs support FLAC decoding, but the offload code is
stubbed out in M. Unstub it from what used to be open source.
Change-Id: I03c129c42ebc6909a3392e42a7f96791c8fabd28
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Forward-port the open-source code from L which was moved to closed-source
in M. This is being done out of necessity- the architecture chosen by
Qualcomm is not optimal and doesn't work well with a singular
codebase which attempts to service a large number of devices.
* This patch brings in the code to support PCM offload (AudioFlinger
bypass). This allows for playback of high resolution clips without
decimation stages, and enables reduced power consumption for audio
pipelines which take advantage of the Hexagon DSP (effects).
Change-Id: I0ef15fc3df538ab723f3c12ce0ed71d0e607c99e
|
|
|
|
| |
Change-Id: I25708df616fe53d709b80c65ddecbdddef303124
|
|
|
|
|
|
| |
* Forward port the cm-12.1 code
Change-Id: I77373a236108507b8fa76cc8d3016de36aade301
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We override some h/w decoders in video configure
since we know some h/w decoder does not support
certain types of video. e.g. WMV7/8.
But we did not do that when application retrieving
video frame for thumbnail causing video frame retrieved
is corrupted.
Fix it by calling FFMPEGSoftCodec::overrideComponentName
when we retrieve a single video frame for thumbnail purpose.
Change-Id: I334698c331dfd3d49bb5d8b8e9c1fe381b304179
|
|
|
|
|
|
|
|
|
|
| |
Qcom hardware vc1 decoder cannot decode wmv1 (version7) correctly.
Currently it only skip wmv2 (version8) and force to use ffmpeg sw
decoder.
Change to use default decoder only if wmv version is equals to 9 (vc1)
Change-Id: Iadb0ecca252ee8a1dfb635ee44d1a88daa9c7a54
|
|
|
|
|
|
|
|
| |
Handled decoder configure call for encoder
component and vice-versa in fallback logic
CRs-Fixed: 891538
Change-Id: Ibb0d2da829a0e0f907ad8265836bac0466de1b4d
|
|
|
|
|
|
|
|
|
| |
Direct output is not selected for voip usecases as
AUDIO_OUTPUT_FLAG_VOIP_RX is not added to
sOutputFlagNameToEnumTable.
Add this flag to output flags list.
Change-Id: Ifccb78a7b8579da0a65eb3ea7347756c664246a8
|
|
|
|
|
|
|
|
|
| |
Legacy ALSA really hates floating point, and it's breaking
mic input when doing things like audio recording.
Use the old conversion routine for legacy ALSA.
Change-Id: I616f4cd42fa0e4d7595dd61ed2d36c4fa7052c53
|
|
|
|
|
|
|
| |
Port from L, add "OMX.ffmpeg." checking in additional
to "OMX.google." for software codec
Change-Id: I3ef70a965573d7c2818236a70d4f99b6b7873468
|
|\
| |
| |
| |
| |
| |
| |
| | |
https://android.googlesource.com/platform/frameworks/av into cm-13.0
Android 6.0.1 release 3
Change-Id: I2f2a1fe1b58c828e8341556996211562d6e195ab
|
| |
| |
| |
| |
| |
| |
| | |
IResourceManagerClient.
Bug: 25166048
Change-Id: I35f9917079c4b783a7cf4cef94b3c7112760c0b8
|
| |
| |
| |
| |
| |
| |
| | |
stopped.
Bug: 25088488
Change-Id: Id33d5d75f1173db52d00f4ff71d4c2c4f27f72f5
|