diff options
author | Linux Build Service Account <lnxbuild@localhost> | 2013-11-01 10:25:09 -0700 |
---|---|---|
committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2013-11-01 10:25:09 -0700 |
commit | 94c3442361d3aa34119b6fa547f2e4b19d0dca66 (patch) | |
tree | 2f5ce252ed26330b5074030a5f0c5006981f557d | |
parent | 536302584109f2556d388ac490adc87365fac8db (diff) | |
parent | 080e3ea81d4d3eacaf41418dfe3290f294133fc2 (diff) | |
download | android_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.java | 80 | ||||
-rw-r--r-- | dashplayer/DashPlayer.cpp | 2 | ||||
-rw-r--r-- | dashplayer/DashPlayer.h | 3 | ||||
-rw-r--r-- | dashplayer/DashPlayerDriver.cpp | 34 |
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) { |