summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Merge "Change NuMediaExtractor's API to support different kinds of data ↵Andreas Huber2012-04-163-4/+54
|\ | | | | | | sources."
| * Change NuMediaExtractor's API to support different kinds of data sources.Andreas Huber2012-04-133-4/+54
| | | | | | | | | | Change-Id: I080aa2ce28300a72a85751509334dbdc491936c6 related-to-bug: 6276111
* | Fix ALOG_ASSERT in AudioFlingerEric Laurent2012-04-141-2/+2
| | | | | | | | | | | | | | Fix broken ALOG_ASSERT in updateFramesPendingAfterTrim_l() introduced by commit 1c345196. Change-Id: Ie1b2653069283f23ff0367f2628828e37fb0749c
* | Merge "Make mediascanner use filedescriptors instead of paths"Marco Nelissen2012-04-131-1/+14
|\ \
| * | Make mediascanner use filedescriptors instead of pathsMarco Nelissen2012-04-131-1/+14
| |/ | | | | | | | | | | | | | | | | Media scanner needs to open the files now, because media server doesn't have the required permission. b/6330061 Change-Id: I2364d93dcc0530c15676664fc4a8c306351dde08
* | To return default track info even if there's no metadata for aInsun Kang2012-04-131-9/+8
| | | | | | | | | | | | | | | | subtitle track. It would rather return empty data than return NULL data for an existing track. Change-Id: Ie0c18e6851bfbe2c471041589670a3012605b584
* | Merge "Add external timed text source using a passed file descriptor"James Dong2012-04-133-12/+26
|\ \ | |/ |/|
| * Add external timed text source using a passed file descriptorJames Dong2012-04-133-12/+26
| | | | | | | | | | | | | | | | o Also fixed a minor issue where the file length should be of type off64_t rather than size_t o related-to-bug: 5542712 Change-Id: I35fd8ceea0bc75e553b7f4a99932cf58ea560c4e
* | Merge "Add metadata keys to communicate encrypted fragments and associated ↵Andreas Huber2012-04-121-0/+22
|\ \ | | | | | | | | | info."
| * | Add metadata keys to communicate encrypted fragments and associated info.Andreas Huber2012-04-121-0/+22
| | | | | | | | | | | | | | | Change-Id: I90a27c9bbe649328b88144b161c420916673846f related-to-bug: 6275919
* | | Fix the buildJohn Grossman2012-04-121-14/+14
| | | | | | | | | | | | | | | | | | forgot to upload final fixup during merge. sry about that Change-Id: I2ddd2c08d8efa83c0a8d1e378ae4c28686145154
* | | TimedAudio: Track of the number of pending frames.John Grossman2012-04-122-39/+103
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a manual merge from ics-aah > TimedAudio: Track of the number of pending frames. > > Keep track of the number of frames pending in the timed audio queue so > we can implement framesReady in O(1) time instead of O(N). This > change partially addresses bug 6020970; the bug will be completely > addressed once this change has been up-integrated into master. > > Change-Id: I599eb15ea1f6d715b97b30e65214fb6fadd169df > Signed-off-by: John Grossman <johngro@google.com> Change-Id: I6cbbbc3afc8efd066fe94865326ede0c6b3db2bd Signed-off-by: John Grossman <johngro@google.com>
* | | TimedAudio: Fix a cause of audio popping.John Grossman2012-04-122-21/+84
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a manual merge from ics-aah > TimedAudio: Fix a cause of audio popping. > > Fix an issue with buffer lifecycle management which could cause audio > pops on timed outputs. There were two issues at work here. > > 1) During trim operations for the queued timed audio data, buffers > were being trimmed based on their starting PTS instead of when the > chunk of audio data actually ended. This means that if you have a > very large chunk of audio data (larger than the mixer lead time), > then a buffer at the head of the queue could be eligible to be > trimmed before its data had been completely mixed into the output > stream, even though the output stream was fully buffered and in no > danger of underflow. > 2) The implementation of getNextBuffer and releaseBuffer for timed > audio tracks was not keeping anything like a reference to the data > that it handed out to the mixer. The original architecture here > seemed to be expecting a ring buffer design, but timed audio tracks > use a packet based design. Pieces of packets are handed out to the > mixer which then frequently will hold onto that chunk of data > across two mix operations, using the first part of the chunk to > finish a mix buffer and then using the end of the chunk for the > start of the next mix buffer. If the buffer that the mixer is > holding a piece of got trimmed before the start of the next mix > operation, it would return to its heap and could be filled with who > knows what by the time it actually got mixed. On debug builds, > they seem to get zero'ed out as they go back to the heap causing > obvious pops in presentation. > > This change addresses both issues. Trim operations are now based on > ending presentation time for a chunk of audio, not the start. Also, > when the head of the queue is in flight to the mixer, it can no longer > be trimmed immediately, merely flagged for trim by the mixer when the > mixer finally does call releaseBuffer. > > Signed-off-by: John Grossman <johngro@google.com> > Change-Id: Ia1ba08cb9dea35a698723ab2d9bcbf804f1682fe Change-Id: I2c5e2f0375c410f0de075886aac56ff6317b144c Signed-off-by: John Grossman <johngro@google.com>
* | Merge "Make it possible to pass empty opaque data as (NULL, 0) to ICrypto."Andreas Huber2012-04-121-5/+15
|\ \
| * | Make it possible to pass empty opaque data as (NULL, 0) to ICrypto.Andreas Huber2012-04-111-5/+15
| | | | | | | | | | | | | | | Change-Id: Ifee1744890b645e008c9aff3783625a7bfbcff27 related-to-bug: 6275919
* | | Merge "Add support for a new AAC decoder library."Dave Burke2012-04-113-172/+770
|\ \ \ | |/ / |/| |
| * | Add support for a new AAC decoder library.Dave Burke2012-04-023-172/+770
| | | | | | | | | | | | Change-Id: I867bf95f7c20503e55b38d0087ac027647834f37
* | | Merge "Changes to add support for H263-1999/2000 formats for streaming"Andreas Huber2012-04-111-5/+7
|\ \ \
| * | | Changes to add support for H263-1999/2000 formats for streamingAndreas Huber2012-04-111-5/+7
| | | | | | | | | | | | | | | | | | | | | | | | contributed by sureshc@nvidia.com (and subsequently simplified) Change-Id: Ia1c2ac9233f5414ce3e4a70e42e68c1c5c35eb9d
* | | | Merge "Better error logging during meta data retrieval. Fixed the stagefright"Andreas Huber2012-04-113-1/+17
|\ \ \ \
| * | | | Better error logging during meta data retrieval. Fixed the stagefrightAndreas Huber2012-04-113-1/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | commandline tool to open the file to extract thumbnails from itself since mediaserver may not have permission to open files. Change-Id: Iabe16b3248e9bb0f266b0866a8d2ccba2ab7d2a8 related-to-bug: 6321237
* | | | | Merge "audio pre processing: test code for dual mic"Eric Laurent2012-04-112-4/+262
|\ \ \ \ \ | |/ / / / |/| | | |
| * | | | audio pre processing: test code for dual micEric Laurent2012-04-112-4/+262
| |/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Added functional test code to validate effect API for multi mic simplementations. Also fixed warning in AudioFlinger. Change-Id: I07be4d2e4d17791d3626c804ba3e9f87ff26d05a
* | | | Merge "Cache the file size in favour of extraneous seek requests."Andreas Huber2012-04-111-7/+5
|\ \ \ \ | |/ / / |/| | |
| * | | Cache the file size in favour of extraneous seek requests.Andreas Huber2012-04-111-7/+5
| | |/ | |/| | | | | | | | | | Change-Id: Ia922b13179c69749d09cd3fccbd5c30109c28bd7 related-to-bug: 6321952
* | | Merge "Refactored SurfaceMediaSource"Mathias Agopian2012-04-104-845/+207
|\ \ \ | |/ / |/| |
| * | Refactored SurfaceMediaSourceDaniel Lam2012-04-094-845/+207
| | | | | | | | | | | | | | | | | | | | | SurfaceMediaSource takes advantage of BufferQueue to avoid duplicated code. Change-Id: I5e60b8eca21e6c3cf728d363cd8f3786125182d1
* | | Merge "AudioMixer uses downmix effect for multichannel content"Jean-Michel Trivi2012-04-106-17/+277
|\ \ \
| * | | AudioMixer uses downmix effect for multichannel contentJean-Michel Trivi2012-04-096-17/+277
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In the AudioMixer structure associated with each track, add an object that acts as the buffer provider when the track has more than two channels of input in the mixer. This object, DownmixerBufferProvider, gets audio from the actual buffer provider of the track, and applies a downmix effect on it. The downmix effect is created and configured when the track gets created in AudioFlinger, which causes AudioMixer::getTrackName() to be called with the new track's channel mask. It is released when the track is disabled in the mixer. Change-Id: I05281ed5f61bef663a8af7ca7d5ceac3517c82db
* | | | You don't need LOCAL_SHARED_LIBRARIES/LOCAL_STATIC_LIBRARIES to build a ↵Ying Wang2012-04-091-7/+0
|/ / / | | | | | | | | | | | | | | | static library. Change-Id: Ia2c4b4fb3b78cbe0d2856cec073b2c7f9c28d3cb
* | | New API to support submitting encrypted buffers to the decoder.Andreas Huber2012-04-064-29/+113
|/ / | | | | | | | | Change-Id: I69dd60e43078c4211c6123cf6e0ce90e676bf873 related-to-bug: 6275919
* | Merge "Non-blocking audio I/O interface, WIP"Glenn Kasten2012-04-0525-0/+2046
|\ \
| * | Non-blocking audio I/O interface, WIPGlenn Kasten2012-04-0225-0/+2046
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Yet another abstraction similar to AudioTrack::Buffer and AudioBufferProvider, but with support for streaming, non-blocking, and eventually PTS. This is intended to be used as follows: - primary HAL output stream implements a Sink - primary HAL input stream implements a Source - Pipe implements a Sink - PipeReader implements a Source or TimedSource (not shown yet), which supports "read at PTS" - fast AudioTrack on server side will implement a Source using cblk - normal AudioTrack on server side will not be changed initially - fast AudioRecord on server side will implement a Sink using cblk - normal AudioRecord on server side will not be changed initially - fast mixer thread will read from Sources and write to a Sink, or (unlikely) implement a Source and multiple Sinks - Visualization and PCM logger will read from Source or TimedSource - A2DP normal mixer will be connected directly to its output stream and there will be a kind of OutputTrack for duplication that will read from a Sink with non-blocking write fed by the fast mixer. Patch set 3 changes: - Add more implementations of NBAIO interfaces: added SourceAudioBufferProvider, MonoPipe, MonoPipeReader. - Added Format_sampleRate and Format_channelCount. - Extract out the roundUp() method. - Respond to most comments from previous code review. - The new classes are untested. Patch set 4 changes: - Fix bugs in MonoPipe::write() and MonoPipeReader::read() - Fix bug initializing mFrameBitShift too early - renamed roundUp() to roundup() - Fix Android.mk - Add LOG_TAG an LOG_NDEBUG, use ALOG_ASSERT and utils/Log.h instead of assert - Fix build warnings - Move constructor and destructor bodies from .h to .cpp - Line length 100 - Following naming conventions for #include double-include protector macros - Include what you use - More NBAIO logging - MonoPipe write can be blocking Patch set 5 changes: - Address code review comments - Use a static library so unused implementations don't take memory - Comment out libsndfile dependency - Remove debugging LOGV and LOG_NDEBUG Patch set 6 changes (would be 6 at old location, actually 2 at new location): - Address code review comments on patchset 5 - For MonoPipe, allow the full pipe to be used, no need to omit one slot - Don't do atomic releasing stores unless needed Still to do: - I'm not happy with the Pipe class names - Update build/ for new static library? Change-Id: Ie6c61f05ce06b676b033be448a8ef9025a2ffcfd
* | | Merge "Trust the Cues element"Andreas Huber2012-04-051-44/+22
|\ \ \
| * | | Trust the Cues elementJohann2012-04-041-44/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | With the Cue based seeking we will get the closest previous key frame. For audio, use the Cue file to find the Cluster with the video key frame then incrementally look for the audio Block. Change-Id: Idc934cca1286b1bb48ee7577b27903ca488a0610
* | | | Merge "Fix a bug: WOULD_BLOCK handling in TimedTextPlayer."Andreas Huber2012-04-052-1/+25
|\ \ \ \ | |/ / / |/| | |
| * | | Fix a bug: WOULD_BLOCK handling in TimedTextPlayer.Insun Kang2012-04-042-1/+25
| | | | | | | | | | | | | | | | | | | | | | | | Bug: 6234756 Change-Id: I0fae6e5ad8607d472faad7dd680e020f20ac1669
* | | | Send video width and height to mediascannerMarco Nelissen2012-04-041-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | b/5820120 Change-Id: Ia5c48eb1ab15fe3bbe773131148470a06eb2b96d
* | | | Allow AudioTrack to start at nonzero positionMarco Nelissen2012-04-041-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When creating a new AudioTrack (not inheriting one from a previous play), the AudioSink should take the AudioTrack's position as the initial starting point for mBytesWritten, since otherwise NuPlayer's calculations will be off. Normally this position will be 0, but if the test code for 32 bit wraparound in AudioFlinger.cpp is enabled, it might be (much) larger. Change-Id: I1e4f906d529861c3dea996de8afc6dbd491589af
* | | | Merge "frameworks/av/media portion of removing YouTube specific error codes"Jeff Tinker2012-04-041-8/+4
|\ \ \ \
| * | | | frameworks/av/media portion of removing YouTube specific error codesJeff Tinker2012-04-031-8/+4
| | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: Id0d84d3aaaf340cd5287611c9dc7cb8d11466772 related-to-bug: 5883949
* | | | | audio policy: load audio hw modules.Eric Laurent2012-04-045-223/+356
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Audio HW modules are now loaded upon request from audio policy manager according to the configuration in audio_policy.conf. Removed hard coded HW module loading by AudioFlinger at init time. Added methods to IAudioFlinger and AudioPolicyInterface to control the loading of audio HW modules. Added methods to open an output or input stream on a specific hw module. Change-Id: I361b294ece1a9b56b2fb39cc64259dbb73b804f4
* | | | | audio policy: add configuration fileEric Laurent2012-04-036-90/+60
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | removed outputs to stream mapping cache in audio system: the output for a given stream type must always be queried from audio policy manager as the cache is not always updated fast enough by audioflinger callback. removed AudioFlinger::PlaybackThread::setStreamValid() not used anymore if stream to output mapping is not cached. Change-Id: Ieca720c0b292181f81247259c8a44359bc74c66b
* | | | | Merge "fix crash with cues at the beginning of the file"Andreas Huber2012-04-031-9/+4
|\ \ \ \ \
| * | | | | fix crash with cues at the beginning of the fileJohann2012-04-031-9/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | previous implementation tried to be clever about economizing Cue loads. however, files with the cues at the beginning missed the initial load in the seek function and would crash with a null pointer. Change-Id: I49c15d6688909cd13afabf33a54d9f5896aab7cd
* | | | | | New Crypto services talking to the new crypto "HAL".Andreas Huber2012-04-039-310/+412
|/ / / / / | | | | | | | | | | | | | | | | | | | | Change-Id: I69ed31e7a8b4d69d1209d2d516f94d258f072566 related-to-bug: 6275919
* | | | | Merge "Use Cues to seek Matroska files"Andreas Huber2012-04-031-13/+97
|\ \ \ \ \
| * | | | | Use Cues to seek Matroska filesJohann2012-04-021-13/+97
| | |/ / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | On the first seek, load the Cues element. Parse it incrementally until the desired seek point can be located. This allows files to begin playing immediately. However, the Browser still seeks to 0 before playing embedded YouTube files. Because YouTube stores the cues at the end of the file, this causes it to seek, load the cues, then begin playing. It is still better than the previous behavior which blocked until the entire file was loaded. BUG=5921311 Change-Id: Iad2abc64ded3b4e2c2d2c478a969f68450754282
* | | | | Merge "Add a few more APIs to MediaCodecList."Andreas Huber2012-04-034-43/+155
|\ \ \ \ \ | |/ / / / |/| | | |
| * | | | Add a few more APIs to MediaCodecList.Andreas Huber2012-04-024-43/+155
| | | | | | | | | | | | | | | | | | | | Change-Id: I5ac193cd40c82bbcd87c1e55003b78102e8d4674