summaryrefslogtreecommitdiffstats
path: root/media/libstagefright/include/AwesomePlayer.h
Commit message (Collapse)AuthorAgeFilesLines
* Squashed commit of A/V changes from CodeAuroraKrishnankutty Kolathappilly2013-06-181-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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
* libstagefright: Squashed commit of LPA/tunnel updates from CAFHaynes Mathew George2013-02-271-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | libstagefright: Exceptions in using Tunnel mode decode - Accumulate all known exceptions to a separate function Change-Id: I61bbc288c9a087559db210e76141b8c57e67fff0 CRs-Fixed: 432080 libstagefright : Stability fixes for Tunnel Player (part 2) - Synchronize b/w reset() and onPauseTimeout - Synchronize b/w seekTo() and onPauseTimeout Change-Id: Ia5cfc6b4dcc326ead440fba35d809d4f3f1b5a81 CRs-Fixed: 449122 Revert "Revert "libstagefright: Convert mono to stereo for LPA clips"" This reverts commit 0db8a19fb3216a8a83d5d6cbd5f1ccbf997a20d8. libstagefright: Port Tunnel mode fixes to LPA - Miscellaneous fixes for seek, pause/resume, EOS handling - Miscellaneous fixes for synchronization between the decoder thread, TimedEventQueue and the player thread. - This change is a port of a similar set of changes made for TunnelPlayer Change-Id: I82c2904f7aedfb9c4f03200419fcba8b038e3d54 libstagefright: Avoid use of extra bytes to signal seek processed - A few bytes were reserved in the buffer sent by Tunnel/LPA player to audio HAL to indicate a seek has been processed and there is no need to skip it. - We won't need this method anymore as this can be fixed instead by synchronizing seekTo() and the extractor/decoder threads. Change-Id: Ic02ae1699bb59e2f6b8d9fb599d0fa43fd3f19e3 libstagefright: LPAPlayer synchronization fixes - synchronize b/w seekTo() and onPauseTimeout() - synchronize b/w reset() and onPauseTimeout() Change-Id: I29a4ccf02e28fe7b7c00e35a679ff2b5271ffb6f libstagefright: TunnelPlayer performance tweaks Some tweaks when TunnelPlayer is used for audio/video playback - Keep the extractor thread at ANDROID_PRIORITY_NORMAL - sched_yield() after reading a frame to give the video thread(s) (CallbackDispatcher and/or TimedEventQueue) to be scheduled Change-Id: If0d86d629fd0e15aff917af8589472578cd28bf4 CRs-Fixed: 444041
* Fix mako build.Danny Baumann2013-02-061-1/+1
| | | | Change-Id: Ic73cb2f4152ac77a83fcda7e89b4a8202df440c6
* Squashed commit of updates from CodeAuroraMingming Yin2013-02-061-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* libstagefright: Collection of fixes for TunnelPlayerAlexy Joseph2013-01-261-0/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | -Handling of EOS, and triggering EOS was wrong in TunnelPlayer. Seeking when EOS was posted to the HAL was wrong. EOS should not be posted till seek is complete -Also, EOS should not be posted to the app if we are seeking -Player should wake up when seeked, even after EOS was posted from player to HAL -Fixed this issue by cleaning up the code for EOS -Disable tunnel mode playback for streaming use cases to avoid jittery playback Change-Id: I21699d2d5874bde6cbfe549ce0251b252e9a4090 CRs-Fixed: 433346 CRs-Fixed: 432233 CRs-Fixed: 429868 libstagefright: Add new mime for QC TS container - Add new mime type for TS container that is sniffed by extended extractor. This is needed for media extractor to determine which parser to create. Change-Id: I18dcebbbf3b31cea7db29a4dd65385638343bec1 libstagefright: Use software decoder for ADTS content. Use software decoder for widevine content which uses ADTS format. CRs-fixed: 431096 (cherry picked from commit 3edf2e703bcdc47f122864865056d5cb65b7ab43) Change-Id: I50eba673ddd6ec2bbb737577978e61902ff68d13 audioflinger: Fix to release wakelock after closeoutput -In DirectTrack destructor, closeOutput is called after releaseWakelock is done. This may sometimes result in power collapse happening even before actual close sequence of Audio path is completed and will result in high power consumption. -Release wakelock only after closeOutput is done in directtrack destructor. CRs-fixed: 438179 Change-Id: Ibe103804daf2cb09bade998d6d34c3a34508dd09 libstagefright: Add support to change clip duration to enable LPA Added support to change the clip duration threshold value for LPA playback. A new system property 'lpa.min_duration' has been added which controls the minimum clip length for enabling LPA. The default threshold value has been retained as 60sec. Change-Id: I6a8be6d6bf67495977d8c75e5be14723a31353b1 frameworks/av: Skip tunnel mode for playback through AudioCache In the use case of playback using SoundPool, decoded data is cached from player and further rendered through AudioCache. Avoid Tunnel mode for the use case AAC format through SoundPool Change-Id: I21005a5b39f9fb480ae0d525ecb560fec4382620 CRs-Fixed: 437539 frameworks/base: dumpsys rendering statistics for Stagefright - this adds extra fps statisticis - report via dumpsys Change-Id: I7b4d4582c4eb2ccf2d11557844dade92f9e587c0 CRs-Fixed: 435013 libstagefright: Stop extractor source after start in TunnelPlayer Issue: In the use case of frequent suspend resume during Video Playback with HDMI Connected, we encounter a scenario where tunnel player is created and destroyed without the extractor source started. In such use case, stopping the source in reset during the tunnel player destruction leads to failure during assertion check. Fix: Check for mStarted flag to ensure that stop on source is called only after they are started. Change-Id: Ib18e7ee3d10b2cc706944e358046f163d156706c CRs-Fixed: 440239
* Squashed commit of audio changes from CodeAuroravivek mehta2012-12-231-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Added a callback to signal when the rendering of the video frame just occurredJames Dong2012-07-201-0/+1
| | | | | Change-Id: Ifbd78606ffc33483aecebf02cb18e0e52af9624d related-to-bug: 6851811
* Switch audio tracks at runtimeJames Dong2012-05-141-0/+9
| | | | | | | | o The switching is not allowed if there is an audio seek operation ongoing. o related-to-bug: 6110705 Change-Id: Ib92a165f3984aa033d97800184d3d17319522db5
* Removed mutex lock in addTextSource, and rename to addTextSource_lEdwin Wong2012-05-021-1/+1
| | | | | | | | to indicate this method needs to be called with a lock hold. Change-Id: I7e99f0a622e7de49c288be09dd4fc955bbca390b related-to-bug: 5629511 related-to-bug: 5542712
* Impl for supporting two video scaling modesJames Dong2012-05-011-0/+3
| | | | | | | | | 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
* Handle the case when there is no timed text trackJames Dong2012-04-261-1/+0
| | | | | | | | o also replaced mTimedTextLock with mLock, since there is no particular reason to use a separate lock for timed text o related-to-bug: 6110705 Change-Id: Ia687e96956692c42d492e57992e5721ca1e8e18b
* Fix for multiple audio/timed track feature implementation - part oneJames Dong2012-04-161-1/+10
| | | | | | | | | | | | | | | | o getTrackInfo now returns all tracks, rather than just the timed text tracks. o the index of the track info is kept to the same as the track index if the track is not from an external source o correctly maps the selectTrack() and unselectTrack() calls to the right track index o TODO: 1) note that the selectTrack() and unselectTrack() only works for timed text track at present; 2) the lock is timed text specific o related-to-bug: 6110705 Change-Id: Ib1feeef2184bc992930ace0d1197b6c00a2636d7
* Defines MediaPlayer APIs to support multiple audio/video/timedtextInsun Kang2012-03-151-3/+2
| | | | | | | | | | | | | | | | | | tracks. o Newly introduced APIs are (MediaPlayer): getTrackInfo() / addExternalSource() / enableTrack() / disableTrack(). o Timed text tracks are supported only, for now. o TODOs: - Define the audio/video behavior for enableTrack and disableTrack. - Refactoring AwesomePlayer / TimedTextDriver so that all types of track index can be managed in the correct order and be ready for supporting audio/video tracks. (MediaExtractor and MediaSource for text file might be necessary.) Change-Id: Idb85e1b3f2ed49a64f377d05472dd6663ce94e07
* Change the signature of method addTextSource() in AwesomePlayerJames Dong2012-02-091-1/+1
| | | | | | o avoid a unnecessary copy constructor call Change-Id: Ib598bbe42d42a835549e2d29502c6f196f859874
* First step of refactoring 'timedtext' code.Insun Kang2012-01-311-3/+2
| | | | | | | | | | | | | | | | | | | Goal 1. Removed dependency of TimedTextPlayer on AwsomePlayer. 2. Generalized TimedTextParser to TimedTextSource and its subclasses. Summary 1. Introduced TimedTextDriver, TimedTextPlayer (new implementation), TimedTextSource (and its subclasses). 2. Removed TimedTextParser. Remaining TODOs 1. Revise VideoVidew, Gallery3D app, AwesomePlayer to check if 'pause' and 'resume' works well. 2. Consider revising MediaPlayer APIs such as setParameter() -> addTextSource(). Need more thoughts. Change-Id: Ie0c4f15b9690102de755cef6940f8c31ccf78e27
* Separate sniffing from session initializationJames Dong2012-01-121-0/+1
| | | | | | | | | | | | This avoid lengthy/duplicate sniffing for drm plugins when a decrypt session is opened o The change is backward compatibile in that no update is required for existing drm plug-ins if they do not plan to provide separate sniffer/extractor related-to-bug: 5725548 Change-Id: I7fc4caf82d77472da4e2bc7b5d31060fb54fd84c
* Make sure not to cancel pending seek/EOS notifications on a cache underrun...Andreas Huber2011-11-161-1/+1
| | | | | | | or they are lost for good. Change-Id: I2f9f53efb05db4077961137c9dc8c27edac4ec62 related-to-bug: 5544907
* Remove surface legacy APIs and code.Andreas Huber2011-10-281-2/+0
| | | | | | All surfaces are now supported through surface textures. Change-Id: I95dd823e7099c0c32a48a1121624149dcc29d9c6
* NuPlayer is now taking on the task of streaming over RTSP.Andreas Huber2011-10-131-10/+0
| | | | Change-Id: Ie204db8810807f1e7981959e34dc0149e5d9563a
* Guard the audio notifications with a separate lock to avoid deadlocks during ↵Andreas Huber2011-09-011-2/+2
| | | | | | | reset. Change-Id: I9a97372e1f777d1cbd6774cac2ed34b4b8cd9392 related-to-bug: 5179827
* Return an error to the client instead of asserting if decoder instantiation ↵Andreas Huber2011-08-291-3/+3
| | | | | | | | | fails after a surface change. Change-Id: Ic7758cbeb107032db68a1c3b8e2984710a12dd8b related-to-bug: 5212725
* Some decoders require more gentle treatmentJames Dong2011-08-181-0/+3
| | | | | | | | We sacrifice A/V sync to some extent to enable the decoder to recover from temporary bottlenecks. Change-Id: I16195091ad752bfad4c70869cdd7e9f28ca3a118 related-to-bug: 5180142
* If audio startup fails while executing MediaPlayer::start() do NOT post an errorAndreas Huber2011-07-141-1/+1
| | | | | | | notification, the error returned by MediaPlayer::start() will suffice. Change-Id: I49bd8d42078f039e5e6d8d4fed4f7f55dc5ff82a related-to-bug: 5020200
* Charge network traffic to the uid of the process using the MediaPlayer.Andreas Huber2011-07-011-0/+3
| | | | | Change-Id: I2bcb54b8232afd3fc7ee16289f37c7a7b3f23067 related-to-bug: 4517282
* Make dumpsys(media.player) more useful by having AwesomePlayer populate it.Andreas Huber2011-06-081-0/+30
| | | | Change-Id: I12ba7d542331a8293d67a0d47378b8be4f777759
* Send estimated bandwidth value as informational event when cache fetcher pausesJames Dong2011-05-311-0/+2
| | | | | | | | | | o Application can make informed decision about the available network bandwidth when cache fetcher pauses. o Application can also adjust how frequently the bandwidth is estimated within a range from one second to one minute. Change-Id: I90068001343e79da1886de03c565537787e1580b
* For out of band timed text support (timed text in a separate file).Gloria Wang2011-05-251-0/+1
| | | | Change-Id: I9e024a63eb9bf6f839deee3c7766a66e63126c96
* resolved conflicts for merge of a8939e0d to masterJames Dong2011-05-191-0/+5
|\ | | | | | | Change-Id: I090479ed09618e1aa3685ca79e16202d9c82f523
| * Using widevine:// to stream adaptive bitrate wvm content no longerAndreas Huber2011-05-101-0/+6
| | | | | | | | | | | | | | | | uses stagefright's http cache but defers caching to the WVMExtractor, which now has the responsibility of reporting buffer status/duration. Change-Id: Ieec64a20203977fd0a61d0c6834da124de78bfa2 related-to-bug: 4390283
* | Properly honour any pending seek request when reading the first buffer afterAndreas Huber2011-05-101-0/+1
| | | | | | | | | | | | starting the audio player. Change-Id: Ibedc1804a8c444e4d0f5be4eb87b22ed5d2c367d
* | Initial CL for the timed text support:Gloria Wang2011-05-031-16/+26
| | | | | | | | | | | | | | | | - Add support for MP4 timed text - Add API for app to turn on/off a text track - Add timed text metadata(language) in the MediaMetadataRetriever Change-Id: I0055beba38ac761627dbcc6d581ae9582d68bb94
* | Add setParameter/getParameter to MediaPlayer API.Gloria Wang2011-04-291-0/+3
| | | | | | | | | | | | for bug 1982947 Change-Id: If3f40e4f18cbba155af29944af38bdc627f8cd53
* | Merge "Experimental support for changing the video surface/texture on an ↵Andreas Huber2011-04-121-0/+5
|\ \ | | | | | | | | | active mediaplayer"
| * | Experimental support for changing the video surface/texture on an active ↵Andreas Huber2011-03-141-0/+5
| | | | | | | | | | | | | | | | | | mediaplayer Change-Id: Ia7a5126e9311dc1c721ab2aef54bd698151c88cd
* | | Remove legacy hack to only drop frames every other late frameAndreas Huber2011-04-011-1/+0
| | | | | | | | | | | | | | | Change-Id: I197e568d292341c330efb394c41aa9af0e74b081 related-to-bug: 4203195
* | | Delay signaling the end of audio playback until all frames have actually played.Andreas Huber2011-03-221-2/+2
|/ / | | | | | | | | Change-Id: I1fa07358a885a818fd0a5d7da425740f86095e10 related-to-bug: 3404000
* | Fix for bug 3477330Gloria Wang2011-03-101-1/+1
| | | | | | | | | | | | | | This patch fixs a crash bug caused by using a NULL DecryptHandle pointer. Fix by using sp<DecryptHandle> instead. Change-Id: Icbd59858385e8256125a615a3c82656b25319d44
* | An HTTP datasource for stagefright using the chromium code.Andreas Huber2011-03-091-2/+2
|/ | | | | | | | Use of this new datasource is now the default unless overwritten by adb shell setprop media.stagefright.use-chromium false Change-Id: I156a8eb9a1fff1cb537b4aec6cf3e8e6052be81e
* Merge "Alternate patch for late video issue: seek only the video ahead to ↵Andreas Huber2011-02-241-1/+7
|\ | | | | | | the next"
| * Alternate patch for late video issue: seek only the video ahead to the nextAndreas Huber2011-02-241-1/+7
| | | | | | | | | | | | | | syncframe after the current audio media position, leave audio untouched. Change-Id: Ia9fa8e205467e5460c8219afd396bddd09fcfb46 related-to-bug: 3375737
* | Merge "Suppress the logging of URLs when in incognito mode."Andreas Huber2011-02-241-0/+2
|\ \
| * | Suppress the logging of URLs when in incognito mode.Andreas Huber2011-02-241-0/+2
| |/ | | | | | | | | Change-Id: Ib951b495eae15669e160ef54686eab0eeb9b366a related-to-bug: 3336575
* | Bug 3438258 Add SurfaceTexture as MediaPlayer sinkGlenn Kasten2011-02-231-0/+3
|/ | | | | | | | | | | | | | This change enables the use of a SurfaceTexture in place of a Surface as the video sink for an android.media.MediaPlayer. The new API MediaPlayer.setTexture is currently hidden. This includes: - New Java and C++ interfaces - C++ plumbing and implementation (JNI, Binder) - Stagefright AwesomePlayer and NuPlayer use ANativeWindow (either Surface or SurfaceTextureClient) Change-Id: I2b568bee143d9eaf3dfc6cc4533c1bebbd5afc51
* Remove legacy, AwesomePlayer-based http live implementation.Andreas Huber2011-02-161-5/+0
| | | | Change-Id: I455d0faa5612dcd4d2bb6f2b3c7b64a1caaabf69
* Enable cancelling the rtsp connection process early.Andreas Huber2011-02-141-0/+1
| | | | | Change-Id: Ie2059c54541ad8c675944d71b39c772b0f6f04c8 related-to-bug: 3452699
* Start playing (and decoding) audio only after the first video frame has been ↵Andreas Huber2011-02-111-0/+5
| | | | | | | | | | decoded. if there's both audio and video content. This gives the video decoder an opportunity to fill its internal buffer queue at the start of playback. Change-Id: Ib2c95753b430e4e47207953b913b607024a328d7 related-to-bug: 3431702
* Change timestamp handling in RTSP, remove unused, experimental, gtalk supportAndreas Huber2011-02-101-4/+0
| | | | | | | | related-to-bug: 3216447 NTP timestamp handling is now done at a higher layer than before. Change-Id: I9fb23f1335110ec59e534f9aa0fe6f6a6406dd52
* Display a single (still-)frame of video after seeking while paused.Andreas Huber2011-02-071-0/+4
| | | | | Change-Id: Ia78bf29ba6d649043e70c49913725cecdf918c03 related-to-bug: 3392259
* Fix the presentation video resolution when it is different from the actual ↵James Dong2011-01-191-0/+3
| | | | | | | | image resolution of the video. bug - 3352413 Change-Id: I8f08f3896e9fb90f09119dccdb88b82af60f79f2
* integrate videoeditor preview player.Dharmaray Kundargi2011-01-161-0/+1
| | | | Change-Id: I83084f494605c8e6f4d198afa8c36f9e29579667