Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

stagefright: Fix size of metadata key #5

Open
wants to merge 99 commits into
base: mm6.0
Choose a base branch
from
Open

stagefright: Fix size of metadata key #5

wants to merge 99 commits into from

Conversation

InterfaceNode
Copy link

  • Causes build failure with Clang

Orig-Change-Id: I957c9ad2f1a46c784b38e284063b5310bf9cc7ed

Steve Kondik and others added 30 commits October 15, 2015 17:24
Change-Id: I0b26e698a9e1ef57115547ab4ff56fb16bd6d015
Overload using include/camera/CameraParametersExtra.h in device
tree to add device specific camera parameters.

Change-Id: Ie79380f4e49661348df4b2028ddf48daa67fca2d
This reverts commit e17afa8.

Change-Id: I7afb6a055d3efb08fdbdff19f0bbad01934614e8
Output handle of AudioOutputDescriptor is required by derived
implementation of some AudioPolicyManager methods.
These methods need to access attributes of an output which is not
accessible through AudioOutputDescriptor base class unless output
handle is made available here.

Change-Id: I96ef9fd1c5a94874acb897245501ba2f9c9ab0c0
InstantiateDecoderAction is executed after performing reset.
By the time performReset call is over, mSource is cleared and
instantiateDecoderAction is executed on a NULL mSource - causing
crash. At this point of time, mSource is already reset and it is
not intended to be used in future, so, we can safely return.
Check for NULL to avoid crash.

CRs-Fixed: 902831
Change-Id: If438da2b8c778c6db3640c0bc2e53d3ef68d286c
to invoke the customized method correctly.

CRs-Fixed: 923592
Change-Id: I8a7da0a679bebaa70076920936081be4470da6d1
- In direct PCM usecase if setplayback rate is called then
  invalidate the common block and send empty offload structure
  below to use default path.

CRs-Fixed: 916660
Change-Id: I6df7c10b7115c77a19564e2f9fabc511d76a2410
Close AudioSink object explicitly before clearing NuPlayerRenderer
to avoid race conditions between NuPlayerRenderer and AudioSink callback
thread.

CRs-Fixed: 927545
Change-Id: Id6cef83bc8e4b6f581641b19b0bbd29eee3704bb
Increase the timeout to 30 secs from 10 in order to give the
components more time to move to idle state, otherwise freeNode
during codec release will also try to move it to idle and bad
things will happen. This is a temporary fix until software
codecs error handling is improved.

Change-Id: I89203bfbce1b81f53ed6e2a33747ec40a786507d
This reverts commit 427d20a.

Change-Id: I80295041a49295852701832d5af71adda862df8e
Add missing __FUNCTION__ arguments into log statements.

Change-Id: I0256bad626d490fb9360a73c104afaad7a012a97
The MediaCodec member associated with an NuPlayerDecoder
is cleared if configure fails. A pending seek operation in
NuPlayer can issue a ResumeDecoderAction. Add a NULL
check before accessing the MediaCodec instance to handle
this resume.

Change-Id: Idc6c15168ec922ca1bd6d867cbe59847647c6f26
CRs-Fixed: 913215
-QTI Flac decoder is used only if QTI_FLAC_DECODER flag
is defined.
-Enable QTI_FLAC_DECODER flag if respective feature
flag is enabled.

Change-Id: I192e30af3e53a57f13aa2be5dc92bfbe5f20d096
CRs-Fixed: 927012
MPEG4Writer makes a copy of encoded buffer to avoid holding on
to the read buffer. This is not needed with MediaCodecSource,
as the encoded-output buffer is already copied to a heap buffer.
This saves a copy and some power.
However, cloning the buffer is still needed for upstream sources
that cannot afford to keep the buffers with writer up until they
are released.
So, pass a hint in buffer's metadata to indicate if it is OK
to delay the release and not copy the buffer

Change-Id: Ib59ac29ebc6ce4afd6fc272688a8260438ab1517
Return error if the index passed by client is incorrect rather than
returning OK with null buffer.

Also add a null buffer check in MPEG4Writer as it shouldn't rely on
the source returning the correct error code, just as a precaution.

Change-Id: Iaefcd57a545ec3ce4ec0b8d4220bdf41377ff798
Use set buffers mode if parser supports it.

Change-Id: Ia3d12f15fa28f25e1ccb724158cc91ce26fc81ed
Use a generic function to get flags while creating
extractor, so that there is no restriction to a
particular usecase.

CRs-Fixed: 911338
Change-Id: I8520d2ea9b25ab564b7eee6610744fcaa364fe87
DataSource and HTTPSource can be accessed/modified by
GenericSource's looper and Client's thread which can
lead to race conditions when copying the sp<>.
Add a Mutex lock to synchronize such accesses and avoid
race conditions.

CRs-Fixed: 906899
Change-Id: I2fb4b4a7079e638e151f4fe67a780007a4011652
mDataSource can be deleted by client thread while GenericSource
looper is accessing dataSource in sniff functions, which can
lead to race condition. Add local sp<> to hold an additional
reference to dataSource.

Change-Id: I9e51f75f3c2bd703e381230dd93cb4d3f6621dab
CRs-Fixed: 923729
Drop frames in NuplayerDecoder if the corresponding
OMX_BUFFERFLAG_DATACORRUPT is set from OMX.

Add a util function to easily switch off this feature.

Do not declare MediaSource explicitly.

Change-Id: I97bd238d52d660e1ab61eac222cdff28334cc5cc
…nnect

If, within a binder Looper thread, a Binder object death notifier is
registered, and then a nested Binder transaction is begun, that
transaction may process a death notification callback for the
just-registered object, if it was dead at the time of registration.

This can lead to an unexpected nested call into the service, and cause
deadlock.

To avoid this, move the death notifier registration to the end of
handling the connect transaction.

Also remove one extra bit of disconnect logging.

Bug: 23525545
Change-Id: If01cbaf42704f55134118afefc9a8f7bdb014e09
pawitp and others added 28 commits November 13, 2015 03:37
Most mkv files having 'lacing' in their audio section to save space.
Android did not handle this properly, sending all frames in the block
with the same time code, which causes stuttery playback.

Change-Id: I4dc76e7c2a53126c7fbdd3628fe7d339d2e3364e
FLAC files which has the last metadata block flag set in
STREAMINFO were not playing. Sniff of FLAC is modified to
accomodate this set flag.

Change-Id: I76f216cc2cde6e10958324afbc704fc3e5a0e2bf
Author: Gurudatta Bhakte <[email protected]>
Signed-off-by: Gurudatta Bhakte <[email protected]>
Signed-off-by: Shuo Gao <[email protected]>
Signed-off-by: Bruce Beare <[email protected]>
Signed-off-by: Jack Ren <[email protected]>
Author-tracking-BZ: 32421
To support aac audio with APE tag we need parse
this tag. Otherwise AACExtractor stops reading of
audio file.

DR: OMAPS00267689

Change-Id: Ic697b90dbc9f2b93aeb227411359c36c113cb71e
Signed-off-by: Daniel Levin <[email protected]>
Modification done in StagefrightMetadataRetriver
to handle NULL return for meta data if codec is
unsupported by extractor.

Change-Id: I905cec5ee91b098d99e1935437b562d2d9206381
 * Needed by framework to determine audio apth

Change-Id: I8d928852fb4a24e3d575d70fbf366bae1a178b31
 * To facilitate moving the stagefright-plugins glue out of the
   framework, support is added to OMXMaster to load multiple
   external plugins besides internal/vendor versions.
 * This is currently limited to one plugin, defined by the
   "mm.sf.omx-plugin" system property. The code will allow any
   number of libraries to be loaded, though.
 * Should also be useful for nonstandard vendor implementations too.

Change-Id: I27d7e16ad56baa17754d8ea47a8c608a0d73d6f1
 * Forward-port changes from CM11
 * Remove truncation support as AudioFlinger handles
   rebuffering in case it can't go to the hardware.

Change-Id: Iad30d04ee051050e444c3d665fa8bb7a1cfef348
Change-Id: I8e13a68cc10fafc43dd8f7d350644c7638d5d5e3
Remove global variables related to sniff, and added Sniffer class
to implement the sniff functionality with non-static members.

Change-Id: I6fbd0ba5b686e09fda11d78cdd687a69c81a6bdf
CRs-Fixed: 567753
 * Pass the HVCC atom to Stagefright.

Change-Id: I7fdca25e20b9051925936a34e594808b18a3a3bd
 * Original work by Michael Chen - https://github.com/omxcodec
 * Kitkat port by Chih-Wei Huang / Android X86 project
 * Additional fixes by Arcee and Cyanogen
 * High resolution support by Cyanogen
 * Lollipop port and refactoring by Cyanogen
 * Marshmallow port and refactoring by Cyanogen

------

libstagefright: add null checking to addPlugin

libstagefright: fix error handling of dlsym()

According 'man dlsym', a NULL return from dlsym() doesn't indicate an error.
The correct way to test for an error is to call dlerror() to clear any old
error conditions, then call dlsym(), and then call dlerror() again to check
whether its return value is not NULL.

libstagefright: add more media mimetypes

This is the first step to add the ffmpeg plugins.

libstagefright: add ExtractorPlugin

The patch allows to load an ExtractorPlugin to extend the functions of
DataSource::sniff and MediaExtractor. A plugin has to implement a C
function getExtractorPlugin to fill the MediaExtractor::Plugin struct.

The filename of the plugin could be specified by the
media.stagefright.extractor-plugin property.

Change-Id: I995a37a4f1ab4bba6ca3c24c7001a27a1e3ccb90

FLACExtractor: Add more sample rates support

In FLACExtractor.cpp, it has function to check file's sample rate.
If the input sample rate is not in its list, it will return "unsupported
sample rate" issue. Modify code to make other sample rates (100,1k,42k,46k)
pass the check

Issue: AXIA-1441
Change-Id: I48f91119275560ec6d00feb0dedc70d10aa55262
Signed-off-by: Xiaobing Feng <[email protected]>
Signed-off-by: Matt Gumbel <[email protected]>

libstagefright: add ffmpeg components

libstagefright: add more decoders

Add support for wma, wmv, ra, ape, dts decoders.

Change-Id: Iaf48a806aa0cef7d9bcb848383fc3d778c8bd248

libstagefright: allow to use the extended extractor in priority

If the meta contains the string "extended-extractor-use",
use the extended extractor first.

add support for rv20, rv30

add ffmpeg heuristic decoder

Change-Id: I5eed11b563ca7f15d44bacfb795d6f3da08ab883

add HEVC(H.265) decoder and cleanup

Squashed the following commits of branch cm_maguro-10.1 from
https://github.com/omxcodec/android_frameworks_av.git
by Michael Chen <[email protected]>

defb904 remove MEDIA_MIMETYPE_AUDIO_MP2
8036958 add fetchUriFromFd func to get file name
91bc7d5 fix videoCompressionFormatString and audioCodingTypeString funcs
f03069f reset FRAME_DROP_FREQ to 0
718b99a add HEVC(H.265) decoder
84f8bf6 cleanup
f026c93 cleanup
440614a add debug info

Change-Id: Ie75db0778f633357e2280aef6d47a0fa3beb823e

AwesomePlayer: use AwesomeLocalRenderer for OMX.ffmpeg.* components

stagefright: Remove duplicate types from QC media defs

Change-Id: I50ecafe79a2985d0868a1ac82464d6ca448aa2c5
Signed-off-by: Josue Rivera <[email protected]>

Conflicts:
	media/libstagefright/ExtendedMediaDefs.cpp
	media/libstagefright/OMXCodec.cpp

libstagefright: Re-introduce a QCOM_HARDWARE ifdef after the FFMPEG commit

Fixes a build error on non QCOM hardware.

Change-Id: I4a4268b351d0d8bf748dd03ccea0fbab20ed4314

DataSource: Split off ffmpeg sniffer to a second pass, and only if necessary

ffmpeg's sniffer is intended as a grab-all-that-doesn't-work-elsewhere
extractor. Unfortunately, this causes two issues:

- As written, it requires ffmpeg to whitelist any extractors supported
by stagefright, or else it will blindly override them. This has codebase
sync issues, as shown by the VP9 and WAV accidental overrides
- It imposes an in-depth analysis of _all_ media, even that which we
want to be processed quickly by shipping stagefright plugins (hardware
or not). This is mostly noticeable in network streams and thumbnail
generation.

This patch moves FFmpegExtractor to an independent sniffer queue, and
it only invokes it when the regular MediaExtractor hits 1 of 3 conditions:

1 - The confidence in the identified container type is low
2 - No container is identified at all
3 - A video container was found by other extractors, but only 1 stream
(audio or video) was identified.

Change-Id: Ib96ff4f6bc06223fe0e819a57560d3c872a79ddd

stagefright: OMX.ffmpeg.* are software decoders, ensure they're treated as such

Wherever the component name for OMX.google soft decoders is used to identify
a software-based component, do the same for ffmpeg. Things like memory management
and window buffers care about this.

Change-Id: Ib83561936c7383e8726edb073cea9d78f7d1312f

libstagefright: Don't invoke FFMPEG for MP3

Change-Id: Ia30d25d1a994328827f14a286661cd2e1eaa1181

stagefright: Fix audio codec fallthru

 * We shouldn't return an error from setAudioFormat unless it's
   really an error since fallthru is necessary.
 * We don't even need to do this, since the component name is
   checked before calling into mm-parser or FFMPEG.
 * Fixes Vorbis decoding after FFMPEG patch.

Change-Id: I4871c62044c6693e5698119dee3a10c20c26e2c7

stagefright: Fix codec lookup bugs on NuPlayer

 * Fix use of WMA/WMV software codecs
 * Fix mpeg2 software codec name
 * Don't override the component name in ACodec. This actually breaks
   stuff because the format isn't available in the kInit message.

Change-Id: I93c292e039de5f24c2ccbd6ae2242b06d28fe518

stagefright: Cleanup and improve format parsing

 * Move FFMPEG-specific exceptions to FFMPEGSoftCodec
 * Add handling for AAC MAIN profile
 * Use the new OMX_AUDIO_CodingAndroidAC3 to handle AC3

Change-Id: Ibb806cd2b9dd23dc1e1b2c862fcde40605023a49

stagefright: Keep track of the bit width in the RAW codec

 * We need this to push 24-bit PCM around Stagefright and OMX

Change-Id: Ic94ec972162a01545d5dd0ad0bf3eb6c6731f42e

stagefright: Adjust confidence threshold for extended sniffers

 * Some sniffers return 0.2 for cases where they only find an audio
   track in some containers.
 * Change the comparison to also examine files right on this threshold.
 * This allows us to score ONE FUCKING HUNDRED PERCENT on the Antutu
   Video Test \o/

Change-Id: I78b6ab8a634771e0e290f669801f5b08d6a32a51

stagefright: Fix FFMPEG catchall decoders

 * Get this metadata properly flowing
 * Allows us to play tracks such as Apple Lossless :)

Change-Id: I2990b30eef5b672da339d24444424c61a43b85c2

stagefright: Fix metadata/message conversion issues

 * Remove duplication of code between ExtendedCodec and FFMPEGSoftCodec,
   just call into ExtendedCodec and properly ifdef QCOM-only parts.
 * Fix CSD not being converted when AV_ENHANCEMENTS wasn't set- this
   was breaking the software video codecs on Hammerhead.

Change-Id: I9cd4316ce19b15baabf12b78b992498ce48e2697

Fix compile error after I9cd4316ce19b15baabf12b78b992498ce48e2697

frameworks/av/media/libstagefright/ExtendedCodec.cpp:1187:1: error:
expected '}' at end of input

Change-Id: I7d75e69160f794b177f4235f4a6bb5a188dc0d08

stagefright: Fix AC3 playback

 * Skip setupAC3Codec in ACodec for non-Google components.

Change-Id: I5090485ba020f7ad1c0962fc977e38675b4c8314

stagefright: Guard against crash with mismatched codecs

 * Return unsupported error if WMV file can't be scanned.

Change-Id: Ia4a1ac7a299990f8b9c05a93736cb2fa9d0ee965

stagefright: Correct ifdeffage of some QC codecs

Change-Id: Ie8cc7287967b84e09941283559ca542efd928d91

stagefright: Create native window for FFMPEG software codecs

Change-Id: I178f334f1fa1ea9edc6898fb61e72902c2cb2651

stagefright: Don't ever try to use extended sniffers on DRM

 * This can cause long retry intervals during key exchange. Don't do it!

Change-Id: Id9a87dcbe43cd0cc9919fe07f0a963e087baccad

stagefright: Be more tolerant of missing metadata for FFMPEG codecs

 * If these codecs are instantiated programatically and required
   metadata isn't sent, just set some defaults instead of crashing on
   an assert.
 * This fixes testAllNonTunneledVideoCodecsSupportFlexibleYUV in MR1 CTS

Change-Id: I69bf6105a1be529298de574bd5d3b6813e7a4e8f

stagefright: Fix issues with software decoders

 * Fix MKV thumbnails
 * Fix VC1 thumbnails
 * Fix FFMPEG thumbnails
 * Fix trial decoder
 * Fix edge cases with WMV3/VC1 playback
 * Fix a state issue which caused some codecs to get wrong configuration

Change-Id: I09599166aa24bcff53f91e43de096c4fad8ca7ad

stagefright: ffmpeg: Slightly raise the threshold for the ffmpeg scanner

0.2 is the success value for the OMX.google soft audio sniffers, which
was making ffmpeg own the unpacking of those streams needlessly.

Fixes CYNGNOS-282

Change-Id: I75f50ed838cb8af9acdf99aa284b80a070555284

stagefright: Add support for loading a custom OMXPlugin

 * To facilitate moving the stagefright-plugins glue out of the
   framework, support is added to OMXMaster to load multiple
   external plugins besides internal/vendor versions.
 * This is currently limited to one plugin, defined by the
   "mm.sf.omx-plugin" system property. The code will allow any
   number of libraries to be loaded, though.
 * Should also be useful for nonstandard vendor implementations too.

Change-Id: I27d7e16ad56baa17754d8ea47a8c608a0d73d6f1

stagefright: Move a bunch of FFMPEG stuff out of here

 * Get rid of some of the glue code for stagefright-plugins
   and use the new extension header and plugin.
 * Still a bunch of TODOs on this, but it works.

Change-Id: If07d3213952b624d48035e5f58ad883b2a4049b0

stagefright: Remove deprecated FFMPEG config

Change-Id: I1fcdb4eeba72e2420493b89ddd6fc718d170ced7

stagefright: Support for 24-bit audio in StageFright

 * Plumb bit depth thru ACodec and OMX
 * Add support for 24-bit PCM offload in NuPlayer on QC devices
 * Use new AudioFlinger features for mixing multi formats without offload
 * Clean up a bunch of code

Change-Id: I018d3a995b63450a38c6c43eaa37c86be30fd893

nuplayer: Fix PCM offload turning on all the time

 * Remove the extra condition, since this will be set even if
   PCM offload was denied.

Change-Id: I8f33ef68562d8e057e7a86c5ae6187d0049bf3aa

stagefright: Cleanup of PCM offload checks

 * Put the checks in a single place.

Change-Id: I2d0d5b542593896e78bf989296de1a1d1e3a4963

stagefright: Add bit-depth plumbing for new formats

Change-Id: I13cfd75e4b4819543b64babf20cc9af57ea2978f

nuplayer: Fix bitrate propagation

 * We use "bitrate" rather than "bit-rate".

Change-Id: I4699194e3e3f7ef55b4eb554f5de7a6b5f6b80ce

libstagefright: Implement fallback mechanism to SW decoder

Implement fallback mechanism to software decoder
when hardware decoder configuration fails in ACodec

Change-Id: Idf4c445942b03e28b264c91a20e69d52224727bd
size_t should use the portable %zu

Change-Id: I974d4be7d4921a8c3fc684d24721a231c5b91170
Change-Id: Ibc63601dc3455837334d2713063b4af04d46eb73
Signed-off-by: Josue Rivera <[email protected]>
 * Fix logic for the FFMPEG video case- we should have only been
   checking for errors when actually calling into our extension.

Change-Id: Ic9fa6ad3913f259c09f0dd37b1720d996ecc386c
No routing operation should be allowed between setMode() and setPhoneState()
when starting a call as the audio HAL relies on a precise sequence of mode change
and routing change to select the initial audio device for the call.

Bug: 24083591.

Change-Id: I2d5ef62c11cf7aedc2ec7ca5e5fadd7ac875afbc
Bug: 23999740
Change-Id: I3165404add455528b22951ba47b682a075b50087
(cherry picked from commit 014e91e)
ICrypto.cpp: ASLR bypass using DECRYPT IPC

bug: 24074485
Change-Id: I61cd77f0894140547f666a80526ebfe1ec3d2db6
Add check for incoming mNumItems. Also add check readCString return
value.

Fix style & add log.

Bug: 24123723

Change-Id: If41a5312c27d868f481893eef56019b6807c39b7
…Data.

Bug: 24346430
Change-Id: I897a724e968841d9160f819d06c0ce22f6d743c4
Bug: 24310423
Change-Id: Iebcfc58b447f925ec2134898060af2ef227266a3
Bug: 24630158
Change-Id: If042aebebb58c218eb7bbf01dcddbcbd05dca1d6
…ngSize.

Bug: 24623447
Change-Id: Ifbc74454d6e28ad7136efe35ab638a07e46398b1
Bug: 24441553
Bug: 24445122
Change-Id: Ib7f025769adbafd5a2cb64fae5562a0a565945c2
Bug: 24445127
Change-Id: I1c6cb9e2518b852d48d5d0d625b54409bd4e13ec
Bug: 24211743
Bug: 24267152
Change-Id: I58c55e56b85067b71e4e300f947b4dfc159637ba
This reverts commit 74ce88f.

Change-Id: I39114c8cdd3021951ba93716aaa0c1c03e68538d
This reverts commit 9ddf1c7.

Change-Id: I860ecc288a1798605dff46f39107f4450ca5cd56
 * Causes build failure with Clang

Orig-Change-Id: I957c9ad2f1a46c784b38e284063b5310bf9cc7ed
@owlseye
Copy link

owlseye commented Dec 24, 2015

This commit is already on Slim's gerrit, they just haven't merged it yet.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.