summaryrefslogtreecommitdiffstats
path: root/media/libmediaplayerservice
Commit message (Collapse)AuthorAgeFilesLines
* Merge tag 'android-6.0.1_r72' into HEADJessica Wagantall2016-10-062-0/+11
|\ | | | | | | | | | | Android 6.0.1 Release 72 (M4B30X) Change-Id: I617426a3fbf7a8d013c5be838ad4c80a00b61a5f
| * MediaPlayerService: allow next player to be NULLWei Jia2016-08-301-1/+1
| | | | | | | | | | | | | | Bug: 31155917 Bug: 30204103 Change-Id: I9a2a59ddb900fc942e7c19b31b53a110d790474c (cherry picked from commit 282841278723166e74039329ca56e444ad472daf)
| * MediaPlayerService: avoid invalid static castRobert Shih2016-08-262-0/+11
| | | | | | | | | | | | Bug: 30204103 Change-Id: Ie0dd3568a375f1e9fed8615ad3d85184bcc99028 (cherry picked from commit ee0a0e39acdcf8f97e0d6945c31ff36a06a36e9d)
| * Add bound checks to utf16_to_utf8Sergio Giro2016-08-161-1/+2
| | | | | | | | | | | | Bug: 29250543 Change-Id: I3518416e89ed901021970958fb6005fd69129f7c (cherry picked from commit 1d3f4278b2666d1a145af2f54782c993aa07d1d9)
* | Merge tag 'android-6.0.1_r66' into HEADJessica Wagantall2016-09-071-1/+2
|\ \ | | | | | | | | | | | | | | | Android 6.0.1 release 66 Change-Id: I1d3eb6b66b7482149fe93647c278065fa46dc518
| * | Add bound checks to utf16_to_utf8Sergio Giro2016-07-211-1/+2
| | | | | | | | | | | | | | | | | | Bug: 29250543 Change-Id: I3518416e89ed901021970958fb6005fd69129f7c (cherry picked from commit 1d3f4278b2666d1a145af2f54782c993aa07d1d9)
* | | Merge remote-tracking branch 'remotes/android-6.0.1_r52' into HEADJessica Wagantall2016-07-072-14/+21
|\ \ \ | |/ / | | | | | | | | | | | | Ticket: CYNGNOS-3020 Change-Id: I7e8d69c5f7041b66893ea643c4bc19c3b7bcdda5
| * | Resolve a merge issue between lmp and lmp-mr1+Dave Weinstein2016-06-141-1/+1
| |/ | | | | | | | | | | Change-Id: I336cb003fb7f50fd7d95c30ca47e45530a7ad503 (cherry picked from commit 33f6da1092834f1e4be199cfa3b6310d66b521c0) (cherry picked from commit bb3a0338b58fafb01ac5b34efc450b80747e71e4)
| * MPEG4Extractor: ensure kKeyTrackID exists before creating an MPEG4Source as ↵Wei Jia2016-05-271-14/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | track. GenericSource: return error when no track exists. SampleIterator: make sure mSamplesPerChunk is not zero before using it as divisor. Bug: 21657957 Bug: 23705695 Bug: 22802344 Bug: 28799341 Change-Id: I7664992ade90b935d3f255dcd43ecc2898f30b04 (cherry picked from commit 0386c91b8a910a134e5898ffa924c1b6c7560b13)
| * Clear unused pointer field when sending across binderMarco Nelissen2016-05-271-0/+1
| | | | | | | | | | Bug: 28377502 Change-Id: Iad5ebfb0a9ef89f09755bb332579dbd3534f9c98
* | Revert "nuplayer: Fix audio EOS notifiy on AudioSink not ready"Keith Mok2016-05-121-12/+0
| | | | | | | | | | | | | | | | | | | | | | | | This patch is buggy, and causing notifyConsume not called when the buffer is erased, causing audio discontinous cannot resume properly. This patch is not in 8994 CAF also. FEIJ-276 This reverts commit dc5f0eb0bb08885f63a97a111b02e234efc5c413. Change-Id: Idcb5ec9a419a979afe170d3a518ee7696a6fac6c
* | Merge tag 'android-6.0.1_r43' into HEADJessica Wagantall2016-05-031-1/+10
|\ \ | |/ | | | | | | | | | | Ticket: CYNGNOS-2373 Android 6.0.1 release 43 (MOB30J) Change-Id: Ie0ab546349bd8a7eed51c839fba28b809e433fd4
| * NuPlayerStreamListener: NULL and bounds check before memcpyRobert Shih2016-03-251-1/+10
| | | | | | | | | | Bug: 27533704 Change-Id: I992a7709b92b1cbc3114c97bec48a3fc5b22ba6e
* | nuplayer: Seek to valid position in setVideoSurfaceManikanta Kanamarlapudi2016-04-131-4/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - If flush is called on both A/V tracks and video decoder is not yet created, In offload case the first audio buffer will get flush and audio playback starts from timestamp of second buffer, where as video playback starts from zero leads to AV sync issue in start and cause framedrops. - Call seek to current position to align the Audio and Video tracks. Seek to zero if playback has not yet started. Change-Id: I4f75d0aa908714ad292f348fa8bf7aa5f837f8d7
* | video: Use boot clock for recording start timeSurajit Podder2016-04-131-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | Camera HAL3 uses boot time for buffer timestamp, rather than system monotonic time. This leads to issues as framework uses system monotonic time as reference start time for timestamp adjustment. Add change to use boot time for reference start time. CRs-Fixed: 946735 Change-Id: Id0af9c8aed1a983095275ac03f7f59abc31594cc
* | nuplayer: ignore openAudioSink while waiting for teardown completionDhananjay Kumar2016-04-133-6/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - AudioSink is reopened on AudioTearDown event as well as on decoder output format change. These events are from different contexts, independent of each other and can occur concurrently, doing set of thread-unsafe operations on audioSink, which sometimes may result in fatal error. - Any request to openSink, after teardown event is received but before its completed, is redundant since once teardown is completed sink is anyway going to be opened again. Also ignoring sink reopen while in teardown would avoid concurrent processing of thread-unsafe operations on audioSink. - Update nuplayer to prevent reopening of sink while teardown is still going on. CRs-Fixed: 978013 Change-Id: Ieb3825f133c2099e07d6e92ef101dd5156af8a20
* | nuplayer: update anchor time for offload usecaseSharad Sangle2016-04-131-0/+1
| | | | | | | | | | | | | | | | | | | | | | In non-offload usecase, mAnchorTmeMediaUs is updated for every audio FillBufferDone. Added the same logic for offload case, otherwise video updates max media duration as ZERO, for clips which have small audio data, and all the buffers are sent to DSP before first video buffer is processed at NuPlayerRenderer level Change-Id: Ib6e0f251207c87ad1525041d07187cef91f4dda5
* | frameworks/av: Fix LOG_NDEBUG compilation issuesLeena Winterrowd2016-04-131-0/+2
| | | | | | | | | | | | Fix compilation issues that appear when enabling LOG_NDEBUG. Change-Id: I87e9e5ac66157759dd6f521fab0dd346089a011a
* | nuplayer: Reverting GenericSource changes done for STA integrationManikanta Sivapala2016-04-131-1/+1
| | | | | | | | | | | | - Remove Virtual for SetDataSource() Change-Id: Ie8502297376f6663a38f95195ff8329b7a42dcb9
* | rtsp: keep video damaged access unit to enhance fault toleranceLi Sun2016-04-132-3/+33
| | | | | | | | | | | | | | | | | | | | | | Make RTSPSource to accept some video damaged access units to enhance fault tolerance. Disable this change as default. add the property to enable it such as: "adb shell setprop rtsp.video.keep-damaged-au video/3gpp" for H263 "adb shell setprop rtsp.video.keep-damaged-au video/avc" for H264 Change-Id: I3b7fb4b098aba5daf149cf36dab7e9380c6d2f69
* | libstagefright: Allow for MPEG4Writer extensionDeva Ramasubramanian2016-04-131-1/+1
| | | | | | | | | | | | Defer MPEG4 muxer creation to AVFactory. Change-Id: If0918be77ab7f8d82c78203f371df789e3cc29b8
* | NuPlayer: extend onResume funtionSidipotu Ashok2016-04-131-1/+1
| | | | | | | | | | | | | | - Extend onResume in-order to implement the Audio Voice Concurrency changes. Change-Id: I2b02f644df23f35b6d37d07a99d74ad56470b142
* | audio: Update anchor time only when sink start is successfulPreetam Singh Ranawat2016-04-031-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | - During offload (WH) to non-offload fallback (BT), anchor time is getting updated incorrectly with offload renderer position when it tries to start sink using offload mode only. - update anchor time post resume only when sink is started successfully. Change-Id: I2c2992afa90506e08389226964b0bd5a5be07529 CRs-Fixed: 978596
* | Avoid parsing CC SEI payload beyond buffer endPatrik2 Carlsson2016-03-221-0/+6
| | | | | | | | | | | | | | Break CC SEI parsing when payload size exceeds buffer size to avoid a CHECK that have been seen in MTBF statistics. Change-Id: Ifd97648678a935ac815dd616301d46f9bf583838
* | Merge branch 'dr15' into cm-13.0Steve Kondik2016-03-121-2/+7
|\ \
| * \ Merge tag 'android-6.0.1_r22' of ↵Steve Kondik2016-03-101-2/+7
| |\ \ | | | | | | | | | | | | | | | | | | | | https://android.googlesource.com/platform/frameworks/av into cm-13.0 Android 6.0.1 release 22
| | * | fix deadlock in MediaPlayerServiceErik Wolsheimer2015-10-301-2/+7
| | |/ | | | | | | | | | | | | | | | BUG: 25263909 Change-Id: I3f08c02a851b67ab269e9aef7b2fb17eda09ea5d
* | | nuplayer: Allow devices to force a flush when surface changesChristopher R. Palmer2016-03-112-1/+8
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This fixes some playback problems on the Zenfone2 (running on 5.0 based blobs). The problems are easily reproduced by viewing a video in Chrome and then switching to full-screen mode. The change in surface causes the log to get flooded with messages like: dc_device_post: Buffer ID=14460 not imported by D until Android crashes. With this change, it ends up correctly mapping the surfaces after the flush fixing the problem. The code that is being #ifdef'ed out was added in M in commit commit a81c6229638a4db56752dd77a6610e0f0971e877 Author: Lajos Molnar <lajos@google.com> Date: Fri Jul 10 19:17:45 2015 -0700 nuplayer: use codec->setSurface when possible to avoid seeking Bug: 22414719 Change-Id: I0442e12af960f86a0fc090b4a469c62ba638a1a0 and it appears that our blobs simply cannot handle this optimization and therefore we need a means by which to disable it. Change-Id: I105d647e724f5b63ef5cb0852481ecd2990c2d5e
* | Nuplayer: Flush the decoder if seamless format change is supportedLi Sun2016-03-083-5/+34
| | | | | | | | | | | | | | | | | | | | | | | | In smooth streaming enabled case, flush the decoder if seamless format change is supported. Otherwise,ramdomly video frames with old resolution are queued to the new surface and results in green frames. Calling flush ensures that all the old video frames are cleared. Change-Id: Ia020a01fd0eaa8af8e48b6edb526a3f53875b068
* | stagefright: Support audio in slow motionKeith Mok2016-03-071-0/+24
| | | | | | | | | | | | | | | | | | | | | | We need to query AVUtil for slow motion recording to support audio in slow motion recording instead of using mCaptureFps and mCaptureFpsEnable, since qcom camera1 HAL don't call setCaptureRate for slow motion recording. CYNGNOS-2196 Change-Id: I7b75ab44499ed13cb1e4e6f527103ec0f09ffcc8
* | audio: omx encoder isn't expected for raw recordingWeiyin Jiang2016-02-251-8/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Raw recording doesn't require any encoder, so no OMX encoder will be created and audio source will be directly used as media source. UNKNOWN_ERROR error will be threwn if call AudioSource::start() continuously, so we should avoid omx encoder operations if it's not created for raw recording. CYNGNOS-1679 Change-Id: Ib38c4e42b7667e9bf882cddb15422d0dd598b60e CRs-Fixed: 752419 (cherry picked from commit 587267232a2829936510bbe46591863403782d1a)
* | audio: Update anchor time for offload playback post resumePreetam Singh Ranawat2016-01-181-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | -AV sync is lost after multiple pasue/resume operatins. -Renderer does not update anchor time post resume and it may lead to AV sync loss after multiple pause/resume in offload playback case. -Get renderer position and update anchor time post resume for offload audio Change-Id: I2d9ba21c0e9b193ec77213de12229407cbf8dfd6
* | nuplayer: looping playback only if it was runningWeiyin Jiang2016-01-181-5/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Audio buffer filling in renderer is still happening, though pause was issued. As a result, EOS was reported irrespective of renderer state. If nuplayer driver receives playback complete after stopped, it will again be activated, which appears stop is not taking effect. Add a check for driver state to allow looping only if it was in running state. Change-Id: Ic9f8eac635a774cd805b3978fab640d73ae35744 CRs-Fixed: 958311
* | stagefright: Fix crash on mediaserverKeith Mok2016-01-061-1/+3
| | | | | | | | | | | | | | CameraSource can be null when we do setupCustomVideoEncoderParams, add a null pointer checking for it. Change-Id: Ie28018e67d623b03bb7c3c7dbc8a92669158b84b
* | stagefright: Forward-port HFR and HSR supportSteve Kondik2016-01-052-4/+13
| | | | | | | | | | | | * CAF commit bd42a7ac3a60c0d8a079b4567484c9b006bac8ad upstream Change-Id: I457ccab603647f3139ea2199a544f64ac3d1a214
* | nuplayer: Enable PCM offload for any sourceSteve Kondik2015-12-291-4/+10
| | | | | | | | | | | | | | | | | | * Use the raw PCM format to perform the early open of the audio sink. This ensures that the renderer will do the same. * Fill in stubs for timestamp and position calculation. This fixes underruns and other issues. Change-Id: I8d761e523194cc12f387b4b2aa1594536e56da01
* | nuplayer: Pass along the sniffed metadata from GenericSourceSteve Kondik2015-12-281-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * When the extended sniffer detects a file type that only it can handle, it will set a flag in the metadata. In some cases, an extractor exists in Android already for the filetype however it may be known to fail or we may want different behavior. * This flag is checked in MediaExtractor, but GenericSource does a little dance in order to stack DataSources for DRM and was throwing out this metadata (it's not really used by AOSP), so the desired behavior was not seen for some cases. * Add a new optional argument when creating the MediaExtractor to pass in the metadata from the original sniff so that the extended extractor is used where necessary for streaming formats. * This fixes FLAC offload with Tidal. Change-Id: I7d6b875346ce63b60cd3c37572b779665bfe217c
* | NuPlayer: Avoid one more assertionHaynes Mathew George2015-12-231-1/+11
| | | | | | | | | | | | | | | | | | | | b/25372978 tracks an assertion in Renderer when the size of the buffer to be written is not a multiple of audio sink framesize. Until resolved, avoid assertion and notify an error back to the player CRs-Fixed: 941002 Change-Id: Id54b357dcbf7afe90e2290665392275d6dd5eaef
* | 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
* | 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-191-0/+1
| | | | | | | | | | | | | | | | | | -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
* | Fix potential double close in IMediaMetadataRetriever::setDataSourceTaiju Tsuiki2015-12-182-4/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | nuplayer: Error checks for PCM format extensionsSteve Kondik2015-12-171-1/+1
| | | | | | | | Change-Id: Ie9a3a8c335611d11c84bf24cb50c73c1644ad381
* | nuplayer: Improve offload format conversionsSteve Kondik2015-12-152-3/+10
| | | | | | | | | | | | | | * 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