Record and playback objects (resp AudioRecord and AudioTrack)
are created using a channel mask, but this information is lost
in the mixer because only the channel count is known to
AudioFlinger. A channel count can always be derived from a
channel mask.
The change consists in:
- disambiguiting variable names for channel masks and counts
- passing the mask information from the client to AudioFlinger
and the mixer.
- when using the DIRECT ouput, only verifying the format of
the track is compatible with the output's for PCM.
Change-Id: I50d87bfb7d7afcabdf5f12d4ab75ef3a54132c0e
through listener during video playback.
- Add OnTimedTextListener in the MediaPlayer
For feature request 800939.
Change-Id: I65072c27acb4c0037109a72be38c73e9f667420f
Instead of returning 0-filled buffers after EOS from AudioTrack we do this
work in AudioOutput instead. That way the EOS signal (0 frames returned)
is preserved in AudioCache which otherwise would lead to a heap size overflow
filling everything with zeroes.
Change-Id: I7e07429ba887957a4340dd4b21eef4bba76248cd
related-to-bug: 3514073
this is the first step in unifying surfacetexture and surface.
for this reason the header files were not moved, as most of them
will eventually go away.
NOTE: currently we keep libsurfaceflinger_client.so as an empty
library to workaround prebuilt binaries wrongly linking against
it.
Change-Id: I130f0de2428e8579033dc41394d093f4e1431a00
The problem is that when switching from A2DP to device speakers or headset,
The AudioTrack binder interface to AudioFlinger must be destroyed and restored
to accomodate new buffer size requirements. Current AudioTrack implementation
did not restore properly the PCM buffer write index which caused a mismatch between
the written frame count in the mediaplayer renderer and the AudioTrack. The renderer
could then believe the AudioTrack buffer was full and stop writing data preventing the
AudioTrack to reach a bufffer full condition and resume playback.
The rendered was also modified to refresh the AudioTrack frame count (buffer size)
inside the write loop in NuPlayer::Renderer::onDrainAudioQueue() as this count can change
from one write to the next.
Also modified AudioTrack::obtainBuffer() to check for track invalidated status before
querying for available space in the buffer. This avoids writing to the old track's
buffer until full before detecting the invalidated condition and create a new track.
Change-Id: I16a857e464e466880847f52f640820aa271539ad
- To track the currently used audio device
- The devices are separated as speaker and other audio devices
- Provide the collected data to battery application through pullBatteryData()
Change-Id: I374c755266b5ac6b1c6c630400f4daf901ea8acc
This change enables the use of a SurfaceTexture in place of a Surface
as the video sink for an android.media.MediaPlayer. The new API
MediaPlayer.setTexture is currently hidden.
This includes:
- New Java and C++ interfaces
- C++ plumbing and implementation (JNI, Binder)
- Stagefright AwesomePlayer and NuPlayer use ANativeWindow
(either Surface or SurfaceTextureClient)
Change-Id: I2b568bee143d9eaf3dfc6cc4533c1bebbd5afc51
This will fix the stop failure issue where we have to wait n * time_interval before a key frame can be received by the file writer, where
o n is the actual number of buffers advertised by the video encoder
o time_interval is the interval settings for timelapse video recording
specifying the time distance between neighboring input video frames
The fix includes two parts:
o OMXCodec will not submit all n buffers at one time, but instead submit one input
frame at one time if it become available.
o Timelapse camera source made available the first two input frames and do not skip
them so that the first compressed output frame data can be received regardless
the specified time_interval
bug - 3367659
Change-Id: Ia68cc2cb0d71aa7dc54540e9ad82fae911ad530b
- play audio-only streams again
- workaround for malformed streams that switch PIDs across bandwidths
- attempt to pick a different bandwidth stream if the previously chosen one appears
to be malformed/unsupported.
Change-Id: I426d0a40dc725aa242f619d4c9d048b69aca55c9
related-to-bug: 2368598
Due to the variable delays in the system, the recording sound can still be heard
if the audio track is started early. This happens even after we suppress a relative
long period of initial audio for a recording session. By starting the video track
before the audio track, we effectively play the recording sound earlier.
bug - 3371141
Change-Id: I2cccf77eae953d96827fc080c618b1d962445c26
o Removed setMode() methods and related mode constants
o Removed some of the unused the metadata keys
o Updated the javadoc
o part of a multi-project change.
bug - 2433195
Change-Id: I5ed167f1fd6a53cb143b7dc385b149431d434438
commit eaeaa2672d4e0a82891493b2bde8bdd0c0e79a1b
Author: Andreas Huber <andih@google.com>
Date: Thu Dec 23 10:26:48 2010 -0800
Remove lowest bandwidth stream if using the legacy player.
Change-Id: I2f885e26344996de9152f8fda9fd6bdef89bf953
commit 7d652972615b2750fd8f1c21b9fab0e136df2b82
Author: Andreas Huber <andih@google.com>
Date: Thu Dec 23 10:14:36 2010 -0800
Don't clear the packet source's format for legacy discontinuities.
Change-Id: I9bd5a21b9bd28043ad38bd0658ccc8eda3c1079a
commit 2b18a45aac17cbfe1aa089d0f6510957d438dd64
Author: Andreas Huber <andih@google.com>
Date: Thu Dec 23 10:13:55 2010 -0800
Use NuPlayer for HTTP live streaming based on runtime property.
adb shell setprop media.httplive.enable-nuplayer true
Change-Id: I22738df3403985dc8e6992b1ab5da5747309f773
commit 50d899fb7b9ea52c3994b0a58e993998d926aeed
Author: Andreas Huber <andih@google.com>
Date: Wed Dec 22 16:25:22 2010 -0800
Make ACodec a lot less verbose.
Change-Id: I94c7e499b61032321ffaf999f5ad2c913cde6a48
commit b19e1740cb4d02990a56844654b5d019987c6405
Author: Andreas Huber <andih@google.com>
Date: Wed Dec 22 16:22:22 2010 -0800
Wait until we have fresh codec-specific-data before instantiating the decoders
after a discontinuity involving a format change.
Change-Id: I7bcf9b5ae3319f08bf8978a117e8ee5220902e37
commit 06428c006906c9099e430aface3b439ff1d36ecc
Author: Andreas Huber <andih@google.com>
Date: Wed Dec 22 15:20:38 2010 -0800
Disable random seeks in the streaming tool for now.
Change-Id: Ie86fde422dcfc4b2c7a01be51a193fda9c88cd71
commit e19db68f3bea8a61c191f60f6940f30e3a0d5f1b
Author: Andreas Huber <andih@google.com>
Date: Wed Dec 22 15:20:27 2010 -0800
Tweak HTTP live parameters.
Change-Id: If4b71e12485facc523a8a43d8213d0feb190daab
commit 1e9942791538c2256b579d96c6c04264b0d8b087
Author: Andreas Huber <andih@google.com>
Date: Wed Dec 22 14:48:23 2010 -0800
Enable http live streaming through NuPlayer for http URLs containing the string m3u8
Change-Id: I1691fe12ae8f1507fe3673313959cd50bc324624
commit 4c33f96a6e499ee0efe0e70b687094430cb7c1c0
Author: Andreas Huber <andih@google.com>
Date: Wed Dec 22 14:40:27 2010 -0800
Support for HTTP live streaming in NuPlayer.
Change-Id: Iacba1c3ebaeb8d3b972185deaf4cff18c8009c54
commit ddf705ce553708bc5b13d89a878484cf839bd674
Author: Andreas Huber <andih@google.com>
Date: Wed Dec 22 13:42:47 2010 -0800
StreamingSource now a subclass of abstract NuPlayer::Source
Change-Id: Ia6c7c639628910b9d1f37decc55da48b07a70de3
commit 9e04a8406b1882a8e3fdeb7b4d52db5ae70b970a
Author: Andreas Huber <andih@google.com>
Date: Wed Dec 22 13:33:52 2010 -0800
Refactor media data sourcing to NuPlayer::Source.
Change-Id: I1db9fb08c4e527bf7b19c29978cf342c2b0a0bc9
Change-Id: I9610a097481dda58f22142eacda3ac2dba0b63f9
commit 63be8ceb8b2354fb997a277c0092abae015ecf10
Author: Andreas Huber <andih@google.com>
Date: Fri Dec 17 13:45:34 2010 -0800
Enable handling of discontinuities that involve potential format changes.
Change-Id: I21848a113db8764abb54bdcf302b0923253eaf4d
commit d18a7f80ec09af382026809263dcbbfa9e7a9ec8
Author: Andreas Huber <andih@google.com>
Date: Fri Dec 17 13:45:01 2010 -0800
Signal whether or not a format change occured as part of the discontinuity.
Change-Id: I06e64f542f4369549c9cebbb892dc612346ae43d
commit c400adbd5fdbd65cfef7aed9ec65bcaace4bb69b
Author: Andreas Huber <andih@google.com>
Date: Fri Dec 17 13:44:46 2010 -0800
A little more instrumentation of ACodec
Change-Id: I07f4aeccbbd15cdd9f80f48c3f92ee984ef6d92b
commit 1d802ee01f47b3cdc5b89502cec7fbb595e197a3
Author: Andreas Huber <andih@google.com>
Date: Fri Dec 17 13:43:58 2010 -0800
Only sync audio/video queues if both types of media are actually present.
Change-Id: Ic88edf9bb1ebd4034c08747cce9877a4e28e0d35
commit e402da39d9a4d8b75653a78f728e20a3ef0fb497
Author: Andreas Huber <andih@google.com>
Date: Fri Dec 17 13:42:24 2010 -0800
Disable the random seek for now.
Change-Id: Iddd597b546e2f229e88214f9bdd6452bb188105e
Change-Id: I27c4d9ba916080be94ce6117dbb095e9022ed62b