summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@localhost>2013-11-01 10:25:09 -0700
committerGerrit - the friendly Code Review server <code-review@localhost>2013-11-01 10:25:09 -0700
commit94c3442361d3aa34119b6fa547f2e4b19d0dca66 (patch)
tree2f5ce252ed26330b5074030a5f0c5006981f557d
parent536302584109f2556d388ac490adc87365fac8db (diff)
parent080e3ea81d4d3eacaf41418dfe3290f294133fc2 (diff)
downloadandroid_hardware_qcom_media-94c3442361d3aa34119b6fa547f2e4b19d0dca66.tar.gz
android_hardware_qcom_media-94c3442361d3aa34119b6fa547f2e4b19d0dca66.tar.bz2
android_hardware_qcom_media-94c3442361d3aa34119b6fa547f2e4b19d0dca66.zip
Merge "dashplayer: Add support for invoke"
-rw-r--r--QCMediaPlayer/com/qualcomm/qcmedia/QCMediaPlayer.java80
-rw-r--r--dashplayer/DashPlayer.cpp2
-rw-r--r--dashplayer/DashPlayer.h3
-rw-r--r--dashplayer/DashPlayerDriver.cpp34
4 files changed, 100 insertions, 19 deletions
diff --git a/QCMediaPlayer/com/qualcomm/qcmedia/QCMediaPlayer.java b/QCMediaPlayer/com/qualcomm/qcmedia/QCMediaPlayer.java
index 61ec76ad..f52241b4 100644
--- a/QCMediaPlayer/com/qualcomm/qcmedia/QCMediaPlayer.java
+++ b/QCMediaPlayer/com/qualcomm/qcmedia/QCMediaPlayer.java
@@ -67,17 +67,6 @@ public class QCMediaPlayer extends MediaPlayer
Log.d(TAG, "QCMediaPlayer::QCMediaPlayer");
}
- public boolean setParameter(int key, String value) {
- return false;
- }
-
- public String getStringParameter(int key) {
- Parcel p = Parcel.obtain();
- //getParameter(key, p);
- //String ret = p.readString();
- //p.recycle();
- return "null";
- }
private void callOnPreparedListener()
{
Log.d(TAG, "callOnPreparedListener");
@@ -88,9 +77,9 @@ public class QCMediaPlayer extends MediaPlayer
private void callOnMPDAttributeListener()
{
Log.d(TAG, "callOnMPDAttributeListener");
- String mpdAttributes = getStringParameter(OnMPDAttributeListener.ATTRIBUTES_TYPE_MPD);
+ String mpdAttributes = QCgetStringParameter(OnMPDAttributeListener.ATTRIBUTES_TYPE_MPD);
if (mOnMPDAttributeListener != null)
- mOnMPDAttributeListener.onMPDAttribute(OnMPDAttributeListener.ATTRIBUTES_TYPE_MPD, mpdAttributes, this);
+ mOnMPDAttributeListener.onMPDAttribute(OnMPDAttributeListener.INVOKE_ID_SET_ATTRIBUTES_TYPE_MPD, mpdAttributes, this);
}
private void callQCTimedTextListener(QCTimedText text)
{
@@ -152,7 +141,7 @@ public class QCMediaPlayer extends MediaPlayer
public interface OnMPDAttributeListener
{
/**
- * Key to identify type of MPD attributes
+ * Key to Get MPD attributes
*/
public static final int ATTRIBUTES_TYPE_MPD = 8002;
/**
@@ -160,6 +149,11 @@ public class QCMediaPlayer extends MediaPlayer
*/
public static final int ATTRIBUTES_WHOLE_MPD = 8003;
/**
+ /**
+ * Key to Set MPD attributes
+ */
+ public static final int INVOKE_ID_SET_ATTRIBUTES_TYPE_MPD = 8004;
+ /**
* Called when attributes are available.
*
* @param attributekey the key identifying the type of attributes available
@@ -192,11 +186,16 @@ public class QCMediaPlayer extends MediaPlayer
*/
public boolean processMPDAttribute(int key, String value)
{
- return setParameter(key, value);
+ return QCsetStringParameter(key, value);
}
public String QCGetParameter(int key)
{
- return getStringParameter(key);
+ return QCgetStringParameter(key);
+ }
+ public boolean QCSetParameter(int key, int value)
+ {
+ Log.d(TAG, "QCMediaPlayer : QCSetParameter");
+ return QCsetParameter(key, value);
}
/* Do not change these values without updating their counterparts
* in include/media/mediaplayer.h!
@@ -276,4 +275,53 @@ public class QCMediaPlayer extends MediaPlayer
mp.mEventHandler.sendMessage(m);
}
}
+
+ private String QCgetStringParameter(int key)
+ {
+ Parcel request = newRequest();
+ Parcel reply = Parcel.obtain();
+ reply.setDataPosition(0);
+ request.writeInt(key);
+ invoke(request, reply);
+ String ret = reply.readString();
+ request.recycle();
+ reply.recycle();
+ return ret;
+ }
+
+ public boolean QCsetStringParameter(int key, String value) {
+ boolean retval = false;
+ Parcel request = newRequest();
+ Parcel reply = Parcel.obtain();
+ request.writeInt(key);
+ request.writeString(value);
+ invoke(request, reply);
+ retval = reply.readInt() > 0 ? true : false;
+ request.recycle();
+ reply.recycle();
+ return retval;
+ }
+
+ public boolean QCsetParameter(int key, int value) {
+ boolean retval = false;
+ Parcel request = newRequest();
+ Parcel reply = Parcel.obtain();
+ request.writeInt(key);
+ request.writeInt(value);
+ invoke(request, reply);
+ retval = reply.readInt() > 0 ? true : false;
+ request.recycle();
+ reply.recycle();
+ return retval;
+ }
+
+ public Parcel QCgetParcelParameter(int key) {
+ boolean retval = false;
+ Parcel request = newRequest();
+ Parcel reply = Parcel.obtain();
+ request.writeInt(key);
+ invoke(request, reply);
+ request.recycle();
+ return reply;
+ }
}
diff --git a/dashplayer/DashPlayer.cpp b/dashplayer/DashPlayer.cpp
index 653b9025..3c239973 100644
--- a/dashplayer/DashPlayer.cpp
+++ b/dashplayer/DashPlayer.cpp
@@ -1561,7 +1561,7 @@ status_t DashPlayer::getParameter(int key, Parcel *reply)
status_t DashPlayer::setParameter(int key, const Parcel &request)
{
status_t err = OK;
- if (key == 8002) {
+ if (key == 8004) {
size_t len = 0;
const char16_t* str = request.readString16Inplace(&len);
diff --git a/dashplayer/DashPlayer.h b/dashplayer/DashPlayer.h
index c9a6931d..4ebc31ac 100644
--- a/dashplayer/DashPlayer.h
+++ b/dashplayer/DashPlayer.h
@@ -23,8 +23,9 @@
#include <media/stagefright/NativeWindowWrapper.h>
#include "DashPlayerStats.h"
#include <media/stagefright/foundation/ABuffer.h>
-#define KEY_DASH_ADAPTION_PROPERTIES 8002
+#define KEY_DASH_ADAPTION_PROPERTIES 8002 // used for Get Adaotionset property
#define KEY_DASH_MPD_QUERY 8003
+#define KEY_DASH_SET_ADAPTION_PROPERTIES 8004 // used for Set Adaotionset property
namespace android {
diff --git a/dashplayer/DashPlayerDriver.cpp b/dashplayer/DashPlayerDriver.cpp
index bfcf7c54..0cca88fa 100644
--- a/dashplayer/DashPlayerDriver.cpp
+++ b/dashplayer/DashPlayerDriver.cpp
@@ -279,7 +279,39 @@ player_type DashPlayerDriver::playerType() {
}
status_t DashPlayerDriver::invoke(const Parcel &request, Parcel *reply) {
- return INVALID_OPERATION;
+ status_t ret = INVALID_OPERATION;
+ int32_t methodId;
+ ret = request.readInt32(&methodId);
+ if (ret != OK) {
+ ALOGE("Failed to retrieve the requested method to invoke");
+ return ret;
+ }
+
+ switch (methodId) {
+ case KEY_DASH_ADAPTION_PROPERTIES:
+ {
+ ALOGE("calling KEY_DASH_GET_ADAPTION_PROPERTIES");
+ ret = getParameter(methodId,reply);
+ break;
+ }
+ case KEY_DASH_SET_ADAPTION_PROPERTIES:
+ {
+ ALOGE("calling KEY_DASH_SET_ADAPTION_PROPERTIES");
+ int32_t val = 0;
+ ret = setParameter(methodId,request);
+ val = (ret == OK)? 1:0;
+ reply->setDataPosition(0);
+ reply->writeInt32(val);
+ break;
+ }
+ default:
+ {
+ ALOGE("Invoke:unHandled requested method%d",methodId);
+ ret = OK;
+ break;
+ }
+ }
+ return ret;
}
void DashPlayerDriver::setAudioSink(const sp<AudioSink> &audioSink) {