mediaplayer: add getBufferingSettings.
Test: compiles
Bug: 32524218
Change-Id: Ifd6243d524d1554dfbbfc1381414100cfafdc02d
diff --git a/include/media/mediaplayer.h b/include/media/mediaplayer.h
index 9130159..5d7c25a 100644
--- a/include/media/mediaplayer.h
+++ b/include/media/mediaplayer.h
@@ -22,6 +22,7 @@
#include <binder/IMemory.h>
#include <media/AudioResamplerPublic.h>
+#include <media/BufferingSettings.h>
#include <media/IMediaPlayerClient.h>
#include <media/IMediaPlayer.h>
#include <media/IMediaDeathNotifier.h>
@@ -220,6 +221,7 @@
const sp<IGraphicBufferProducer>& bufferProducer);
status_t setListener(const sp<MediaPlayerListener>& listener);
status_t getDefaultBufferingSettings(BufferingSettings* buffering /* nonnull */);
+ status_t getBufferingSettings(BufferingSettings* buffering /* nonnull */);
status_t setBufferingSettings(const BufferingSettings& buffering);
status_t prepare();
status_t prepareAsync();
@@ -294,6 +296,7 @@
float mSendLevel;
struct sockaddr_in mRetransmitEndpoint;
bool mRetransmitEndpointValid;
+ BufferingSettings mCurrentBufferingSettings;
};
}; // namespace android
diff --git a/media/libmedia/mediaplayer.cpp b/media/libmedia/mediaplayer.cpp
index 6bba1f1..40af8de 100644
--- a/media/libmedia/mediaplayer.cpp
+++ b/media/libmedia/mediaplayer.cpp
@@ -136,8 +136,10 @@
mPlayer = player;
if (player != 0) {
mCurrentState = MEDIA_PLAYER_INITIALIZED;
+ player->getDefaultBufferingSettings(&mCurrentBufferingSettings);
err = NO_ERROR;
} else {
+ mCurrentBufferingSettings = BufferingSettings();
ALOGE("Unable to create media player");
}
}
@@ -255,6 +257,18 @@
return mPlayer->getDefaultBufferingSettings(buffering);
}
+status_t MediaPlayer::getBufferingSettings(BufferingSettings* buffering /* nonnull */)
+{
+ ALOGV("getBufferingSettings");
+
+ Mutex::Autolock _l(mLock);
+ if (mPlayer == 0) {
+ return NO_INIT;
+ }
+ *buffering = mCurrentBufferingSettings;
+ return NO_ERROR;
+}
+
status_t MediaPlayer::setBufferingSettings(const BufferingSettings& buffering)
{
ALOGV("setBufferingSettings");
@@ -263,7 +277,11 @@
if (mPlayer == 0) {
return NO_INIT;
}
- return mPlayer->setBufferingSettings(buffering);
+ status_t err = mPlayer->setBufferingSettings(buffering);
+ if (err == NO_ERROR) {
+ mCurrentBufferingSettings = buffering;
+ }
+ return err;
}
// must call with lock held
@@ -606,6 +624,7 @@
// setDataSource has to be called again to create a
// new mediaplayer.
mPlayer = 0;
+ mCurrentBufferingSettings = BufferingSettings();
return ret;
}
clear_l();