summaryrefslogtreecommitdiffstats
path: root/media
Commit message (Collapse)AuthorAgeFilesLines
* AudioTrack: Set DIRECT track flag for direct pcm outputLeena Winterrowd2015-12-231-1/+1
| | | | | | | | | | | | | While direct output should ideally be abstracted from the AudioTrack, the use of an offload path can leave data stuck in the shared buffer (especially if the clip is short such that the buffer is never entirely filled). To ensure that all data is played out on track stop(), AudioTrack must be aware of the direct output or offload session. Set the DIRECT track flag for track offload use cases to avoid losing data in the shared buffer. CRs-Fixed: 944878 Change-Id: I13f840b5d67be56e03ec65d3bc7d44f1090b48c5
* Fix: "NuPlayerDecoder: add synchronous call pause() to ensure decoder will ↵Luca Stefani2015-12-211-1/+0
| | | | | | | | not request or send out data." * Missing from backport Change-Id: I562d28a4770aec2f9c547c482e79cca49be9dbb9
* stagefright: Fix audio profile retrievedKeith Mok2015-12-211-1/+1
| | | | | | | | | | | | | | | | The aac audio profile retrieved from the AACExtractor is ranged from 0-3. However the corresponding OMX header definition is from 1-4: typedef enum OMX_AUDIO_AACPROFILETYPE{ ... OMX_AUDIO_AACObjectMain = 1, OMX_AUDIO_AACObjectLC, OMX_AUDIO_AACObjectSSR, OMX_AUDIO_AACObjectLTP, ... Change-Id: I1c8932abe19bff918acd5e4d8c2e39eaaac4f6c3
* stagefright: Correctly reassemble HVCC dataSteve Kondik2015-12-211-50/+6
| | | | | | * Remove bogus code and replace with proper reassembly. Change-Id: I16a84eb94e5535fc2c4044875144f8007852a4d2
* stagefright: Deal with output format of other AAC decodersSteve Kondik2015-12-211-4/+7
| | | | | | | * Pass the bits-per-sample value when setting up the raw PCM output in case FFMPEG is decoding as it will produce floats. Change-Id: If5a8cc43a1c41e522324e77871823c9084f92169
* stagefright: Fix AAC profile selectionSteve Kondik2015-12-202-28/+23
| | | | | | | | * Be consistent about AAC profile selection in both Stagefright an our custom plugin. * Also fix duplication in the override code. Change-Id: I9d2724ea8861bc9d7db6a100a2f633f81d243c6c
* libmedia: correct latency computing of AudioRecordMingming Yin2015-12-191-1/+5
| | | | | | | | | | - Originally, audio record latency is calculated by frame buffers allocated for this track, while the actual latency is determined by audio hal. - Compute the track latency by frame count returned from audio hal when in TRANSFER_CALLBACK mode Change-Id: I26e5e47e8cc3720895b962f7aab8a595a54b7c83
* NuPlayerDecoder: add synchronous call pause() to ensure decoder will not ↵Wei Jia2015-12-196-3/+25
| | | | | | | | | | request or send out data. Port of AOSP commit: 3bc667014875aba35102941b3997d242c303aa0d Bug: 25372978 CRs-Fixed: 941002 Change-Id: Id66ab9b9961d5a3b9fb783ae73c27ed1c8054db8
* Revert "NuPlayer: Teardown sequence for pcm offload"Haynes Mathew George2015-12-192-49/+0
| | | | | | | This reverts commit 00208bc4c6d725ea9ce0795a897d42b5a32360c3. CRs-Fixed: 941002 Change-Id: I22c9954fc3ed3207f218dde0c02f7dddc8751df9
* Revert "nuplayer: Perform proper shutdown sequence for offload teardown"Haynes Mathew George2015-12-192-10/+43
| | | | | | | This reverts commit 9944bae1fda19634b04cd4e2b755c3d368405a8b. CRs-Fixed: 941002 Change-Id: Ief7c6a1a8d9fd290da49867b1fef9f6e9e2a51a1
* frameworks/av: fix channelmask and source format for pcm filesAmit Shekhar2015-12-192-1/+2
| | | | | | | | | -Update channel mask from channel count if parser reports channel mask to be 0 -Update source format for each buffer by extending call to setPcmFormat when aggregation is not done Change-Id: I1f4ce07e3e784d85e63be03a69ac1395bfa913e2 CRs-Fixed: 948222
* nuplayer: Do not drop corrupt EOS frameShalaj Jain2015-12-191-8/+6
| | | | | | | Do not drop EOS frame even if DATACORRUPT flag is associated with it. Change-Id: Ib231dd8eb89aa14f824760562fcc371246d7ba9d
* Move overflow checks into SkipCutBufferMarco Nelissen2015-12-183-15/+32
| | | | | | | | | | | | Previously SkipCutBuffer would check its input parameters to ensure they were sane, however since bogus values might be the result of overflows, and overflow protection was recently turned on for libstagefright, the compiler's overflow checks were performed before SkipCutBuffer's, resulting in abort rather than just ignoring the bogus values. Moving the multiplication by framesize into SkipCutBuffer fixes this. Change-Id: I1ad6744bb045a5212701bbf6ee44eecb5f318210
* Fix potential double close in IMediaMetadataRetriever::setDataSourceTaiju Tsuiki2015-12-184-5/+2
| | | | | | | | | | | | | | IMediaMetadataRetriever::setDataSource(fd, offset, length) takes the ownership of |fd| on the direct invocation, and doesn't take the ownership on invocation from Binder. This is inconsintent to other similar methods like IMediaPlayer::setDataSource, and causes potential double close of |fd|. This CL changes the caller and implementations to leave the ownership to make them consistent. Also, fixes a double close in IMediaPlayerService::setDataSource in an error case. Change-Id: Id551a1e725c4392b0fe6b7293871212eb101c0a5
* nuplayer: Fix priority inversionSteve Kondik2015-12-181-1/+1
| | | | | | * Found using "perf sched latency" Change-Id: I358a6f9baf3d52b9ed7f010c06893dbf839e1973
* media: Disable extra debugEthan Chen2015-12-171-3/+0
| | | | Change-Id: I63b78d3cabf981111cf9eb3a2816805db7d105e1
* nuplayer: Error checks for PCM format extensionsSteve Kondik2015-12-172-11/+15
| | | | Change-Id: Ie9a3a8c335611d11c84bf24cb50c73c1644ad381
* stagefright: Fix some aac file cannot be played backKeith Mok2015-12-172-4/+5
| | | | | | | | | The AACExtractor does not pass the aacprofile via kKeyAACAOT and google aac decoder does not support LTP profile. Solve by setting the kKeyAACAOT profile and use ffmpeg when it is aac LTP profile. Change-Id: I79762bd23e3bcc34f2ea56e35686162f1630c06b
* stagefright: Update makefile for Exynos variants.Ethan Chen2015-12-151-8/+9
| | | | Change-Id: I1f6a2797156eba00e8f4cc1a5728b8e274ce965f
* nuplayer: Improve offload format conversionsSteve Kondik2015-12-153-32/+34
| | | | | | | * Annotate source buffers with the audio format * Add support for 32-bit signed PCM offload (zero copy) Change-Id: Id758830784740c0a038452d383c8ec8e3e4593bb
* nuplayer: Avoid crash when codec fails to loadSteve Kondik2015-12-151-3/+0
| | | | | | * Remove unnecessary check condition. Change-Id: I3267a0c13165d74a2ea90333b42f000b51ace98b
* nuplayer: Fix the neverending offloadSteve Kondik2015-12-151-95/+100
| | | | | | | | * This code should have been left inside the conditional * Also fix a misplaced flag which remained set even if opening in offload mode failed Change-Id: Id72c17051db601e37b2289e6d904ce8f75ba6878
* nuplayer: PCM offload fixesSteve Kondik2015-12-142-10/+13
| | | | | | | * Fix PCM offload when passthrough isn't used (OMX decoder) * Fix resume of PCM offload after pause timeout Change-Id: I742eafd6ae8656fb214ba6b81cc63af57590c28c
* nuplayer: Fix audio EOS notifiy on AudioSink not readyXiaoming Yang2015-12-141-0/+12
| | | | | | | | | | Audio EOS won't be notified by renderer if AudioSink is not ready and first buffer itself has EOS. Playback complete won't happen due to missing audio EOS. Hence, audio EOS needs to be handled and notified. Change-Id: I779c7034d1964485c2b064c0179d3cd341af5a5f CRs-Fixed: 801121
* NuPlayer: Don't maintain timeStamp if state is runningSharad Sangle2015-12-141-1/+3
| | | | | | | | | | | | | While offload playback is going on, if user seeks to new position and after playback for some time, pauses till offload tear-down happens then playback resumes with old seek position The book-keeping of seektime for start of playback mStartupSeekTimeUs is also done in running state, it should be done only if current state is paused. Change-Id: I4173a2ee4244bcc6794822dde24c467f0189b84f
* NuPlayerDriver: Maintain the timeStamp after seekSharad Sangle2015-12-141-0/+1
| | | | | | | | | | | | | | While offload playback is going on, if user pause and seeks to new position before offload tear-down, on resume playback starts from old time-stamp Once tear-down happens NuPlayer loses updated time-stamp so while resuming it resumes playback with stale time-stamp. Make sure the updated time-stamp is maintained in NuPlayerDriver wich is used while starting the playback after resume. Change-Id: I3451051f569264b21a43be81b01798fabed0182e
* stagefright: Additional fixes for extended offload supportSteve Kondik2015-12-147-5/+14
| | | | | | | | | | | * Fix compilation with debug enabled * Allow FLAC offload to be enabled independent of QCOM_HARDWARE, tested with the Nexus 5X and is working! * Disable the FLACExtractor if offload is enabled since it can only output decoded PCM. This will force FFMPEG to be used, which does everything we need for FLAC offload Change-Id: I7d71c153a6a6ea7df8e32bc73f5cbe9f51cdcf64
* stagefright: Check vendor list for allowed encodersSteve Kondik2015-12-131-1/+2
| | | | Change-Id: Ie9ff0d275fc5f853c18fe4d5e590443d0c316e99
* stagefright: Finish "Port AOSP fixes"Steve Kondik2015-12-132-5/+39
| | | | | | * Fill in stubs for CAF commit bd019775a921ae9165e924e4d37bc838a7ef5781 Change-Id: Ia97d965d121aa3c3c2fc0ab8b164244416852ca5
* stagefright: Finish support for HEVC muxingSteve Kondik2015-12-134-24/+613
| | | | | | * Forward-port CAF L-MR1 code to fill in stubs. Change-Id: I6c07e803ad4fe3ef5286f61667b5ca11380db984
* stagefright: Add support for FLAC offloadingSteve Kondik2015-12-136-7/+44
| | | | | | | * New Qualcomm DSPs support FLAC decoding, but the offload code is stubbed out in M. Unstub it from what used to be open source. Change-Id: I03c129c42ebc6909a3392e42a7f96791c8fabd28
* stagefright: Resurrect PCM offloadSteve Kondik2015-12-1311-149/+693
| | | | | | | | | | | | | * Forward-port the open-source code from L which was moved to closed-source in M. This is being done out of necessity- the architecture chosen by Qualcomm is not optimal and doesn't work well with a singular codebase which attempts to service a large number of devices. * This patch brings in the code to support PCM offload (AudioFlinger bypass). This allows for playback of high resolution clips without decimation stages, and enables reduced power consumption for audio pipelines which take advantage of the Hexagon DSP (effects). Change-Id: I0ef15fc3df538ab723f3c12ce0ed71d0e607c99e
* stagefright: Fix a few format strings on 64-bitSteve Kondik2015-12-132-2/+3
| | | | Change-Id: I25708df616fe53d709b80c65ddecbdddef303124
* StagefrightRecorder: Add support for WAVE recordingMichael Bestas2015-12-124-0/+344
| | | | | | * Forward port the cm-12.1 code Change-Id: I77373a236108507b8fa76cc8d3016de36aade301
* stagefright: Fix videot thumbnail retrival for wmvKeith Mok2015-12-092-0/+44
| | | | | | | | | | | | | | We override some h/w decoders in video configure since we know some h/w decoder does not support certain types of video. e.g. WMV7/8. But we did not do that when application retrieving video frame for thumbnail causing video frame retrieved is corrupted. Fix it by calling FFMPEGSoftCodec::overrideComponentName when we retrieve a single video frame for thumbnail purpose. Change-Id: I334698c331dfd3d49bb5d8b8e9c1fe381b304179
* stagefright: Override to use ffmpeg for decoding wmv1Keith Mok2015-12-091-1/+1
| | | | | | | | | | Qcom hardware vc1 decoder cannot decode wmv1 (version7) correctly. Currently it only skip wmv2 (version8) and force to use ffmpeg sw decoder. Change to use default decoder only if wmv version is equals to 9 (vc1) Change-Id: Iadb0ecca252ee8a1dfb635ee44d1a88daa9c7a54
* libstagefright: Fix for testExceptionManikanta Kanamarlapudi2015-12-091-9/+13
| | | | | | | | Handled decoder configure call for encoder component and vice-versa in fallback logic CRs-Fixed: 891538 Change-Id: Ibb0d2da829a0e0f907ad8265836bac0466de1b4d
* stagefright: Add OMX.ffmpeg. checkingKeith Mok2015-12-073-2/+4
| | | | | | | Port from L, add "OMX.ffmpeg." checking in additional to "OMX.google." for software codec Change-Id: I3ef70a965573d7c2818236a70d4f99b6b7873468
* Merge tag 'android-6.0.1_r3' of ↵Steve Kondik2015-12-0714-266/+198
|\ | | | | | | | | | | | | | | https://android.googlesource.com/platform/frameworks/av into cm-13.0 Android 6.0.1 release 3 Change-Id: I2f2a1fe1b58c828e8341556996211562d6e195ab
| * ALooper::awaitResponse gets reply and returns immediately if the looper is ↵Ronghua Wu2015-11-021-16/+4
| | | | | | | | | | | | | | stopped. Bug: 25088488 Change-Id: Id33d5d75f1173db52d00f4ff71d4c2c4f27f72f5
| * Merge "Workaround for busy wait bug" into mnc-dr-devGlenn Kasten2015-10-221-1/+2
| |\
| | * Workaround for busy wait bugGlenn Kasten2015-10-221-1/+2
| | | | | | | | | | | | | | | | | | | | | Underlying bug 25195759 is not yet fixed. Bug: 24263351 Change-Id: I04b644246640054d38c8de79e0eb80fcbfef0e48
| * | Merge "Allow ALooper::awaitResponse to return immediately if the looper is ↵Ronghua Wu2015-10-222-3/+30
| |\ \ | | | | | | | | | | | | stopped." into mnc-dr-dev
| | * | Allow ALooper::awaitResponse to return immediately if the looper is stopped.Ronghua Wu2015-10-222-3/+30
| | |/ | | | | | | | | | | | | Bug: 25088488 Change-Id: I63e69886a8e9cffcaad675ca1a5642c0abf3b466
| * | Merge "GenericSource: reset mDecryptHandle when mDataSource is cleared." ↵Wei Jia2015-10-221-0/+1
| |\ \ | | | | | | | | | | | | into mnc-dr-dev
| | * | GenericSource: reset mDecryptHandle when mDataSource is cleared.Wei Jia2015-10-221-0/+1
| | | | | | | | | | | | | | | | | | | | Bug: 25070434 Change-Id: Ib0eb6a419683a0e686a4f63b82e9300cb1f69484
| * | | Merge "Fix offset adjustment when skipping off-spec meta chunk" into mnc-dr-devMarco Nelissen2015-10-221-3/+3
| |\ \ \ | | |/ / | |/| |
| | * | Fix offset adjustment when skipping off-spec meta chunkMarco Nelissen2015-10-221-3/+3
| | |/ | | | | | | | | | | | | Bug: 25172843 Change-Id: Ibbfe4369176f2a367eab5a39fd742f425b017288
| * | Merge "GenericSource: reset mDrmManagerClient when mDataSource is cleared." ↵Wei Jia2015-10-211-0/+1
| |\ \ | | |/ | |/| | | | into mnc-dr-dev
| | * GenericSource: reset mDrmManagerClient when mDataSource is cleared.Wei Jia2015-10-191-0/+1
| | | | | | | | | | | | | | | Bug: 25070434 Change-Id: Iade3472c496ac42456e42db35e402f7b66416f5b