summaryrefslogtreecommitdiffstats
path: root/media/libstagefright/MediaExtractor.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Squashed commit of A/V changes from CodeAuroraKrishnankutty Kolathappilly2013-06-181-46/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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
* Squashed commit of updates from CodeAuroraMingming Yin2013-02-061-7/+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
* FM Radio: Add support for FM Radio in AndroidStefan Ekenberg2013-01-301-0/+5
| | | | | | | | Creating interface and framework for using FM Radio RX and TX from different vendors. Change-Id: I1a71aed01bfffdddfabf1cdfbfa3707cb1ed016b Signed-off-by: Benn Porscke <benn.porscke@stericsson.com>
* Squashed commit of updates from CodeAuroravivek mehta2012-12-291-5/+51
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-0/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Fragmented mp4 extractorMarco Nelissen2012-09-051-1/+7
| | | | | | | Still experimental. Set property "media.stagefright.use-fragmp4" to true to enable. Change-Id: I210b9c5b5164b5c5eefc31309845ee881ac7db8e
* Fix DRM timer start for Widevine.Fred Gylys-Colwell2012-05-081-1/+2
| | | | | | | | | | The DRM flag should always be true for WVMExtractor. The WVMExtractor always turns on the DRM flag. Before this change, it was reset to false in MediaExtractor::Create. After this change, MediaExtractor::Create will return as soon as the WVMExtractor has been created. Change-Id: I04949d2cd11b912bde61a106ee6b805932041c25 related-to-bug:6261699
* Remove/Disable the AVI extractor.Andreas Huber2012-05-071-3/+0
| | | | | Change-Id: I47dcae710df9c66688a937fb1e648f9b00ca0f65 related-to-bug: 5717242
* am 3f6a7d1e: am d70c64db: Revert the following patches because they may lead ↵James Dong2011-12-141-3/+0
|\ | | | | | | | | | | | | to power regression because SHA/MD5 module is stuck 1. Revert "Fix drm flag setting missed in false drm recognition fix." This reverts commit 9f704f6c46a171357e49c411c83458b9d4565f3b. * commit '3f6a7d1ee961a4544563932b7499535dc1cac1ec': Revert the following patches because they may lead to power regression because SHA/MD5 module is stuck 1. Revert "Fix drm flag setting missed in false drm recognition fix." This reverts commit 9f704f6c46a171357e49c411c83458b9d4565f3b.
| * Revert the following patches because they may lead to power regression ↵James Dong2011-12-141-3/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | because SHA/MD5 module is stuck 1. Revert "Fix drm flag setting missed in false drm recognition fix." This reverts commit 9f704f6c46a171357e49c411c83458b9d4565f3b. 2. Revert "Fixed the false drm recognition." This reverts commit aadbd80b307c817698ce5110ff8e002804d1b230. 3. Revert "Fix drm enumeration order, resolves failure to play forward lock ringtones" This reverts commit a5cbf023e349f2394ba6fc58d73b4375cfec4369. 4. Revert "Fix ANRs due to Widevine DRM plugin sniff taking too long." This reverts commit d0d19db1ca1c289b069db33f4665bcb9386064e9. As a result of the reverting, many ANRs from WV sniffing are back. related-to-bug: 5739618
* | am 406dd5d1: am aadbd80b: Fixed the false drm recognition.James Dong2011-12-121-0/+3
|\ \ | |/ | | | | | | * commit '406dd5d1e48752177753666867403542e1f400ca': Fixed the false drm recognition.
| * Fixed the false drm recognition.James Dong2011-12-081-0/+3
| | | | | | | | | | | | Change-Id: If0198e52ff7bbd7422f219f55a37aae97f7d74f1 related-to-bug: 5732033
| * DO NOT MERGE: Remove the AVI extractor.Andreas Huber2011-12-061-3/+0
| | | | | | | | Change-Id: Ifce6c0d3d87aad2f5cc7f40ad6304936cbfa795e
* | Properly decode ADTS files with ID3 headers.Andreas Huber2011-11-011-1/+1
| | | | | | | | Change-Id: I55247e79ac9cc9547e3e0f6fe048bcbdc9b639d1
* | Rename (IF_)LOGV(_IF) to (IF_)ALOGV(_IF) DO NOT MERGESteve Block2011-10-261-2/+2
|/ | | | | | | See https://android-git.corp.google.com/g/#/c/143865 Bug: 5449033 Change-Id: I0122812ed6ff6f5b59fe4a43ab8bff0577adde0a
* Support for an MPEG2 Program Stream extractor.Andreas Huber2011-09-301-0/+3
| | | | Change-Id: I606d87c278f72b22a5b6d7ee57bce6b02e280d41
* - Retrieve is_drm in MediaMetadataRetriever.Gloria Wang2011-07-011-2/+7
| | | | | | | | | - Add one more column in MediaStore to indicate whether a media file is drm-protected. - Remove old DRM code from Ringtone - Use the new DRM code in RingtoneManager Change-Id: I1311fd1c04841c2cd47df6c901589966cf55a692
* Support for divx files, i.e. mpeg 4 video + mpeg audio layer III in .avi filesAndreas Huber2011-03-301-0/+3
| | | | | Change-Id: I6e1e989c43300ddb0d341e3e9183cdccd69eeae6 related-to-bug: 4192562
* Bug 3447027 Limit previews for DRM videoGlenn Kasten2011-02-281-11/+18
| | | | Change-Id: I5b15cf6a15623cf73f007c59143ab5e3fa5a07e8
* Don't crash when parsing DRM MIME typesGlenn Kasten2011-02-181-5/+12
| | | | Change-Id: I414897c911a6588061ddbb5f05c574e78162dca9
* Add AAC extractorGloria Wang2011-02-151-0/+3
| | | | Change-Id: Iedb08525ac72e65ba98e5c791734da0720a0e3f6
* Bug 1804058 FLAC extractorGlenn Kasten2011-02-031-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | Note: dependent on external/flac for libFLAC Implemented and tested: * FLAC container * mono and stereo * standard sample rates * standard bit depths * sniffer * media scanner * Vorbis comment metadata including album art * random access seeking with "torture test" * web browser integration for audio/flac (not audio/x-flac), but note that most web servers don't correctly report the MIME type Not implemented: * 24-bit to 16-bit dither or noise shaping in AudioFlinger * 96 kHz to 44.1 or 48 kHz downsampling low pass filter in AudioFlinger * replay gain is better done in AudioFlinger * multi-channel, would need AudioFlinger support * Ogg container, does not seem to be very popular yet Change-Id: I300873e8c0cfc2e95403d9adb5064d16a2923f17
* Add support for WV DRMGloria Wang2010-11-051-0/+3
| | | | Change-Id: I0408c5e0a488f112a84337b21b0cd4613a4da461
* Fix for simulator build breakKristian Monsen2010-10-271-1/+1
| | | | | | strrchr returns a const char* in c++ if you give in a const char* Change-Id: I15ac2ae9e1d41d7737193146c526fcbddccae27c
* resolved conflicts for merge of 9084631d to gingerbread-plus-aospGloria Wang2010-10-251-0/+13
|\ | | | | | | Change-Id: Ie2b675d50bfca3f33aee80f1a67c9f03d1f97472
| * DRM framework support:Gloria Wang2010-10-251-0/+13
| | | | | | | | | | | | | | | | | | | | - add a sniffer for DRM files - add DRMSource and DRMExtractor for es_based DRM - add pread in FileSource.cpp for container_based DRM - add native DRM framework API calls in the player for DRM audio/video playback Change-Id: I4b9ef19165c9b4f44ff40eeededb9a665e78a90f
* | Disable 10secs forward/backward seeking for rtsp as seek is a very expensive ↵Andreas Huber2010-10-081-1/+1
| | | | | | | | | | | | | | operation there. Decouple the 10sec forward/backward button functionality from seekbar functionality. Change-Id: I016e79b688774f8ee91ac53216197b5fb9cb41b2 related-to-bug: 3073955
* | Allow sniffers to return a packet of opaque data that the corresponding ↵Andreas Huber2010-08-251-2/+5
| | | | | | | | | | | | | | extractor can take advantage of to not duplicate work already done sniffing. The mp3 extractor takes advantage of this now. Change-Id: Icb77ae3ee95a69c7da25b4d3b8696c0a2d33028a related-to-bug: 2948754
* | Initial checkin of mpeg2 transport stream parser for stagefright.Andreas Huber2010-06-071-0/+3
| | | | | | | | Change-Id: I328ce77404daf7127933b48c9d58ed504fb8fc6f
* | Support for media extraction from .mkv/.mka Matroska files in stagefright.Andreas Huber2010-05-201-0/+4
|/ | | | | Change-Id: I4c26579828ad575523ccf58b0b5cb144046c04ca related-to-bug: 2483739
* A new OggExtractor/VorbisDecoder combo to support approximate seeking.Andreas Huber2010-05-071-3/+3
| | | | | Change-Id: Id5d0c1c8b1adc62896bb5ed951f7b5cfda811e95 related-to-bug: 2654400
* Disable vorbis seek when streaming from localhost.Andreas Huber2010-05-061-0/+4
| | | | | Change-Id: Icda523ae1c89e26482f1c1767fe3a8b9222bb30f related-to-bug: 2654400
* Support for Ogg Vorbis decoding in stagefright.Andreas Huber2010-05-041-0/+3
| | | | | | | Set the magic property media.stagefright.enable-vorbis to true to use the new implementation instead of the standalon vorbis player for file-based playback. HTTP streaming of vorbis content will always go through stagefright. Change-Id: Ie3843a99fadb22372f89540d0f8d65196e0c2af8 related-to-bug: 2654400
* Support the specification of additional HTTP headers in the creation of a ↵Andreas Huber2010-01-281-12/+0
| | | | | | DataSource. related-to-bug: 2393577
* Squashed commit of the following:Andreas Huber2010-01-121-14/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | commit f81bb1dac5ef107bb0d7d5d756fb1ffa532ba2cc Author: Andreas Huber <andih@google.com> Date: Mon Jan 11 14:55:56 2010 -0800 Support for duration metadata, midi and ogg-vorbis files (in mediascanner) commit 0b1385a0dc156ce27985a1ff757c4c142fd7ec39 Author: Andreas Huber <andih@google.com> Date: Mon Jan 11 14:20:45 2010 -0800 Refactor meta data logic. Container specific metadata is now also returned by the MediaExtractor. commit f9818dfac39c96e5fefe8c8295e60580692d5990 Author: Andreas Huber <andih@google.com> Date: Fri Jan 8 14:26:09 2010 -0800 A first pass at supporting metadata through ID3 tags. commit 476e9e253633336ab790f943e2d6c0cd8991d76a Author: Andreas Huber <andih@google.com> Date: Thu Jan 7 15:48:44 2010 -0800 Initial checkin of ID3 (V2.2 and V2.3) parser for use in stagefright. related-to-bug: 2295456
* Squashed commit of the following:Andreas Huber2009-11-231-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | commit 1efc38dc3c33fef57b759002db3965ed07a28cb0 Author: Andreas Huber <andih@google.com> Date: Thu Nov 19 14:36:14 2009 -0800 Sending the SEEK-COMPLETE notification temporarily broke seeking backwards in time behaviour. This is now fixed. Also, get rid of the semi-random delay after posting buffers to surface flinger in favour of delaying the buffer release until the next frame is displayed. commit 51973062eb5ee63fd64b845d72bac517cc3369cf Author: Andreas Huber <andih@google.com> Date: Wed Nov 18 14:01:43 2009 -0800 Fix one more unit test, properly send seek-complete notification only after seek actually completed. commit cb22250b34b1fcfe1bf459723a761fd003950229 Author: Andreas Huber <andih@google.com> Date: Wed Nov 18 12:31:36 2009 -0800 Fix seek-while-paused in AwesomePlayer, revert to using FileSource if MmapSource fails. commit 25eb9241138ddf7bb27ce90657116c5f8a94d880 Author: Andreas Huber <andih@google.com> Date: Wed Nov 18 12:30:40 2009 -0800 Support seeking and duration in AMRExtractor, assuming all frames are the same size. commit 44192f2ebb7ea3bbd3ba5910025692dbc6a08faa Author: Andreas Huber <andih@google.com> Date: Wed Nov 18 10:21:44 2009 -0800 MediaPlayerImpl is dead, long live AwesomePlayer. commit c5b52d3c0674f5dc94db506afbce52401cceddac Author: Andreas Huber <andih@google.com> Date: Wed Nov 18 09:42:23 2009 -0800 New implementation of the stagefright mediaplayer.
* Adds a WAVExtractor for 16-bit signed PCM audio wave files.Andreas Huber2009-11-031-0/+3
|
* New API to instantiate a MediaExtractor given a URI and optional MIME type.Andreas Huber2009-10-231-0/+24
| | | | | | Also DataSources now must provide a method initCheck() and DataSource::reat_at has been renamed to readAt to conform to standard API naming guidelines.
* Moving the individual extractor headers files to the private include directory.Andreas Huber2009-10-231-3/+4
|
* Make stagefright a little less verbose. Fix heap corruption for real.Andreas Huber2009-10-231-1/+1
|
* Media MIME types now have corresponding constants in MediaDefs.h, new codec ↵Andreas Huber2009-09-101-4/+6
| | | | enumeration API.
* Added a .amr file extractor (for AMR-NB and AMR-WB content).Andreas Huber2009-09-091-0/+4
|
* Squashed commit of the following:Andreas Huber2009-08-171-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | commit 5bb012f0065f7ffaaeb4f569d71f0e3a8d6b19c3 Author: Andreas Huber <andih@google.com> Date: Fri Aug 14 10:40:08 2009 -0700 An attempt at fixing export using the qcom encoders. More quirks. commit 0690e76bfa48118a68287ccf1bbfa82febaa620c Author: Andreas Huber <andih@google.com> Date: Fri Aug 14 09:08:28 2009 -0700 Callbacks are now dispatched from a separate thread in OMX. commit c6571a039526df29b6343f9a1971dbc019088c61 Author: Andreas Huber <andih@google.com> Date: Thu Aug 13 15:42:25 2009 -0700 Massive API changes throughout stagefright, smart pointers everywhere. commit 900612af6a0555664d9ba195112cd859491265f4 Author: Andreas Huber <andih@google.com> Date: Thu Aug 13 13:33:12 2009 -0700 OMXCodecs now properly shutdown. commit 96732f05e1b0603dcd1b11f16a23512592eeb4f5 Author: Andreas Huber <andih@google.com> Date: Thu Aug 13 12:04:04 2009 -0700 More work on JPEG decoding using the hardware OMX component. commit 63839a073ac393e3a130434ba467969053b694ad Author: Andreas Huber <andih@google.com> Date: Wed Aug 12 13:13:31 2009 -0700 An attempt to drive the JPEG decoder OMX node. commit 3ac2fe5ab2926eda81b2123610b2434c645294ff Author: Andreas Huber <andih@google.com> Date: Tue Aug 11 16:38:21 2009 -0700 Renamed StateMachine to OMXCodec and put it in its proper place. commit 247da75a96bf8881956413023dd49a84d5b4f5b2 Author: Andreas Huber <andih@google.com> Date: Tue Aug 11 16:06:19 2009 -0700 Statemachine is now a full-fledged MediaSource. commit 045244f6771fa0b9b329495c953afda900a84b71 Author: Andreas Huber <andih@google.com> Date: Fri Aug 7 09:16:54 2009 -0700 Properly setup the input format when exporting to AMR audio. commit 271b984cb32c5cd9e46e3f90ae121f334e4b8da9 Author: Andreas Huber <andih@google.com> Date: Thu Aug 6 09:59:38 2009 -0700 Added some code to test audio encoding to the OMX harness. commit 79af4748e4af33bd66d3fbac606e332a69741cf4 Author: Andreas Huber <andih@google.com> Date: Wed Aug 5 14:36:22 2009 -0700 Merge the old OMXDecoder and the new, shiny, StateMachine code. commit 91cf5dd77a8762bc10a0b2ffce35e3bbeb262231 Author: Andreas Huber <andih@google.com> Date: Tue Aug 4 17:41:43 2009 -0700 A new harness to test OMX node compliance (and quirks).
* Squashed commit of the following:Andreas Huber2009-07-161-0/+54
commit 8d179995654c19d9094e51989dc84ed0deba6e04 Author: Andreas Huber <andih@google.com> Date: Tue Jul 14 16:30:40 2009 -0700 Protect stagefright code with BUILD_WITH_STAGEFRIGHT build-define. commit 99b41acb58c34e8f024c30c833a09fd7b31c4e1f Author: Andreas Huber <andih@google.com> Date: Tue Jul 14 14:06:00 2009 -0700 OMX::list_nodes API, stagefright --list now lists all available OMX components. commit 94a74c5b24aae6d7e446fff83d62ae3a57dc351b Author: Andreas Huber <andih@google.com> Date: Mon Jul 13 16:04:29 2009 -0700 Reenabled "record" commandline application to test encoding, support for h263 codec specific data when writing to .mp4. commit d363dd74f611577567c66d25900d6264c306468c Author: Andreas Huber <andih@google.com> Date: Mon Jul 13 10:59:58 2009 -0700 Make non-socket communication in IOMX the default. commit e89fc82c4fd138c88339887baf72f1d0e67f8660 Author: Andreas Huber <andih@google.com> Date: Mon Jul 13 10:32:33 2009 -0700 The OMX interface now optionally supports communication through the binder only (no sockets involved) commit 28611de11223fba65299787cdd33f7fdbd6a60a3 Author: Andreas Huber <andih@google.com> Date: Fri Jul 10 15:09:13 2009 -0700 Split off the logic to render to a Surface (not ISurface!) into SurfaceRender.{cpp,h} commit c0cfa885faaeb17d3fc5436f6447b61708bd6fe1 Author: Andreas Huber <andih@google.com> Date: Fri Jul 10 12:21:46 2009 -0700 Fix display dimensions vs. decoded dimensions display issues, unfortunately breaks software rendering a bit... commit ae209a2b5d09caed5dd383c910f238926aaa8fc6 Author: Andreas Huber <andih@google.com> Date: Fri Jul 10 09:33:29 2009 -0700 Simple video decoder performance test in "stagefright" commandline tool. commit 59fe7840111d6f46dd3c48f4950146aed962dbd2 Author: Andreas Huber <andih@google.com> Date: Thu Jul 9 16:05:12 2009 -0700 StagefrightPlayer: Properly publish video dimensions by notifying the listener. commit 51b6598f0e47be5e12d77f1d14e111e71c593638 Author: Andreas Huber <andih@google.com> Date: Thu Jul 9 11:38:15 2009 -0700 MediaPlayerInterface::AudioSink now supports the specification of a callback for pull-based audio. commit 31ce53375d748da3e7d30e993ce89dae97fd65ea Author: Andreas Huber <andih@google.com> Date: Wed Jul 8 17:23:37 2009 -0700 Proper support for pushing audio to a specified AudioSink interface. Still not bulletproof: video falls behind frequently. commit a23e312b10631a5d47f5c9831205beac6b84ab36 Author: Andreas Huber <andih@google.com> Date: Wed Jul 8 15:10:13 2009 -0700 IGenesisPlayer and friends are no more, java interface now uses local playback instead of playing inside the media server process. commit 42ee5c06ab5ba1c16f50472b0b26a0526635c73c Author: Andreas Huber <andih@google.com> Date: Wed Jul 8 13:17:03 2009 -0700 MP3 extractor now supports seeking (only fixed bitrate files currently supported) commit 96a790405763bfa738d1c6845c99a9fdf579b66f Author: Andreas Huber <andih@google.com> Date: Tue Jul 7 10:53:54 2009 -0700 Keeping up-to-date with new master-gl changes, removing CameraSource for now, removing unnecessary commandline utilities from the build. commit 6c9dcb7c628c0347154dd7f37913a3a5f04deb99 Author: Andreas Huber <andih@google.com> Date: Mon Jul 6 16:40:02 2009 -0700 Finally take advantage of the fact that the Qcom OMX decoders already place the output buffers into memory accessible by the hardware yuv converter and avoid extra allocations and memcpys in that case. Split of the render logic into subclasses of VideoRenderer. commit e8d46e81cffc15ffb0bdf03f511e4a4497ca7621 Author: Andreas Huber <andih@google.com> Date: Mon Jul 6 12:18:29 2009 -0700 Added a few more cases of valid MPEG4 files to the sniffer, fixed end of stream notifications in MPEG4 files. commit 88bffc5ed4033a607080f8777a1c0ec9e3e079de Author: Andreas Huber <andih@google.com> Date: Thu Jul 2 12:25:03 2009 -0700 MediaPlayerImpl now properly pauses/resumes instead of tearing down the decoder chains and starting back up from the beginning. commit 732aa0a87c7e8d8a10776b275712649954962414 Author: Andreas Huber <andih@google.com> Date: Wed Jul 1 14:58:56 2009 -0700 Remove pthread_mutex_* and pthread_cond_* in favour of Mutex and Condition. commit 669e5944b2fe0542a3b8dba0c441a94503e99fb0 Author: Andreas Huber <andih@google.com> Date: Wed Jul 1 14:43:02 2009 -0700 Proper support for end-of-stream signalling of MediaSources. commit afb038f2dc594c742e554b2d42b86ffc7434e3fc Author: Andreas Huber <andih@google.com> Date: Tue Jun 30 16:48:03 2009 -0700 Support for the "sniffing" of datasources to determine their probable mime type (along with confidence). Slightly refactored the MP3Extractor to share common code with the sniffer. commit ed3644b8bd56807e1db4b32433a93a2467f1f3c5 Author: Andreas Huber <andih@google.com> Date: Fri Jun 26 13:27:52 2009 -0700 I don't think prepare should automatically start the player. commit 11eb9b49dc4a0819d366682817cba68613f4fe12 Author: Andreas Huber <andih@google.com> Date: Fri Jun 26 11:09:22 2009 -0700 Somewhat better timing information implemented in the MP3Extractor. commit cab023a1751735c0ed26c8493498a91d8644c6c9 Author: Andreas Huber <andih@google.com> Date: Thu Jun 25 15:41:56 2009 -0700 Initial checkin for support of mp3 content, extraction and playback. Media extractors now abstracted in MediaExtractor baseclass. commit 40f4146bb3c647e56690dd9b0fa3ffdea60030dc Author: Andreas Huber <andih@google.com> Date: Wed Jun 24 10:41:12 2009 -0700 Make sure we only allocate surface buffers if there is video to be played. commit 7f85e7d92fe81740e102e09905b19354f4ac178e Author: Andreas Huber <andih@google.com> Date: Wed Jun 24 10:19:32 2009 -0700 Clean up a failed merge and implement stub for new API in MediaPlayerBase. commit f0e9d494a4c03402ea7b54891848ca5a50c421b2 Author: Andreas Huber <andih@google.com> Date: Fri Jun 12 15:38:03 2009 -0700 Support yuv420->rgb565 conversion if hardware color conversion is unavailable. commit 87223248b3099cd5261b94169f84cfd1eba56a8f Author: Andreas Huber <andih@google.com> Date: Fri Jun 12 09:35:56 2009 -0700 Remove unimplemented and currently unnecessary blocking option from MediaSource::ReadOptions. commit e07e651f0325892b797f3eb64dbeca0f317afdfd Author: Andreas Huber <andih@google.com> Date: Wed Jun 10 16:26:42 2009 -0700 Enable assertions in HTTPDataSource. commit 0dc97adebea1721156880f4b3d5c70f8d50c53b2 Author: Andreas Huber <andih@google.com> Date: Wed Jun 10 12:34:39 2009 -0700 delete foo. commit 7f05845dda496e7defee284d32509d127e785784 Author: Andreas Huber <andih@google.com> Date: Wed Jun 10 12:34:08 2009 -0700 added foo. commit e432970c51eeec4e5d549bdb3e2d3e48ffb4f0e7 Author: Andreas Huber <andih@google.com> Date: Wed Jun 10 11:44:31 2009 -0700 Make sure to initialize all fields in _all_ constructors... Use a Mutex instead of the raw pthread_mutex_t. commit d6286a6bbca639952491448fa3e609b775a8a814 Author: Andreas Huber <andih@google.com> Date: Tue Jun 9 17:11:49 2009 -0700 send_command is now implemented twice... ugly hack to get both shutdown working correctly and startup as well... playback now "works" on the emulator, too. commit 8d657e004677a7c5dae4479e8519bcaa94c18aad Author: Andreas Huber <andih@google.com> Date: Tue Jun 9 11:58:55 2009 -0700 Instead of erasing codec specific data once it's been output to the omx node, retain the data and just rewind after a stop. commit 279fede6ba35cbc37c35616c53406bf2c9720202 Author: Andreas Huber <andih@google.com> Date: Tue Jun 9 10:58:11 2009 -0700 Various fixes related to play/pause. Decoder now properly frees OMXMediaBuffers, made MemoryDealer destructor protected instead of public to prevent accidental stack-allocation of MemoryDealer objects. commit 0f717f15a6328efd3f34082929cd8ad2351095a9 Author: Andreas Huber <andih@google.com> Date: Tue Jun 9 08:44:12 2009 -0700 Make sure to rewind codec specific data on OMXDecoder::stop and reset AudioPlayer's notion of time mapping. commit 0cfb63e33270daf9b215214608ab383f93a31823 Author: Andreas Huber <andih@google.com> Date: Mon Jun 8 14:25:48 2009 -0700 Massive rename. commit 30ed8f476c4431a5275538958b3e281bd17d5eab Author: Andreas Huber <andih@google.com> Date: Mon Jun 8 13:52:41 2009 -0700 send_command and fill/empty buffer commands must be executed in sequence, send_command is now dispatched over the socket instead of through the binder interface to ensure this. commit b832d04011b2dd8a9632eb7e575bfe1addd1270d Author: Andreas Huber <andih@google.com> Date: Mon Jun 8 10:21:17 2009 -0700 MediaBuffers can now be "clone()", they sit on top of the same data but have their own range and metadata. Once a clone's refcount drops to 0 it decrements the refcount on the original buffer. commit 4e944672808bdf1ed40a69f3f602f93ebf7b4049 Author: Andreas Huber <andih@google.com> Date: Mon Jun 8 10:01:01 2009 -0700 Split MediaBuffer.h into MediaBufferGroup.h and MediaBuffer.h, same with their respective source files. commit ddb7529b4de4828db51432bd405fddd76cfa3b6a Author: Andreas Huber <andih@google.com> Date: Fri Jun 5 16:30:25 2009 -0700 More fudging with A/V sync... commit 1e5a4d8df08237b58c06c6527a33152ae931addf Author: Andreas Huber <andih@google.com> Date: Fri Jun 5 11:54:20 2009 -0700 API cleanup of MediaSource. Got rid of MediaRing as it really doesn't serve a purpose if OMX decoders are used. commit 0953c65232aa9753d17d2e25c5f5526eb810cf13 Author: Andreas Huber <andih@google.com> Date: Thu Jun 4 16:59:19 2009 -0700 Experimental TimedEventQueue and an attempt at a cleaner player implementation using it, OMXDecoder is now a little less verbose. commit 2085b8ea9484a21fa11f94194a27405d413aeecc Author: Andreas Huber <andih@google.com> Date: Thu Jun 4 10:17:01 2009 -0700 Properly bail out of the AV sync loop if the MediaPlayerImpl is stopped. commit 471f143458a8a0d93cb1bf9568c63c3967279dc6 Author: Andreas Huber <andih@google.com> Date: Wed Jun 3 17:32:27 2009 -0700 Now this is much better AV sync, defer seeking the audio source until we know where the video source synced to. commit 4010d371dbe62ce4971e13437776cba32cb0bb3d Author: Andreas Huber <andih@google.com> Date: Wed Jun 3 16:01:07 2009 -0700 Tweaked some of the heuristics in AV sync, OMXDecoder is now a little less verbose, seek to a sync sample at or _after_ the requested position. commit f3d4af1d5a4ac31fa02271b000f6c7ec593f0da9 Author: Andreas Huber <andih@google.com> Date: Wed Jun 3 15:33:58 2009 -0700 Change the TimeSource interface's APIs, prefer microseconds over milliseconds now, changed the way MediaPlayerImpl does AV sync. commit 08bb46fa61d12e852a424698ddb0c90700328f6e Author: Andreas Huber <andih@google.com> Date: Wed Jun 3 11:57:24 2009 -0700 Using framework's Mutex and Condition classes instead of pthread functions, much saner locking in OMXDecoder. commit 4d77b4e09e59bbf8c1af009ae7dc62b10af52fd6 Author: Andreas Huber <andih@google.com> Date: Tue Jun 2 17:12:03 2009 -0700 MediaSources now publish their format. commit 7e429a26c57bf936e1a08035d2d11839f9f00310 Author: Andreas Huber <andih@google.com> Date: Tue Jun 2 16:38:29 2009 -0700 MetaData is now implemented in terms of KeyedVector, MetaData is now reference counted. commit 0fa957aa5c9bcb6ec122ed7b5b97430039be6797 Author: Andreas Huber <andih@google.com> Date: Mon Jun 1 14:39:55 2009 -0700 Sync sample seek support. commit 78a5f090d02e7e6e1a146b29bdb7771eecaa2f86 Author: Andreas Huber <andih@google.com> Date: Mon Jun 1 13:51:11 2009 -0700 Distinguish shutdown from port-flush since one requires buffers to be freed and the other one doesn't. Fixes a problem with seek. commit e57781d3b2c985a74cd8b60e7c8f2d576459d038 Author: Andreas Huber <andih@google.com> Date: Mon Jun 1 10:52:20 2009 -0700 First shot at support for seeking a MediaSource. Sync frames are not properly handled yet. commit 0551cd78fda78bf66877fb26c5a55e5ae23d8367 Author: Andreas Huber <andih@google.com> Date: Thu May 28 16:23:38 2009 -0700 Preliminary support for camera input. commit f8ebafa65d10d5a06944de6b2e2992a33121b857 Author: Andreas Huber <andih@google.com> Date: Thu May 28 12:13:47 2009 -0700 Allow NativeMediaPlayer access to Surface's getISurface() method. commit b1a9fb36eeccd9f49d28c1c64b31fccbd6506eeb Author: Andreas Huber <andih@google.com> Date: Thu May 28 11:38:25 2009 -0700 Header files are now in their own genesis2 hierarchy below frameworks/base/include. commit f49b8b234b8f6ce83148787eef540dd920f04aa6 Author: Andreas Huber <andih@google.com> Date: Thu May 28 11:22:03 2009 -0700 moved MPEG4Writer into libgenesis2. commit 5224254919dac4728677335ea60429fa16f518b4 Author: Andreas Huber <andih@google.com> Date: Thu May 28 11:13:38 2009 -0700 Everything now lives in the android namespace, integrated errors with android errors, renamed MediaPlayer to MediaPlayerImpl. commit f9a9d84f7e0465ef5d1938a068655ba39527cf99 Author: Andreas Huber <andih@google.com> Date: Wed May 27 16:43:11 2009 -0700 Support for getPosition() and getDuration(). commit 3206cc5140bcbc88be039f8d94b954af63e69752 Author: Andreas Huber <andih@google.com> Date: Wed May 27 15:37:45 2009 -0700 Support for {MediaPlayer, GenesisPlayer, Genesis2Player}::isPlaying() commit 9f41b248e0dfce71bbc50f883750cec52ebfd1fe Author: Andreas Huber <andih@google.com> Date: Wed May 27 13:49:50 2009 -0700 Proper disconnection from the OMX service. commit cdcf47a2c31599109ee42277c7fa14af3c600091 Author: Andreas Huber <andih@google.com> Date: Tue May 26 17:27:06 2009 -0700 New player type for the genesis player in libmediaplayerservice. Playing video through an ISurface now. commit 0586af20ac9ae0403dd190bafd290b0f90549723 Author: Andreas Huber <andih@google.com> Date: Fri May 22 15:53:19 2009 -0700 Fix a buffer overflow error by adding padding in case we need to de-frame AVC data. commit eac62fff6ad2ffb7b75c0d4a1b9620d33e93fb9b Author: Andreas Huber <andih@google.com> Date: Fri May 22 13:35:30 2009 -0700 Support for http URIs in MediaPlayer, compensate for AudioTrack latency. commit a7db456e3173d94d6b5e457547e2a6a5f7a8e1cc Author: Andreas Huber <andih@google.com> Date: Fri May 22 11:33:25 2009 -0700 Support for URIs in MediaPlayer class, support for shoutcast streams in MediaPlayer, force shutdown of OMX nodes if they don't shutdown cleanly within a second. commit 1f0268f4f14ad5215668f34e06a420850174d665 Author: Andreas Huber <andih@google.com> Date: Fri May 22 08:33:16 2009 -0700 and foo.txt is gone again. commit 0feca4e0919f345704d78ec78894bac5027bd5ed Author: Andreas Huber <andih@dhcp-172-19-27-148.mtv.corp.google.com> Date: Fri May 22 08:28:49 2009 -0700 added foo.txt commit 9c7d04b35cdc895a2de3602dc46522f608bd205f Author: Andreas Huber <andih@google.com> Date: Fri May 22 08:28:04 2009 -0700 delete foo again commit fec3ca1720992cce51b9a92b86b945da88a6b16c Author: Andreas Huber <andih@google.com> Date: Fri May 22 08:27:45 2009 -0700 weird commit 30a6571302333146e537e537a3a8986245cca87c Author: Andreas Huber <andih@dhcp-172-19-27-148.mtv.corp.google.com> Date: Fri May 22 08:18:55 2009 -0700 reverse test commit dea3d99dd0fe9386e8a3c51954d9d0fe2be09d38 Author: Andreas Huber <andih@google.com> Date: Fri May 22 08:18:22 2009 -0700 test commit a9eeafec6e46072cac41e54ebdbd153cb7ae7518 Author: Andreas Huber <andih@google.com> Date: Thu May 21 16:37:50 2009 -0700 Use the video ring again for now. commit e05ff3d3c1c4f89ef499a2b172138a775fd694e3 Author: Andreas Huber <andih@google.com> Date: Thu May 21 15:42:19 2009 -0700 Export to .mp4 now works for MPEG4 video content. Fixed a bug in the sample table wrt co64 chunks. commit 5c44c540374a4e50c4e8aaab2b7a34aed6e1391e Author: Andreas Huber <andih@google.com> Date: Thu May 21 09:56:11 2009 -0700 Fix the build, all binder-related headers have moved and there's a new library libbinde r to link against now. commit 23e0a24404d16c898c2c6b3c7495ad303844bc71 Author: Andreas Huber <andih@google.com> Date: Thu May 21 08:42:04 2009 -0700 Initial checkin of MPEG4Writer, a class to export media sources into an mpeg4 file. MPEG4/AVC metadata (efss & friends) not currently working. commit 9cd77adb1ac194197364ffad00a0d7215f458e1a Author: Andreas Huber <andih@google.com> Date: Wed May 20 12:31:45 2009 -0700 New shell command to test recording/encoding. Various changes to OMXDecoder to support encoding properly. Now each OMXDecoder needs a dedicated thread on the client side since onEvent responses could block which would cause deadlocks if a node depends on the output of another node for example. commit 5c510fb55ffed7ec25305999ed9b6c1eec48d503 Author: Andreas Huber <andih@google.com> Date: Mon May 18 15:40:06 2009 -0700 Make media decoding the default in the genesis2 commandline app instead of shoutcast playback. commit f6c7a2040b8eb43326621f12c3a936e09b3a70e3 Author: Andreas Huber <andih@google.com> Date: Mon May 18 11:03:04 2009 -0700 The king is dead, long live the kind... Replaced old OMX binder interface with new OMX binder interface/socket hybrid. commit 0d4955eb5df9bfafb576d22f2ed572644d6d69ac Author: Andreas Huber <andih@google.com> Date: Thu May 14 12:39:34 2009 -0700 dynamic negotiation of NAL framing with the MPEG4Source, removed stale code from genesis2 commandline tool. Enable support form PV H264 software decoder. commit 380369f54a8027cbc9349305184d6bf527a24efe Author: Andreas Huber <andih@google.com> Date: Wed May 13 17:32:00 2009 -0700 Explore the option of running everything inside the mediaserver process by encapsulating the player in an IGenesisPlayer binder interface. commit b5cada56b9089a23e0c461352a97dc71e08b424d Author: Andreas Huber <andih@google.com> Date: Wed May 13 12:11:06 2009 -0700 Introduction of TimeSource class, clean shutdown of OMX Nodes. commit 89f6e582e605dcb2149eb67f73fe9345d4b9be2e Author: Andreas Huber <andih@google.com> Date: Tue May 12 17:11:56 2009 -0700 Helper classes MediaRing and MediaPlayer. commit 9aaed8739b4bb941473da367fb88f63224d2f1b7 Author: Andreas Huber <andih@google.com> Date: Tue May 12 14:19:18 2009 -0700 Using mmap to map a file instead of going through FILE* improves performance, who knew? commit ad097a78bbd002c59193ffdc39b64935928426c7 Author: Andreas Huber <andih@google.com> Date: Mon May 11 16:42:42 2009 -0700 Added a performance test, refactored AudioDecoder a little. commit bdd1b80ab3f3ba43e04f1f996e7fa84ed2e2728a Author: Andreas Huber <andih@google.com> Date: Fri May 8 16:19:29 2009 -0700 No more copying the output buffers coming out of the decoder, NAL separation also done in the extractor to avoid copying the data. commit 858955b42c29b8033841a8caaa56c2a449810ef3 Author: Andreas Huber <andih@google.com> Date: Fri May 8 14:02:38 2009 -0700 Change from a model in which the caller specifies the destination buffer to one where the MediaSource returns a buffer. commit 95098b6d4f8bdc37dfb6a109ca58db4d9e414e2d Author: Andreas Huber <andih@google.com> Date: Fri May 8 13:21:45 2009 -0700 Changes to support multiple pieces of codec specific data to the decoder, de-frame nal units from the h.264 stream and insert start codes commit 3941fcf87a48dda81683df727dfb1381f62d9184 Author: Andreas Huber <andih@google.com> Date: Thu May 7 16:37:45 2009 -0700 some refactoring. Most streams play now. commit d3152862840d4dd39068e5197bec8674f3d55dd5 Author: Andreas Huber <andih@google.com> Date: Thu May 7 15:37:32 2009 -0700 Misc. changes to support H264 decoding using the qcom hardware decoder commit d4ecdfe7af36e7468270d1c2cbbdc540efe0351e Author: Andreas Huber <andih@google.com> Date: Thu May 7 09:28:18 2009 -0700 Timestamps are now stored as a fraction, i.e. units and scale, also, PV appears to violate OMX specs by assuming timestamps are in milliseconds instead of microseconds. commit fe6a50943f885e065d4061aa727a54417e9f36db Author: Andreas Huber <andih@google.com> Date: Wed May 6 14:18:27 2009 -0700 Refactored commandline app instantiation of the decoder. commit da1ff2724d0e78e8b360d9a2c34c55dd0e2c0492 Author: Andreas Huber <andih@google.com> Date: Wed May 6 10:41:14 2009 -0700 Proper audio/video synchronization. commit 569ee3a23f600f4b6b87c6178c0223b06e97f201 Author: Andreas Huber <andih@google.com> Date: Wed May 6 09:17:20 2009 -0700 Preliminary support for timestamps. commit e4e302a89207550d8a7170d8c0afbd9c15047c84 Author: Andreas Huber <andih@google.com> Date: Tue May 5 15:13:12 2009 -0700 Another quick hack job to make CachingDataSource thread-safe as well. commit dfb376a58bd7c09aa04e89558186fcfe13fe696c Author: Andreas Huber <andih@google.com> Date: Tue May 5 15:08:14 2009 -0700 Quick rushjob to make FileSource and SampleTable thread safe. commit 02b29e7ebdab1f8b959b6c177ceb3b89d998f375 Author: Andreas Huber <andih@google.com> Date: Mon May 4 17:22:04 2009 -0700 Made video decoding work for mpeg4/h263 and mostly(?) with AVC content. commit 3a57b8ff15e48f5a0af03bf0a99c32e240dbb7ef Author: Andreas Huber <andih@google.com> Date: Mon May 4 09:26:42 2009 -0700 Getting rid of old sample code to drive the OMXNode binder interface. commit 5b046aed0cf524a57ea711bc1e43ea80e57b2cb3 Author: Andreas Huber <andih@google.com> Date: Fri May 1 16:21:11 2009 -0700 Moved files from the commandline utility into the framework, renamed MP3Decoder to AudioDecoder commit 7f3fbba21512a078b732cc52c7bd5ba5acb9a317 Author: Andreas Huber <andih@google.com> Date: Fri May 1 15:56:19 2009 -0700 Fixed buffer ordering and an off-by-1 error in the SampleTable code. Plays all AACs now :) commit 024d06baab8f2c540dde16f7e7a4b6dd57f638c7 Author: Andreas Huber <andih@google.com> Date: Fri May 1 11:52:48 2009 -0700 Some AAC content in .3gp or .mp4 files plays correctly now, other does not. Implemented ESFS parser. commit 1470427866b0d3e0ce6848b4edc01c13a09be289 Author: Andreas Huber <andih@google.com> Date: Thu Apr 30 15:19:31 2009 -0700 Another checkpoint, amr decoding now functional. commit e612d044439f56331b6a2bc4a88622e04d4d42e7 Author: Andreas Huber <andih@google.com> Date: Wed Apr 29 12:11:29 2009 -0700 string wrapper around String8, various fixes, shoutcast now works again. commit 2ea52dfb1a39bf3a223ffc87855e54919e2daff7 Author: Andreas Huber <andih@google.com> Date: Wed Apr 29 11:08:18 2009 -0700 Initial check-in of OMXNode binder interface. commit 7880d2957f74c0d7fba7679431ff5adb3780543b Author: Andreas Huber <andih@google.com> Date: Wed Apr 29 10:05:01 2009 -0700 Initial check-in of both libgenesis2 and the genesis2 commandline tool.