Merge change I4e9fe62b into eclair
* changes:
do not merge -- original checkin to mr2 here:
diff --git a/api/4.xml b/api/4.xml
index e996e8f..9689072 100644
--- a/api/4.xml
+++ b/api/4.xml
@@ -111799,6 +111799,17 @@
visibility="public"
>
</field>
+<field name="DATA_ACTIVITY_DORMANT"
+ type="int"
+ transient="false"
+ volatile="false"
+ value="4"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
<field name="DATA_ACTIVITY_IN"
type="int"
transient="false"
@@ -111939,6 +111950,28 @@
visibility="public"
>
</field>
+<field name="NETWORK_TYPE_1xRTT"
+ type="int"
+ transient="false"
+ volatile="false"
+ value="7"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
+<field name="NETWORK_TYPE_CDMA"
+ type="int"
+ transient="false"
+ volatile="false"
+ value="4"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
<field name="NETWORK_TYPE_EDGE"
type="int"
transient="false"
@@ -111950,6 +111983,28 @@
visibility="public"
>
</field>
+<field name="NETWORK_TYPE_EVDO_0"
+ type="int"
+ transient="false"
+ volatile="false"
+ value="5"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
+<field name="NETWORK_TYPE_EVDO_A"
+ type="int"
+ transient="false"
+ volatile="false"
+ value="6"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
<field name="NETWORK_TYPE_GPRS"
type="int"
transient="false"
@@ -111983,6 +112038,17 @@
visibility="public"
>
</field>
+<field name="PHONE_TYPE_CDMA"
+ type="int"
+ transient="false"
+ volatile="false"
+ value="2"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
<field name="PHONE_TYPE_GSM"
type="int"
transient="false"
diff --git a/media/libstagefright/AudioPlayer.cpp b/media/libstagefright/AudioPlayer.cpp
index 319488e..538facb 100644
--- a/media/libstagefright/AudioPlayer.cpp
+++ b/media/libstagefright/AudioPlayer.cpp
@@ -14,6 +14,7 @@
* limitations under the License.
*/
+//#define LOG_NDEBUG 0
#define LOG_TAG "AudioPlayer"
#include <utils/Log.h>
@@ -136,7 +137,7 @@
// Make sure to release any buffer we hold onto so that the
// source is able to stop().
if (mInputBuffer != NULL) {
- LOGI("AudioPlayer releasing input buffer.");
+ LOGV("AudioPlayer releasing input buffer.");
mInputBuffer->release();
mInputBuffer = NULL;
@@ -176,7 +177,7 @@
void AudioPlayer::fillBuffer(void *data, size_t size) {
if (mNumFramesPlayed == 0) {
- LOGI("AudioCallback");
+ LOGV("AudioCallback");
}
size_t size_done = 0;
@@ -222,6 +223,11 @@
mPositionTimeRealUs =
((mNumFramesPlayed + size_done / mFrameSize) * 1000000)
/ mSampleRate;
+
+ LOGV("buffer->size() = %d, "
+ "mPositionTimeMediaUs=%.2f mPositionTimeRealUs=%.2f",
+ mInputBuffer->range_length(),
+ mPositionTimeMediaUs / 1E6, mPositionTimeRealUs / 1E6);
}
if (mInputBuffer->range_length() == 0) {
diff --git a/media/libstagefright/MediaPlayerImpl.cpp b/media/libstagefright/MediaPlayerImpl.cpp
index 2e609e3..622ea7e 100644
--- a/media/libstagefright/MediaPlayerImpl.cpp
+++ b/media/libstagefright/MediaPlayerImpl.cpp
@@ -157,7 +157,15 @@
if (mAudioSource != NULL) {
mAudioPlayer = new AudioPlayer(mAudioSink);
mAudioPlayer->setSource(mAudioDecoder);
- mAudioPlayer->start();
+
+ if (mVideoDecoder == NULL) {
+ // If there is no video, start playing right away,
+ // otherwise we'll start the audio player after we decode
+ // the first video frame, this way we won't be behind right
+ // away.
+ mAudioPlayer->start();
+ }
+
mTimeSource = mAudioPlayer;
} else {
mTimeSource = new SystemTimeSource;
@@ -285,6 +293,10 @@
}
if (firstFrame || seeking) {
+ if (firstFrame && mAudioPlayer != NULL) {
+ // We've deferred starting the audio player until now.
+ mAudioPlayer->start();
+ }
mTimeSourceDeltaUs = mTimeSource->getRealTimeUs() - pts_us;
firstFrame = false;
}