summaryrefslogtreecommitdiffstats
path: root/media/libstagefright/OMXCodec.cpp
Commit message (Collapse)AuthorAgeFilesLines
* libstagefright: [Reworked] Fix incorrectness nPortIndex value for QueryCodecDheeraj CVR2013-07-031-0/+4
| | | | | | | | | | | | | | | | | | http://review.cyanogenmod.org/#/c/32358/ was intended to fix issues with OMX Components failing on ME722 (OMAP3). This patch was working fine on OMAP3 devices and was required to fix issues DSP MMU FAULTS. It has been reverted with patch http://review.cyanogenmod.org/44486 which again broke OMX on OMAP3. Implement a Workaround for OMAP using OMAP_ENHANCEMENT Log for this issue observed on P970 (OMAP3) during Gallery Thumbnail Generation: http://pastebin.com/qRTpm7RN DmmMap():1600 DSPProcessor_ReserveMemory() failed - error 0xfffffffb Change-Id: Ifd0c784e354c6c00401686cc0f2188842df9496c
* libstagefright: fix indefinate loop in QueryCodecDheeraj CVR2013-06-241-1/+2
| | | | | | | | | | | | | | portFormat.nIndex is being incremented which is not trustworthy since the nIndex value could be overriden by the OMX Component, which causes an indefinate loop which inturn causes a memory leak and crashes the system. OMX Component on encore and p970 exhibits this behaviour (OMX.TI.720P.Decoder). This patch prevents stagefright freezes when QueryCodec is called during Gallery Thumbnail generation for videos and Adobe Flash playback. Change-Id: I825c99ddecacbb927e22ac7d1a53facb26d95ff2
* Revert "libstagefright: Fix incorrectness nPortIndex value for QueryCodec"Ricardo Cerqueira2013-06-201-1/+1
| | | | | | | | This reverts commit 9a814ad626233ff02dd2d393929f32225bc94b68. This is wrong. kPortIndexInput is defined as 0, the original value was correct. Additionally, it breaks android.media.cts.MediaCodecListTest Change-Id: Ib273cde69a4c622daf239bab5d12c5e7d568af2f
* Squashed commit of A/V changes from CodeAuroraKrishnankutty Kolathappilly2013-06-181-14/+94
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Brings us current with AU_LINUX_ANDROID_JB_2.5.04.02.02.040.367 Camera: Fix deadlock due to mLock in pcb and takepicture In non-zsl case of takepicture, we do streamoff for preview stream which is waiting on preview callback thread to exit. By that time the lock has already been acquired by takePicture. So preivew callback will not exit until it acquires lock and takePicture cannot continue until PCB call back is returned. Fix: Avoid the mLock at services when both Preview cb & Compressed cb are enabled. Change-Id: I6c264928bf1540c7b51f1add65f9c3e968506e15 CRs-fixed: 479419 audioflinger: Fix the LPA-AudioEffects crash issue - Issue:crash is observed during LPA playback on enabling effects followed by plug-out->plug-in of wired headset - Rootcause: while deleteing the effectchain in deleteEffect EffctChain is being unlocked after clearing the chain which leads to accessing the lock which might already deleted. - Fix: first unlock the effectChain and then call clear CRs-Fixed: 491774 Change-Id: I518ff086c5ad71486cd29142563145137ebc15b6 libstagefright: Fix for crash in sound recorder during device switch -Crash seen in sound recorder during frequent insertion and removal of wired headset -During device switch some time Codec's input buffers are too small to accomodate buffer read from source. Omx codec doesn't read the fix size buffer from source, during device switch scenario sometime buffer read from source exceeds input buffer size so it goes in error state which leads to crash. -Increasing the input buffer size fix this issue Change-Id: Id15378670880d0c3c0bd4408841b28be963549a0 CRs-Fixed: 488449 libstagefright: Fix for FPS drop issue during A-V playback. Issues: -The AAC decoder was not updating the timestamp when EOS is reached. -Logic to smoothen the real time update in AudioPlayer uses system time. This introduces corrupt timestamp during EOS. Fix: -Update the timestamp in AAC decoder when EOS is reached. -Extrapolate realtime using system time in AudioPlayer when EOS is reached. Cap the value to realtime if extrapolated time becomes greater than realtime. CRs-Fixed: 384183 Change-Id: Ice54501436431d2527fcd3d710d65d9732fcffdd libstagefright: Reset buffer size value with SurfaceTexture - OMXCodec explicitly sets the decoder output buffer size using the native window perform API. (to accomodate extra-data) - This size is reset only when the SurfaceTexture is destroyed. - Unless reset, this size will be assumed for all output buffers if the SurfaceTexture is re-used. CRs-Fixed: 337660, 432309 Change-Id: I28aed12ad02adeac61caffbb00e3082640a5f6d4 audio: Add support for tunnel mode recording - Add support for tunnel mode recording. Change-Id: I95cdfff729affd784141487521c9f2f714221d11 audio: Add support for non-pcm VOIP vocoders - Add support for non-pcm VOIP vocoders - non-pcm vocoders use AUDIO_SOURCE_VOICE_COMMUNICATION as inputSource. Add check to verify inputSource and then configure framecount accordingly Change-Id: Ia38da4f6ba0ee40c794d3c97325327cdb7dcb32a CRs-Fixed: 467850 frameworks/av: Add metadata mode changes to LPAPlayer -Seek to EOS was causing playback to hang for 3 seconds before switching to the next clip. -This is because the lpa driver works on period size. Partial buffers are not handled. -Add support for metadata mode changes to LPAPlayer to support partial frames. CRs-Fixed: 458904 Change-Id: I8673756b54ae7bca18855d326c85ae1064652514 libstagefright: Add support for WMA in ACodec - WMA support is not there in ACodec - In the case of wma format, since not getting the complete information of wma version so instead of allocating the component in onAllocateComponent function it will create in onConfigureCompoenent function. bitspersample is find as "bsps" from AMessage while configuring the WMA10PRO and WMALOSSLESS format CRs-Fixed: 453951 Change-Id: I98baa701dbf8a5c012f4be5e83831c0be2111dcc libstagefright: Flush the pending buffers when EOS is received For the use case where the first frame in the buffer is EOS, decode the aac config frame buffer to update the sample rate and channel mode and flush out the buffer. Change-Id: I0354802cdbf61ac1ba0fecbbdf616705806b0f4a CRs-Fixed: 459334 audio: Fix The Linux Foundation copyright - Fix copyright format based on The Linux Foundation copyright template Change-Id: I100a5c86302d1a1a3d79543d95e242734daae746 media, audioflinger: check for divide by zero possibilities and err When output stream is not available to audioflinger due to any reason , sampleRate and frameCount have zero values when trying to create new Audiotrack. This might result in divide by 0 situation. Change-Id: Ic13cb51facb8497e68ab596abb027b44f496b907 CRs-Fixed: 478480 framewroks/av:Fix ANR at the end of video recording - While doing video recording, when the recording ends ANR observed while doing stress test for many hours - When the recording is stopped, audio HAL receives error from driver and audio HAL propagates this error to AudioFlinger. But AudioFlinger is not sending error status to audio source to stop recording. Because of this audiorecord thread keeps on waiting for buffers which is resulting in ANR. - To avoid indefinite wait, a timeout of 1 sec is set for buffer in audioSource and after timeout, -ETIMEDOUT is returned to recorder thread. CRs-Fixed: 479968 Change-Id: I91aba6922086e711992d9d991dea9c35d33eaee9 audioflinger: Integrate SRS TruMedia Change-Id: If61ae91556120ddd5f5ebcc6dbbfe6583c7df67d audioflinger: Fix apply SRS effects if tones diabled in tunnel mode For the use case of SRS post processing in Tunnel mode, the API's of SRS are called only from write. With the huge buffering for tunnel mode, once EOS is received there would not be further write. With system tone enabled, the SRS API's are called during the check for Parameters change through normal mixer thread. With system tones disabled, SRS will not be applied after EOS as no write and mixer thread would not be active. Fix the issue by adding the Effects Thread for SRS in Tunnel mode. Fix the compilation issue with ALOGV messages enabled Change-Id: Ic7e62894840f786119dfe8ae471c5d24812917d7 audioflinger: Enhance LPA-effect logic to handle rapid config. -Issue:Rapid Config events cause pops/glitches, raw data playback. -Rootcause1:Raw data leakage to DSP: applyEffectsOn() applies effects chunk by chunk in a loop, if effects change during this time the loop exits and this results in creation of a buffer in which part of it is effects processed and rest raw, this causes raw data to leak to DSP. -RootCause2:Effectsthread directly works on the DSP buffers, while DSP is rendering from there, so that effect application is instantaneous and for this it gives the DSP buffers as output to effects chain, this means that all the effects in the chain update the DSP buffers one after the other, this can create unpredictable rendering patterns. RootCause1 and 2 combined seem to fragment memory with parts of it with effects and parts with raw data etc. -Fix1:Dont update DSP mem unless the effects are applied completely on a buffer. -Fix2:Effectschain will work on a temp scrath buffer instead of DSP mem and when effects are applied completely on this scrath buffer, memcpy this to DSP mem with this DSP mem is updated in one shot. -Remove repetetive logs which clutter the logcat if msgs are enabled in audioflinger. Change-Id: I9051e7b8531aa5c8cb3dcfafe0be3136a2cf0f9d CRs-Fixed: 463880 frameworks/av: Update framecount and buffersize values -framecount should be calculated based on mMaxBufferSize returned from HAL -update the buffersize with the value returned from HAL CRs-Fixed: 482744 Change-Id: I90dd9c3ebbbc8a9f1f2f92c5347ae9cb01719e13 audioflinger: Fix the LPA-AudioEffects dead lock issue. - Issue:Deadlock occurs when the LPA clips are subjected to rapid next from BT device and simultaneously on/off the audio effects. - Rootcause:some times flinger thread processing LPAPlayer/directtrack next deadlocks with the thread working on effect configuration as both of them contend for the audioflinger::mlock and effectmodule::mlock. - Fix1:AudioFlinger::deleteEffectSession() not to acquire audioflinger:mLock instead take the mLPAEffectChain.mlock. - Fix2:ThreadBase::effectConfigChanged() not to acquire audioflinger::mlock. Change-Id: I056c8297802f81644fa1371836db42bdbd3825fd CRs-Fixed: 477511 libstagefright: Add support for High Frame Rate Encoding - Based on kkeyhfr key value from meta data, add support in OMXCodec and MPEG4Writer for HFR mode - Assume normal mode recording if kKeyHfr is absent - Increase bit rate for high frame rate (HFR) recording feature to reflect the corresponding increase in frame rate Change-Id: I0a69f8d9322a768677781d08dd910dc5772c5292 libstagefright: Support some userdefine properties - support property to disable audio - support property to change recorder profile mode - support b frame encoding Change-Id: I175decec83f6027cbd7988caf680f7fec2836f83 CRs-Fixed: 443327 libstagefright: Add support for H/W AAC decoder - Currently, only software AAC decoding is supported. - Add support for H/W AAC decoding by including it in the list of available decoders and use it for decoding only if the property 'media.aaccodectype' is set to 0. Change-Id: I4bb9df1bd10bd8ee91e63dadd6c473fc4e29813a CRs-Fixed: 449145 libstagefright: Move checks for creating new extractor to ExtendedExtractor - Move all the checks and creation of the extended extractor into ExtendedExtractor. - Restrict creation of new extractor to the following conditions o default extractor is NULL o default extractor says the content is video only or has an unrecognized audio stream o the audio stream is a amr-wb (plus). - This change is being added to avoid unnecessary creation of two extractors thereby improving the startup latency. CRs-Fixed: 462087 Change-Id: Ia87eca73c4f81d37697fa85fd4f7c8cc8d406104 [StageFright] Enable 4 channel support This patches enables 4 channel WAV audio support and fixes invalid data size in WAV header field if it exceeds the actual source size. This patch is needed to support WebAudio in WebKit as some of the chrome demos use 4 channel WAV audio and bogus header information. Change-Id: I307026107ab4e4342b1c0d7bb64761a416fb2c65 audioflinger: Fix crash on LPA shutdown * Decrement the refcount after unlocking the mutex Change-Id: Ic3210700e0aaf5e8df78f85f501621a455058e24 libstagefright: Accept vendor specific NV12 colorformat from component - Accept OMX_QCOM_COLOR_FormatYUV420PackedSemiPlanar32m color format which is NV12 + 32 aligned stride and slice. - This is different from vanilla NV12 which is 16 aligned. Change-Id: I6de2ec3a78215dbcc28a6006b746e3e0afe69c3c libstagefright: various fixes for avc_utils - skip seq_scaling_matrix_present_flag assertion if checking for interlaced property. - correct interlace check to outside of if-block Change-Id: Ia5854110feb1c56ddc86b312d2ba2dbb73d37804 CRs-Fixed: 445527, 445692 libstagefright: print stats at end of playback - prints statistics before reset at the end of playback onto logcat - print statistics after each pause and seek Change-Id: I68edcc3153a04209e7382e4d3fba0bf734f3e33f CRs-Fixed: 457926, 447109 frameworks/base : Fix to play a specific Mp4 clip due to SYNCH_LOST_ERROR. -Unable to play a Specific Mp4 clip. -Mp3 playback is stopped if the Decoder errors out with SYNCH_LOST_ERROR. -Ignore the frame with SYNCH_LOST_ERROR and play silence instead. Change-Id: I6b94a83cf89e8bc6792d8ee3804042d629aa505b Add checks before removing an active buffer in OMXNodeInstance With this change, OMXNodeInstance will remove a buffer from it's active list only if OMX_FreeBuffer returns successfully. Change-Id: I685b39ac7ba762a2fc1b64d7f6c1efd391513598 libstagefright: Add interlaced video support - Adds call to set output buffer size on the native window Change-Id: If4a67b3f877bef557c46bb67b29d1e7051553335 audio: fix for AMRWB param overwritten issue - Overwrite AMRWB params with default value only when setParameters is not invoked CRs-Fixed: 456459 Change-Id: I3fa6b56101ca408ed5b5b82707c6dc75a9d9f17b audio: fix encoder parameters for AMRWB format - AMRWB encoder only accepts SampleRate 16k and channel count 1. Always overwrite AMRWB SampleRate and channel count to default values. - AMRWB encoder accepts BitRate from 6.6k to 23.85k, only overwrite AMRWB BitRate to default(23.85k)if setParameters() is not invoked Change-Id: I75a96b54ef04bc59dab9074ec112071e62fd51aa CRs-Fixed: 460931 stagefright: Add QCOM_BSP ifdefs for interlaced video handling Change-Id: I856ae4a97f1bf13ab18d386b3486e742a4804b2a Camera : Changes to support camcorder profiles. Change-Id: I9c4bf14f273839fd36d5f52db0f215873e8291a0 av: Ifdef all the things! Change-Id: If9dd6c6442e9d2ac9e55e48369f2da85f5f951f7 Camera: Add profiles for camcorder. Change-Id: Icdaf1fae0018de1fb04f41125cfbe34a91b5eda7 libvideoeditor: use vWidth and vHeight for buffer allocation - video editor detects crop information from decoder, crop width and height will override metadata width and height. - decoder is capable of sending crop information where crop width and height are smaller than actual resolution. - use actual metadata width and height for calculating buffer size. Change-Id: Id1d77c316e3892e6d51a00418052f256629f495f CRs-Fixed: 452511 Add ifdefs around enhanced media types Change-Id: I64b8853660ac4fe90ddb218b237f63b635cdb47b
* Add camera parameters for htc evo 3D. (1/2)Kevin Bruckert2013-04-281-1/+19
| | | | | | Use BOARD_HTC_3D_SUPPORT to enable. Change-Id: I28fa3f1586071bcc78b8e887bbbf699d338a0ceb
* OMXCodec: Re-implement requires-flush-before-shutdown quirkPawit Pornkitprasan2013-04-241-0/+4
| | | | | | | Support is already there, but is not in the codec quirk reading list. Re-implement it as required by Broadcom's OMX Change-Id: I1beac06af8118dcf0c248b631bc8e6dbbab2c1d5
* libstagefright: Fix incorrectness nPortIndex value for QueryCodecYuanQY2013-02-271-1/+1
| | | | | | | The query index is wrong, it will make a death loop in my ME722 when get resource thumbnail for MPEG4 video. Change-Id: I64532156e762b847a8eae59560fb828549c29519
* libstagefright: Add support for frame-by-frame modeShalaj Jain2013-02-191-1/+5
| | | | | | | - Set decoder in frame-by-frame mode always, except for interlaced content, for which arbitary mode should be set Change-Id: I8195a40549898b43a0e03d65663c7148f458c448
* Squashed commit of updates from CodeAuroraMingming Yin2013-02-061-10/+46
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | auido: Add amr-wb+ codec to ACodec. -Add an entry for amr-wb+ decoder in ACodec. -amr-wb+ non tunnel will be enabled by default. Change-Id: Ied8902eb83da29a3164eb99e88630570a43f681e libstagefright: Create MP3 decoder libraries without OMX layer - With the current MP3 OMX SW decoders, the decoding time is increased w.r.t the libraries without OMX layer that are present in GB. This increase in decoding time results reduction in power savings in LPA mode. - This commit is to remove OMX layer for MP3 to reduce the power consumption in LPA mode Change-Id: I835ab6d013a326f111e513586f884bacd5f7106a audioflinger: EffectModules are updated with device change Issue: Effects modules are not updated with the device change information Fix: 1) Add setDevice information to mLPAEffectChain 2) Remove the return after sending the device route information to Direct track so that mixer thread is also aware of the device change for EffectsChain Change-Id: I82936cd47290946a5e4772e448669d81e0e4d6f5 libmedia : Add a NULL pointer check - Print frame count in AudioTrack::dump() only if the control block is valid Change-Id: Icf594eb721b48795c43d7bd165f6086031ce6efd CRs-Fixed: 435050 libstagefright: Query AudioSystem for suggested record mute duration - AudioSource mutes a pre-defined duration (defined by kAutoRampStartUs) at the beginning of a recording. - Instead, query the audio system for any ongoing playback streams and use its output latency to calculate the duration to mute the incoming PCM stream. - This assumes all current playback threads will be paused once recording is started. Change-Id: Ie9b1d62e7be803ef1d8a59127b95c73e03fa5ce6 CRs-Fixed: 438149 libstagefright: Convert mono to stereo for LPA clips - Sound effects are not supported for mono clips - Repetative calling of effects_configure and effect_process for mono clips is resulting in crash in the sound effects library. - So, Mono clips are now converted to stereo by copying the left sample to right. - This is same as what Resampler does in Non-LPA Playback. This commit is a port of fcc0647fab20ceaf1c07bc10bb243f14c48b114c CRs-Fixed: 421639 Change-Id: Ie579c8d11afe3db8d42a35956e8bf23eeb88cfe6 audioflinger: Fix to set volume from MediaPlayer in Tunnel mode Issue: MediaPlayer.setVolume does not have effect on Playback volume in TunnelPlayer mode Fix: the left and right volume parameters of setVolume are hardcoded and defaulted in DirectAudioTrack. Updating the parameters from the input arguments fixes the issue Change-Id: I8a107ce57284b225b17d95fed0f69e3adc5fb131 CRs-Fixed: 441849 libstagefright: Enable Tunnel Decode for select formats - Enable tunnel mode decode only if the audio mime type matches a supported list. Change-Id: I32afd83e5fda1e90cb671dd747f17cb83bb84fc1 CRs-Fixed:437651 framework/av:: Add support to decode mp3 data in mp4 container - Added support to decode mp3 data in mp4 container packed as mp4a atom and .mp3 atom as well. Port of 8fa3774adf9259b33ee721cfaeff26da42c29928 Change-Id: I1a04022f30a9f6516575440aba7652986ab7dc58 CRs-Fixed: 439897 audiomixer: Use High Quality resampler Use very high quality resampler to upsample to 48KHz sample rate. Change-Id: I1ba5b839f1e74ae71b405538d970e6a966bd1d47 CRs-fixed: 416730 audioflinger: Fix a deadlock - A deadlock will happen if the obit recipient registered by the DirectAudioTrack is called. - Fix this by moving the lock acquisition in DirectAudioTrack::clearPowerManager() to after DirectAudioTrack::releaseWakeLock() is called. - Also synchronize use of mPowerManager in the DirectAudioTrack destructor with DirectAudioTrack::clearPowerManager() Change-Id: Ib127db1406c4a61a4054ca0cf30f4c7347a5c92a CRs-Fixed: 444093 libstagefright: TunnelPlayer: update condition to send SEEK_COMPLETE - If the client tries to seek to 0 (e.g as a result of LOOPING) without ever calling getPosition(), we will always sent an immediate seek notification without seeking. Change-Id: Id2b9d00c611278d0521cb6fd402710f0ec37bbdd CRs-Fixed: 441411 libstagefright: Remove unnecessary code from TunnelPlayer - TunnelPlayer tries to mimick AudioPlayer when trying to delete the extractor source. - It is needed for AudioPlayer as the OMXCodec object is referenced by the CallbackDispatcher as well as AudioPlayer. - This condition is not true for TunnelPlayer, so why do it. Change-Id: I79c4e17d01910e73ad01c5640ef374626313a18e CRs-Fixed: 442365 Add MediaDebug header from CAF Change-Id: I68dbe72f86a49685b82b64927d1aa80231647a7a
* Video Encoder: Enable Ducati h264 encoder profile changeHashcode2013-01-271-0/+5
| | | | | | | | | | | | | | | | This patch enables the TI ducati H264 encoder profile via BoardConfig setting: BOARD_USE_TI_DUCATI_H264_PROFILE := true Allows correct video decoding on Motorola OMAP4 / Kindle Fires and other devices using newer DOMX libs. Effectively a cherry-pick of omapzoom commit (with creative board setting name): http://www.omapzoom.org/?p=platform/frameworks/av.git;a=commit;h=e28784d5c68c8699cfd9ebe0231e7132d8b13dad Change-Id: Idc49b00030558a22a9e50e8798e5814ad54fe841 Signed-off-by: Hashcode <hashcode0f@gmail.com>
* [3/3] libstagefright/videoeditor: Allow custom DOMX source instead of Google ↵Hashcode2013-01-261-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | DOMX default Part 3 of 3 patches: To allow omap4 devices to use custom "domx" source via a new BoardConfig.mk item: TI_CUSTOM_DOMX_PATH := device/<manufacturer>/<device-name>/domx This setting provides for 3 changes during the build: 1. In hardware/ti/omap4xxx this settings stops standard Google domx source from being built and changes the domx reference for tiutils. 2. In frameworks/base it changes the default openmax references for frameworks/base/media/jni/mediaeditor/Android.mk to the new location 3. In frameworks/av changes the openmax references in 5 places, and adds new includes in ACodec.cpp, CameraSource.cpp and OMXCodec.cpp This is a combination of cherry-picks from omapzoom (with a more descriptive BoardConfig setting name): http://www.omapzoom.org/?p=platform/frameworks/av.git;a=commit;h=8044105ca117c2e99b35ad9f341d630fc5a9d2e0 http://www.omapzoom.org/?p=platform/frameworks/av.git;a=commit;h=4adf712d1f3f2050fe0010652bbba7ecb8468870 http://www.omapzoom.org/?p=platform/frameworks/av.git;a=commit;h=fa37231ca59872ac491461ca3c14e019834848e5 Change-Id: I53dbf120d515eaf5ec82688dcea4c670c173ed01 Signed-off-by: Hashcode <hashcode0f@gmail.com>
* Fix typoPavel Kirpichyov2013-01-081-1/+1
| | | | Change-Id: I311f608d761987d0c714be9ab81188a3ca8eef61
* stagefright: OMXCodec: Re-enable OMX.TI.Video.encoder's quirksRicardo Cerqueira2013-01-031-0/+72
| | | | | | | | | | | | | | | | | | | | | | | | | These have been around since early stagefright, and were dropped for JB. Unfortunately, they're still necessary with for this encoder to work. Change-Id: I8a251bf195a24b166db7464a90a822d6e69b644d libstagefright: Add support for the 720P OMAP3 encoders Bring back some more OMAP code that was removed by Google in JB, and a couple of omapzoom patches. This may stop being necessary if TI publishes JB-specific OMAP3 code, but as long as we're using the ICS domx, these need to be here Change-Id: Ia29f8c9f9ed769ba07b09c07260486f6502841d6 libstagefright: Unbreak OMAP4 encoders The "manual" construction of the h264 codec data is only needed on OMAP3. Execution of this code on OMAP4 breaks the mpeg4 header generation Change-Id: I3ae52f2e685e2d9097796685c98dffa93cfa6430
* Squashed commit of updates from CodeAuroravivek mehta2012-12-291-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | libstagefright: Add support for VC1 clips - configure decoder in frame-by-frame or arbitrary mode based on the codec type. Change-Id: I6404e5b7ee217045e6456f51f914dbd8a651d98a CRs-Fixed: 432847 stagefright: Miscellaneous fixes for LPA and Tunnel playback 1. Fix for AV sync issue with Tunnel playback APIs for returning correct timestamps were implemented 2. Crash while exiting TunnelPlayer Check whether sink is open before flushing or closing it. Check for mIsAudioRouted is good to know if we are closing it 3. Seekbar freezes after seek and pause Check pause status before writing Change-Id: Id8ab7b258e9c05b20e121bdf3c4dc30d519f6c15 frameworks/av: Add support for surround sound recording - Add 5.1 channel as supported input channel Change-Id: I50fcd87245c5c855ede8f09ea1a7c5be2e684640 stagefright: Add tunnel decode for amr-wb/wb+ When tunnel.decode is true, playback of AMR-WB and AMR-WB+ uses tunnel decode. Change-Id: Ic06cb3faaac18f605402c98a27cb4dfa4b7faee2 stagefright: Skip LPA if #channels > 2 Skip LPA for Multi channel playback Change-Id: I5b97471ef55aea260d1c02db672eb4bd64c3edef
* Squashed commit of audio changes from CodeAuroravivek mehta2012-12-231-42/+613
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | libstagefright: Add QC specific media format - Add QC specific media extensions - Add QC specific media definitions Change-Id: I7dca90be3b977701d9537f5e017117790a030f1f audio: Compile AudioParameter as shared library - AudioParameter as shared lib is needed by BT support in WFD source. Change-Id: I464b428ace0cbb57ce6bf7bf3b57d51a7d56f032 libstagefright: Send flush on both i/p and o/p ports together - ANR occurs in music due to race condition in OMX component if flush is issued separately for i/p and o/p ports as DSP only handles simultaneous flush on i/p and o/p ports. Change-Id: I5b16cd5a9b57c857dc8bed489d2663b8f54769e3 libstagefright: Enable extended A\V format - Add new files to support extended A\V format Change-Id: I1e61d78d35b868d55fd8e99f95de8cab9c465db4 libstagefright: Framework to plug-in propritory parser - Extend the current framework to plug-in propritory parser Change-Id: Ia586a3048420ddf1515261f20035589447263b7b audio: add support for QCOM audio formats - Add support for EVRC, QCELP, and WMA formats. Change-Id: Iaf80f982fc8b08617132dbd7d524a1748866745c frameworks/av: Support Tunnel Playback - Implement DirectTrack and DirectTrackClient - DirectTrack exposes API to client so it can create a direct output. - DirectTrackClient allows notifications to be sent to the client from DirectTrack - DirectTrack is being used for Tunnel Audio Change-Id: I2fbb18a781d8e44b8d65da9a357f6e39375f063a frameworks/av: Support LPA Playback Add support to enable Playback in LPA mode Change-Id: I1b8ac4904f4735017d62f3757ede7bbb56e62fd3 audio: Send correct channel mask in voice call recording. -Using popCount function to get channel count gives incorrect value on voice call recording. -Only STEREO and MONO bits to be considered to count channels on input Change-Id: I04c2c802422e868bdba0538ff8623dbf9eb659fe libstagefright: Thumbnail mode initial commit - use sync frame decoding mode when kClientNeedsFrameBuffer is set for hardware decoders - hardware decoder will only expect I frames, OMXCodec will set EOS on first ETB to stop more frames from being pulled - skip EOS check on FTB so that the first frame will be handled Change-Id: I0e8974e088fdcc468e27764861c128cfe291499f audio: Add support for QCOM's VOIP solution Change-Id: I1150f536fa204b535ca4019fdaa84f33f4695d93 audio: define QCOM audio parameters - Define QCOM audio paramters for FM, VOIP, fluence, SSR, and A2DP Change-Id: I29d02e37685846f6d4f00dee02e2726b015eaae7 Add ifdefs for QCOM enhanced features Change-Id: Ic8e5fe6ecc058466ced71030883b1af6c2bc055c
* libstagefright: exynos4: set proper eColorFormatcodeworkx2012-12-061-1/+7
| | | | Change-Id: Ie025face3c292e685fdf4d83c99276b0a9e4d71d
* omx: exynos4: bring inline with jellybeancodeworkx2012-12-061-42/+20
| | | | Change-Id: Ic275fd30a721f8161dcc44c2706b86ab5ea213ba
* exynos4: libstragefright: add support for samsung colorformat/omx/mfccodeworkx2012-11-301-3/+154
| | | | | | | Source: http://git.insignal.co.kr/samsung/exynos/android/platform/frameworks/av/commit/?h=exynos-jb&id=1614612f7ca2a00473d202dbedcb135fadc608ad Change-Id: Ib40b3cfa1480ecbb69831e7967a81f63719e2ff7
* Added some extra failure logging messagesJames Dong2012-10-171-0/+7
| | | | | | o related-to-bug: 7282066 Change-Id: I0896551a45aab61fb571fef19061397ff84321d9
* Make a small correction in terms of GOP structure in the recorded videoJames Dong2012-09-141-1/+1
| | | | | | | | | When we have a 30 fps frame rate, and one second key-frame or I-frame interval, we really would like to have for each second, 29 P-frames + 1 I-frame. Thus, we should calculate the number of P frames so that it is equal to frame_rate * I_frame_interval - 1 Change-Id: I5b9be6e4c101e7a6b718015aa4041496961c0f19
* Allow OMXCodec to specify an output color format for OMX decoder componentJames Dong2012-09-101-6/+28
| | | | | | | | The output color format is specified via the meta argument in OMXCodec::Create() o related-to-bug: 7122195 Change-Id: Id3247686b893af25cc190685201e53ad34b0399c
* Fixed a native crash due to unexpected state at destroy time when encoder ↵James Dong2012-08-241-6/+14
| | | | | | | | | | | | | | component's source fails to start o Encoder component initializes to be in the state of EXECUTING before its source gets started, because we wanted to be able to configure the source to use the advertised number of input buffers. However, if the source fails to start, then the encoder ends up in the state of EXECUTING when OMXCodec object gets destroyed. As a result, the assertion on the expected state in OMXCodec's constructor fails. The fix is to stop the video encoder component right way when its source fails to start so to bring the state of the encoder component back to the expected state. o related-to-bug: 7045494 Change-Id: I6d4a221eb809d7137f53e58098a04816998f7a25
* Make sure codec names and corresponding quirks are returned together.Andreas Huber2012-08-071-23/+21
| | | | | | | | | Previously they were returned in separate vectors and only one of them was sorted if software codecs were preferred, leaving the quirks no longer matching the codec name at the same index. Change-Id: Id3f1e6f9f7f8c9cc4b6ebfb86a203b4d59de8604 related-to-bug: 6737884
* Remove obsolete hack for TI specific codeJames Dong2012-08-061-39/+9
| | | | | | o related-to-bug: 6566886 Change-Id: I39aad214cbf7b748a95a9d22db50cd8f421931e6
* Allocate buffers before calling start on its source in OMXCodec::start() for ↵James Dong2012-08-021-5/+17
| | | | | | | | | | | | encoder case o This makes it possible to configure the source to use the same number of input buffers as requested by the video encoder, before the source starts. As a result, hardcoded number of video buffers for camera source, for instance, can be avoided. o related-to-bug: 6920805 Change-Id: I13d2c308dce34967768cd407f02988e92ef10a89
* Merge remote-tracking branch 'goog/jb-dev-mako' into jb-mr1-devEd Heyl2012-07-291-3/+10
|\ | | | | | | | | | | | | Conflicts: services/audioflinger/AudioFlinger.cpp Change-Id: If27e4ff35de1e182394cc149e1557a49f0f7c95b
| * Process EBD and FBD messages in ERROR stateHaynes Mathew George2012-06-281-2/+8
| | | | | | | | | | | | | | | | | | | | | | | | - OMXCodec::on_message() function drops all OMX messages if OMXCodec is in ERROR state - This can cause EBD/FBD messages containing valid buffers to be dropped - Avoid dropping EBD/FBD messages so that buffer book-keeping is still possible Change-Id: Idc1174b3fa946b26458d49394b87fba1738b228e Signed-off-by: Iliyan Malchev <malchev@google.com>
| * Add vendor specific output color formatHaynes Mathew George2012-06-211-1/+2
| | | | | | | | | | | | | | - Add Qualcomm specific color format support to OMXCodec and ACodec - This is the default color format supported on QCom chipsets Change-Id: Id947b158c3b403c2d347f708bc1e780b4d65e220
* | Codecs: Add MetaDataMode support to software video encoders.Eino-Ville Talvala2012-07-241-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This support is needed to enable efficient video recording with emulator and camera HAL 2. - Update SoftAVCEncoder and SoftMPEG4Encoder to support MetaDataMode extension. - Allow CameraSource to handle opaque pixel formats, so that MetaDataMode can be used. - Remove hardware codec restriction for MetaDataMode Bug: 6243944 Change-Id: I970eb3d55542a413b6d75a78f76d3a8583155601
* | Update ANativeWindow client code for syncJamie Gennis2012-06-211-30/+8
|/ | | | | | | This change updates all the uses of ANativeWindow to use the new ANW functions that accept and return Sync HAL fence file descriptors. Change-Id: Id7db42d8d6380f8b440d88476ce9211c6225fb16
* stagefright: set scaling mode for blank framesJamie Gennis2012-06-141-0/+8
| | | | | | | | This change sets the ANativeWindow scaling mode before pushing the blank frames during decoder tear down. Bug: 6603254 Change-Id: Ic64011645e2d3671b4a8d302ac7f39e6fd3affcd
* Revert "Added some informational log messages to track down ANR related issues"James Dong2012-06-111-3/+2
| | | | | | This reverts commit c558fa89016ba9583049b84dc57e66a913cabde8. related-to-bug: 6565826
* Added some informational log messages to track down ANR related issuesJames Dong2012-05-291-2/+3
| | | | | Change-Id: Ie991c86e75d58f7eb4c9f524815c4de054d5f262 related-to-bug: 6565826
* Force shutdown of the omx decoder even if it's in a wedged state...Andreas Huber2012-05-291-7/+31
| | | | | Change-Id: I5899928a3df4bcf7715769992955a0b834db1e2f related-to-bug: 6571060
* Fix a mediaserver crash caused by dereferencing a NULL pointer.James Dong2012-05-211-5/+5
| | | | | | | | | The pointer (info in method drainInputBuffer) in can be null at the point of the dereference, but it will get updated subsequently. Thus, we should move the logging after the pointer gets updated. related-to-bug: 6530159 Change-Id: Ifa5f19a694953af6942454e5c28cd3fa024f11d2
* Log which OMX component is not returning all buffers to us on executing->idle.Andreas Huber2012-05-151-6/+16
| | | | | Change-Id: I8cd102cc5b1f3c9c36e3c5832ae4bee75c471efd related-to-bug: 6498711
* OMX IL wrapper for FLAC encoderJean-Michel Trivi2012-05-091-0/+2
| | | | | | | | | | Add wrapper around libFLAC for FLAC encoding in OpenMAX IL. Declare FLAC encoder in OMX component roles. Bug 5525503 Change-Id: I19bbce41c216870669d09365693f4ea89f8bc0f7
* Get rid of vendor specific video encoder component names from ACodec and ↵James Dong2012-05-071-7/+4
| | | | | | | | OMXCodec o related-to-bug: 6446245 Change-Id: I1fa07ad8a39337e3b19ac51c10533a2de8c11bb5
* Impl for supporting two video scaling modesJames Dong2012-05-011-15/+0
| | | | | | | | | o allows the video scaling mode to change at any time o also remove the scaling mode logic in OMXCodec.cpp o related-to-bug: 5454345 Change-Id: I6f1714eb0c2774591ce650d56c1e779b8afd085f
* Removed software video encoders that are not OMX-based.James Dong2012-04-301-6/+0
| | | | | | o related-to-bug: 5933287 Change-Id: I63635375e2bef00733b61adc3fa12c29df7e2155
* Fix mono gapless playback for decoders that output stereoMarco Nelissen2012-04-301-8/+4
| | | | | | | | | | | | | The old AAC decoder always outputs stereo, even for mono source material, so we need to use the number of channels of the output when calculating the number of bytes to skip, not the number of channels in the source. This makes OMXCodec skip the right amount of data, and prevents NuPlayer from writing half a frame and then asserting when the AudioSink doesn't accept it. Also move use of the SkipCutBuffer from NuPlayer to ACodec, so that it also works when using the new Java APIs, and make SkipCutBuffer derive from RefBase. b/774846 Change-Id: I34df9fea3e6730617eae559afaa556f4085ef0a0
* Add Fraunhofer AAC encoder with AAC-ELD support.Dave Burke2012-04-251-4/+8
| | | | Change-Id: I6cd499d257d72f50a5b508bed97796a591a51506
* Make sure OMXCodec and ACodec both accept more than 2 channels of audioAndreas Huber2012-04-241-8/+65
| | | | | | and fill in the OMX channel mask properly. Change-Id: I915950a0b252142b9eb3277cf7c6e0d9f5875305
* Add a few more APIs to MediaCodecList.Andreas Huber2012-04-021-43/+57
| | | | Change-Id: I5ac193cd40c82bbcd87c1e55003b78102e8d4674
* Implementation of a raw audio "decoder".Andreas Huber2012-03-291-0/+10
| | | | Change-Id: Ie89f01e59dd8106883937188afbb407550f0ac92
* Add ABuffer support to SkipCutBufferMarco Nelissen2012-03-291-2/+1
| | | | | | | | Add support for ABuffer to SkipCutBuffer, and make it (re)allocate an appropriately sized buffer when needed, rather then relying on the caller to tell it ahead of time how big the buffers are going to be. Change-Id: I8b5c9ba5dd2fc13ef8870b7d4fe93a1bfdc7a626
* Provisional support for secure decryption of media streams.Andreas Huber2012-03-261-6/+25
| | | | Change-Id: Ib3982a9c960bfdb0cb7e1b174440b141b194cfbe
* Support gapless playback for mp3 and m4aMarco Nelissen2012-03-221-0/+40
| | | | | | | | | 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
* ACodec is a little more aggressive in its error checking now.Andreas Huber2012-03-161-2/+4
| | | | | | Update components to do the right thing. Change-Id: Ibfbad3f53effc16368cca4a0e978d01d54d08a1d
* Switched to use the header files in /frameworks/nativeJames Dong2012-03-121-1/+1
| | | | | | | | and deleted the duplicate header files in /frameworks/base o related-to-bug: 6044887 Change-Id: I17e0692d9a9b5c8796ded36677c833ca8ab36795