summaryrefslogtreecommitdiffstats
path: root/media/libmedia
Commit message (Collapse)AuthorAgeFilesLines
* Merge "MediaDrm API update" into jb-mr2-devJeff Tinker2013-04-021-119/+289
|\
| * MediaDrm API updateJeff Tinker2013-04-011-119/+289
| | | | | | | | | | | | | | | | Clarify offline usage of sessions and keys and implement implement CryptoSession to support additional crypto use cases. Change-Id: I5d8000ce7e1dd7eba08969fc50296c9e1456c4fc
* | ToneGenerator: fix overflow in stopToneEric Laurent2013-03-281-2/+2
| | | | | | | | | | | | | | | | | | Fix overflow in tone duration calculation introduced in commit 681be039. Bug 6607077 Change-Id: Ie12f13701345c2b2d3be0b3c4d71cbfa2394a29b
* | ToneGenerator: fix truncated tonesEric Laurent2013-03-271-1/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The first DTMF tone after a silent period is truncated. This is because the phone app starts and stops the tone when the user presses and releases the key. This combined to the fact that the tones use the low latency path and that when the output stream exists standby there is a period of several milliseconds during which no audio is mixed until the stream is "warmed up". The result is that much less audio is generated than the actual key press duration. The fix consists in storing the tone start time and making sure that the number of samples generated corresponds at least to the time difference between the tone start and stop commands. Bug 6607077 Change-Id: I070d20dd8600c25a9e5d5a60c1d3313b7917b00d
* | ToneGenerator: fix stop/destroy concurrencyEric Laurent2013-03-261-5/+10
|/ | | | | | | | | | | | | | | | | | | | | There is a problem if the stopTone() method is called from two different threads (for instance if the destructor is called while stopTone() is waiting for the audio callback to finish). In this case, the second call to stopTone() will not wait for the condition to be signaled and call clearWaveGens() while the callback can still be active, thus causing a crash. There is a similar problem in case of concurrent calls to startTone() and stopTone(). The fix consists in making sure that stopTone() always waits for call back completion or timeout and exits before calling clearWaveGens() if a concurrent start request is detected. Bug 8163071 Change-Id: I9ddb4390407701dcad5bf83660fd9903f0d72268
* ToneGenerator: fix AudioTrack pointer initEric Laurent2013-03-261-1/+1
| | | | | | | | | | The pointer to AudioTrack should be initialized before early return from ToneGenerator constructor because it is tested by the destructor. Bug 8140963 Change-Id: I9a7dfb60ba162b75dfaa5630ab7fc9485afd0074
* Merge "ToneGenerator: optimize silent tone" into jb-mr2-devEric Laurent2013-03-261-1/+5
|\
| * ToneGenerator: optimize silent toneEric Laurent2013-03-251-1/+5
| | | | | | | | | | | | | | | | | | Do not create an AudioTrack and start playback when a silent tone is requested to ToneGenerator. Bug 7946399 Change-Id: Ib9282871a56f7a862af7d1504ce3fbd7c18e34e2
* | Load crypto plugins from additional shared librariesJeff Tinker2013-03-221-1/+1
|/ | | | | | | | | | | | | | Currently crypto plugins are expected to be in libdrmdecrypt.so. When there are multiple plugins supporting different schemes, this approach requires source code integration across vendors which is unmanagable. Also, for integration with MediaDrm where the crypto keys are obtained from a drm server, the MediaCrypto plugin needs to interoperate with the MediaDrm plugin. This change allows {MediaCrypto, MediaDrm} pairs that are logically related to be implemented in a common shared library. Change-Id: I7f6638f29171f91609fc2d944396365568630b56
* Merge "Implementing MediaDrm APIs" into jb-mr2-devJeff Tinker2013-03-203-0/+567
|\
| * Implementing MediaDrm APIsJeff Tinker2013-03-133-0/+567
| | | | | | | | Change-Id: I9ff8eeb7d0c383b5c0c68cd54eb54ce7d2d22fe6
* | remove uses of Surface in favor or IGraphicBufferProducerMathias Agopian2013-03-122-4/+4
|/ | | | Change-Id: I13d7a9553aa335bca790a3a59d389d7533c83d57
* Merge "Add template class SingleStateQueue" into jb-mr2-devGlenn Kasten2013-03-063-0/+140
|\
| * Add template class SingleStateQueueGlenn Kasten2013-03-053-0/+140
| | | | | | | | Change-Id: If7e2bc9b2a216524ee9cbb68682e2634933b4973
* | Merge "Implement Surface input to MediaCodec." into jb-mr2-devAndy McFadden2013-03-051-20/+93
|\ \ | |/ |/|
| * Implement Surface input to MediaCodec.Andy McFadden2013-03-041-20/+93
| | | | | | | | | | | | | | | | | | Also, renamed a CHECK_INTERFACE macro that was clashing with the Binder version. Bug 7991062 Change-Id: If5e6ed0a06d9f67975497676e4b05abe3aa3d6c0
* | Miscellaneous cleanupGlenn Kasten2013-03-041-3/+3
|/ | | | | | | | | | Abbreviation framesReady to fRdy for new systrace. Put inline const on one line. Use local copy of mState in state. Improve logging. Line length 100. Change-Id: I8201c3ce0e53fd464fd33d02544e52c342d40b68
* am c0048178: Merge "Avoid invalid memory access when using extractMetadata()"Marco Nelissen2013-03-011-1/+16
|\ | | | | | | | | * commit 'c0048178a1d312e7e05557ba99becd6a89b9e97a': Avoid invalid memory access when using extractMetadata()
| * Merge "Avoid invalid memory access when using extractMetadata()"Marco Nelissen2013-03-011-1/+16
| |\
| | * Avoid invalid memory access when using extractMetadata()Sangkyu Lee2013-02-281-1/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | BpMediaMetadataRetriever::extractMetadata() returns a string which is returned by readCString() function of the reply parcel object. However, the parcel object is destroyed at the end of the extractMetadata() function, and so the returned pointer is invalid. This patch fixes this problem by storing the metadata string value. Change-Id: I2a2ccba78246175b2845a237679d6cebe881e83b Signed-off-by: Sangkyu Lee <sk82.lee@lge.com>
* | | CameraService and Stagefright: Support AppOpsEino-Ville Talvala2013-02-252-1/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Camera: - Signal to AppOpsService when camera usage starts and stops - Listen to permissions revocations and act on them - Currently just kill camera connection when permissions lost Stagefright: - Pass on client name, UID to camera as needed Bug: 8181262 Change-Id: I9e33c9d05e9daa77dbb2d795045d08eb887ec8f0
* | | Refactoring: Rename SurfaceTextureClient to SurfaceMathias Agopian2013-02-151-1/+1
| | | | | | | | | | | | Change-Id: I4e8a8b20914cb64edc37abe68233fbc9f2b5d830
* | | Add support for querying if a stream is active remotelyJean-Michel Trivi2013-02-112-1/+30
| | | | | | | | | | | | | | | | | | Bug 7485803 Change-Id: I0744374f130fd2dd0714102354cffed2fa915361
* | | Merge "Add media.log service based on NBLog"Glenn Kasten2013-02-012-0/+95
|\ \ \
| * | | Add media.log service based on NBLogGlenn Kasten2013-01-252-0/+95
| | | | | | | | | | | | | | | | Change-Id: Ie45093df6ac9a739d05c8d408fab52a9a8a27e7f
* | | | Plumbing to reflect minor changes in the HDCP module API that allow forAndreas Huber2013-01-302-2/+53
|/ / / | | | | | | | | | | | | | | | support of _decryption_ modules in addition to what we already supported. Change-Id: Ic37b87dc170ba8def3817991d25df798f21e950b
* | | Fix AudioRecordGlenn Kasten2013-01-101-2/+2
| | | | | | | | | | | | | | | Bug: 7965744 Change-Id: Ic024e7fb32f7459b8093c2cf6cd5752aade21ddb
* | | Fix bug in AudioRecord() constructorGlenn Kasten2013-01-041-1/+1
| | | | | | | | | | | | | | | | | | | | | It was calling set() with wrong parameter list. This goes back to commit be916aa1267e2e6b1c148f51d11bcbbc79cb864c from 2010. Change-Id: I2f6917765baf58260bf35e89a2cc59c199734ff6
* | | Merge "Start isolating control block accesses in a proxy"Glenn Kasten2012-12-213-55/+103
|\ \ \
| * | | Start isolating control block accesses in a proxyGlenn Kasten2012-12-123-55/+103
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The proxy object will eventually be the only code that understands the details of the control block. This should make it easier to change the control block in the future. Initial set of control block fields that are isolated: - sample rate - send level - volume Prepare for streaming/static separation by adding a union to the control block for the new fields. Fix bug in handling of max sample rate on a track. It was only checking at re-configuration, not at each mix. Simplify OutputTrack::obtainBuffer. Change-Id: I2249f9d04f73a911a922ad1d7f6197292c74cd92
* | | | Merge "Remove unnecessary parameter"Glenn Kasten2012-12-218-33/+18
|\ \ \ \
| * | | | Remove unnecessary parameterGlenn Kasten2012-12-188-33/+18
| |/ / / | | | | | | | | | | | | | | | | | | | | Just get the parameter on server side Change-Id: I433a63104dbb257e0d862be2ab61847cb36d1c15
* | | | Merge "Fix bug with discarded AudioRecord::read count"Glenn Kasten2012-12-201-1/+2
|\ \ \ \
| * | | | Fix bug with discarded AudioRecord::read countGlenn Kasten2012-12-171-1/+2
| |/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Formerly, if an AudioRecord::read() got a timeout on obtainBuffer() after already successfully transferring some data, then it returned zero. This had the effect of discarding a partial transfer, which resulted in a gap in the audio data delivered to the app. Now if a timeout occurs after a partial transfer, it returns that partial transfer count so that no data is lost. Change-Id: I0d9c2f4e495a400b56ef916a06613ba26537ca97
* | | | Rename ISurfaceTexture and SurfaceTextureAndy McFadden2012-12-185-22/+22
|/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | The C++ class names don't match what the classes do, so rename ISurfaceTexture to IGraphicBufferProducer, and SurfaceTexture to GLConsumer. Bug 7736700 Change-Id: I64520a55f8c09fe6215382ea361c539a9940cba5
* | | Split off the current control block to separate fileGlenn Kasten2012-12-033-176/+197
| | | | | | | | | | | | | | | | | | Prepare for a new implementation of step() etc. Change-Id: I268421976ba577aa1fb5d7015de5441c05861190
* | | Emphasize distinction between streaming and staticGlenn Kasten2012-12-031-9/+15
| | | | | | | | | | | | | | | | | | Update comments and improve error checks to match Change-Id: I7370d6e59a7ef26dfb284a8b058d5ab2e0a42ccf
* | | flush() comments and checksGlenn Kasten2012-12-031-9/+10
| | | | | | | | | | | | | | | | | | | | | flush() is only useful for streaming mode. It is a no-op if track is active or uses a static buffer. Change-Id: I918ac181ffae3d16a0d67d8a7208f4aec61b5bd6
* | | AudioTrack::mute() is unused so remove itGlenn Kasten2012-12-032-23/+3
| | | | | | | | | | | | | | | | | | | | | If ever needed again, it could be implemented on client side by forcing a track volume of 0. Change-Id: I88a9b4f675b6dca2948549414f9ec2c192d29269
* | | Merge "AudioTrack inline short const methods"Glenn Kasten2012-12-031-47/+0
|\ \ \
| * | | AudioTrack inline short const methodsGlenn Kasten2012-11-301-47/+0
| | | | | | | | | | | | | | | | Change-Id: I142917edb454d510bbe545e94e6eaea30b650fae
* | | | Remove last bits of IAudioFlinger::channel_countGlenn Kasten2012-11-301-19/+1
|/ / / | | | | | | | | | Change-Id: I9e13678e0aa32a86eb27367a4aff4b32b8aec8cc
* | | am 2f6107ec: am b64def9a: Merge "[wfd] Support a low(er) power state by ↵Andreas Huber2012-11-291-0/+31
|\ \ \ | |/ / | | | | | | | | | | | | | | | triggering PAUSE/RESUME." into jb-mr1.1-dev * commit '2f6107ec8e67eea1f73b9558a5ad34caec52867f': [wfd] Support a low(er) power state by triggering PAUSE/RESUME.
| * | am b64def9a: Merge "[wfd] Support a low(er) power state by triggering ↵Andreas Huber2012-11-291-0/+31
| |\ \ | | | | | | | | | | | | | | | | | | | | | | | | PAUSE/RESUME." into jb-mr1.1-dev * commit 'b64def9a555bfbf533a2da41ba0189b9842a76fb': [wfd] Support a low(er) power state by triggering PAUSE/RESUME.
| | * | [wfd] Support a low(er) power state by triggering PAUSE/RESUME.Andreas Huber2012-11-291-0/+31
| | | | | | | | | | | | | | | | | | | | Change-Id: Ibe42bfa73816bbfeb7e652d435254d0171b89727 related-to-bug: 7638150
* | | | am 7b7f17dc: am b7c8e918: Add support for HLS playlists of type \'event\'.Andreas Huber2012-11-282-12/+27
|\ \ \ \ | |/ / / | | | | | | | | | | | | * commit '7b7f17dc9b30ff4ecdf0aea9bcfa1c518d4ac1e7': Add support for HLS playlists of type 'event'.
| * | | am b7c8e918: Add support for HLS playlists of type \'event\'.Andreas Huber2012-11-282-12/+27
| |\ \ \ | | |/ / | | | / | | |/ | |/| * commit 'b7c8e91880463ff4981e3e53e98e45d68e2fe374': Add support for HLS playlists of type 'event'.
| | * Add support for HLS playlists of type 'event'.Andreas Huber2012-11-272-12/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | related-to-bug: 6870049 Squashed commit of the following: commit eee2f3ba6bb7335f4e285632726db85645669929 Author: Andreas Huber <andih@google.com> Date: Tue Nov 27 15:02:01 2012 -0800 Make everything a lot less verbose by default. Change-Id: I884d7a7901aa1e7d4ff590f065ca57a79d2af8b3 commit 6bbdb837ed5bd88008e45efb8faf595e4051ba26 Author: Andreas Huber <andih@google.com> Date: Tue Nov 27 14:34:46 2012 -0800 HLS now properly signals media time changes at discontinuities including the start of playback (which may not necessarily be at time 0 if the playlist is of type 'event' and hasn't completed yet). Change-Id: I5ab747d024f9b8d0df72a4e06a12ebb29f62802e commit 1555589832b1878a144a976a643e1af4d61f877c Author: Andreas Huber <andih@google.com> Date: Tue Nov 27 14:32:28 2012 -0800 As part of a time discontinuity, clients of IStreamListener can now signal the corresponding media time after the discontinuity, i.e. the first PTS timestamp following the discontinuity will be considered equivalent to the specified media time and media buffers timestamped accordingly. Change-Id: Id7db7679b7faa6efd6270620ff52e34e884f3e92 commit 5c24c605c073a11c426d025b1e7478fc1ad8365a Author: Andreas Huber <andih@google.com> Date: Tue Nov 27 13:00:56 2012 -0800 NuPlayer sources now expose flags() and can announce that duration may change (increase) dynamically, in which case duration will be polled at 1 second intervals and communicated to the upper layers. Change-Id: I45102909b7a19eed0dda576747e3814d742a0eea commit ecb71de8e281e61971a2cd73e7161a97540bc357 Author: Andreas Huber <andih@google.com> Date: Tue Nov 27 12:57:47 2012 -0800 Stop caching duration in MediaPlayer, duration could increase dynamically. Change-Id: I7bb2f16c0abe49debdf45c776d2266aa069d7791 commit 544aec5823e6d7a3e97e15b6b23546616bcd343e Author: Andreas Huber <andih@google.com> Date: Tue Nov 27 08:46:28 2012 -0800 An attempt to add support for "event" style HLS playlists. Change-Id: I3dfb2e801ecaff8f5d8bdb3a4fca1b18aeeb2c60 Change-Id: I48cf7f65a654d33f2f49ded74f8be22aed9e3b98
| * | AudioTrack::dump null mCblk check testZbigniew Mazur2012-11-231-1/+1
| |/ | | | | | | | | | | | | This fix is protecting AudioTrack::dump from SIGSEGEV when calling dumpsys shell command. Change-Id: I30d136e195a12d6fdad41e14f557b0ad9e59b8a2
* | Merge "Clean up channel count and channel mask"Glenn Kasten2012-11-192-26/+18
|\ \