summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Wonsik Kim <wonsik@google.com> 2014-10-24 01:34:03 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2014-10-24 01:34:05 +0000
commitcfc73237e9af57e85b46a7e657c84f9c2cb4b641 (patch)
treea72296f1d8430f0f74c7c4189690f1e3d6efd3e0
parent84f9ab2903be2ff45977d99340eafc64c4251b3a (diff)
parent8f24a8b60f9afc1aedb89e7ee80ce65515439600 (diff)
Merge "TIF: fix wrong config comparison & confusing method name" into lmp-mr1-dev
-rw-r--r--media/java/android/media/tv/TvStreamConfig.java14
-rw-r--r--services/core/java/com/android/server/tv/TvInputHal.java6
-rw-r--r--services/core/java/com/android/server/tv/TvInputHardwareManager.java6
-rw-r--r--services/core/jni/com_android_server_tv_TvInputHal.cpp12
4 files changed, 25 insertions, 13 deletions
diff --git a/media/java/android/media/tv/TvStreamConfig.java b/media/java/android/media/tv/TvStreamConfig.java
index a7e7e44ac6e6..1bdc63eb0e97 100644
--- a/media/java/android/media/tv/TvStreamConfig.java
+++ b/media/java/android/media/tv/TvStreamConfig.java
@@ -33,7 +33,6 @@ public class TvStreamConfig implements Parcelable {
private int mStreamId;
private int mType;
- // TODO: Revisit if max widht/height really make sense.
private int mMaxWidth;
private int mMaxHeight;
/**
@@ -166,4 +165,17 @@ public class TvStreamConfig implements Parcelable {
return config;
}
}
+
+ @Override
+ public boolean equals(Object obj) {
+ if (obj == null) return false;
+ if (!(obj instanceof TvStreamConfig)) return false;
+
+ TvStreamConfig config = (TvStreamConfig) obj;
+ return config.mGeneration == mGeneration
+ && config.mStreamId == mStreamId
+ && config.mType == mType
+ && config.mMaxWidth == mMaxWidth
+ && config.mMaxHeight == mMaxHeight;
+ }
}
diff --git a/services/core/java/com/android/server/tv/TvInputHal.java b/services/core/java/com/android/server/tv/TvInputHal.java
index 558ffb5e3ddd..c12dd633c07f 100644
--- a/services/core/java/com/android/server/tv/TvInputHal.java
+++ b/services/core/java/com/android/server/tv/TvInputHal.java
@@ -55,7 +55,7 @@ final class TvInputHal implements Handler.Callback {
private native long nativeOpen();
- private static native int nativeAddStream(long ptr, int deviceId, int streamId,
+ private static native int nativeAddOrUpdateStream(long ptr, int deviceId, int streamId,
Surface surface);
private static native int nativeRemoveStream(long ptr, int deviceId, int streamId);
private static native TvStreamConfig[] nativeGetStreamConfigs(long ptr, int deviceId,
@@ -80,7 +80,7 @@ final class TvInputHal implements Handler.Callback {
}
}
- public int addStream(int deviceId, Surface surface, TvStreamConfig streamConfig) {
+ public int addOrUpdateStream(int deviceId, Surface surface, TvStreamConfig streamConfig) {
synchronized (mLock) {
if (mPtr == 0) {
return ERROR_NO_INIT;
@@ -89,7 +89,7 @@ final class TvInputHal implements Handler.Callback {
if (generation != streamConfig.getGeneration()) {
return ERROR_STALE_CONFIG;
}
- if (nativeAddStream(mPtr, deviceId, streamConfig.getStreamId(), surface) == 0) {
+ if (nativeAddOrUpdateStream(mPtr, deviceId, streamConfig.getStreamId(), surface) == 0) {
return SUCCESS;
} else {
return ERROR_UNKNOWN;
diff --git a/services/core/java/com/android/server/tv/TvInputHardwareManager.java b/services/core/java/com/android/server/tv/TvInputHardwareManager.java
index 44e4ad10c353..7d031ea8c272 100644
--- a/services/core/java/com/android/server/tv/TvInputHardwareManager.java
+++ b/services/core/java/com/android/server/tv/TvInputHardwareManager.java
@@ -668,14 +668,14 @@ class TvInputHardwareManager implements TvInputHal.Callback {
result = mHal.removeStream(mInfo.getDeviceId(), mActiveConfig);
mActiveConfig = null;
} else {
- if (config != mActiveConfig && mActiveConfig != null) {
+ if (!config.equals(mActiveConfig)) {
result = mHal.removeStream(mInfo.getDeviceId(), mActiveConfig);
if (result != TvInputHal.SUCCESS) {
mActiveConfig = null;
return false;
}
}
- result = mHal.addStream(mInfo.getDeviceId(), surface, config);
+ result = mHal.addOrUpdateStream(mInfo.getDeviceId(), surface, config);
if (result == TvInputHal.SUCCESS) {
mActiveConfig = config;
}
@@ -801,7 +801,7 @@ class TvInputHardwareManager implements TvInputHal.Callback {
return false;
}
- int result = mHal.addStream(mInfo.getDeviceId(), surface, config);
+ int result = mHal.addOrUpdateStream(mInfo.getDeviceId(), surface, config);
return result == TvInputHal.SUCCESS;
}
}
diff --git a/services/core/jni/com_android_server_tv_TvInputHal.cpp b/services/core/jni/com_android_server_tv_TvInputHal.cpp
index d5abe0c25dae..5cb05431fe9e 100644
--- a/services/core/jni/com_android_server_tv_TvInputHal.cpp
+++ b/services/core/jni/com_android_server_tv_TvInputHal.cpp
@@ -235,7 +235,7 @@ public:
static JTvInputHal* createInstance(JNIEnv* env, jobject thiz);
- int addStream(int deviceId, int streamId, const sp<Surface>& surface);
+ int addOrUpdateStream(int deviceId, int streamId, const sp<Surface>& surface);
int removeStream(int deviceId, int streamId);
const tv_stream_config_t* getStreamConfigs(int deviceId, int* numConfigs);
@@ -312,7 +312,7 @@ JTvInputHal* JTvInputHal::createInstance(JNIEnv* env, jobject thiz) {
return new JTvInputHal(env, thiz, device);
}
-int JTvInputHal::addStream(int deviceId, int streamId, const sp<Surface>& surface) {
+int JTvInputHal::addOrUpdateStream(int deviceId, int streamId, const sp<Surface>& surface) {
KeyedVector<int, Connection>& connections = mConnections.editValueFor(deviceId);
if (connections.indexOfKey(streamId) < 0) {
connections.add(streamId, Connection());
@@ -555,14 +555,14 @@ static jlong nativeOpen(JNIEnv* env, jobject thiz) {
return (jlong)JTvInputHal::createInstance(env, thiz);
}
-static int nativeAddStream(JNIEnv* env, jclass clazz,
+static int nativeAddOrUpdateStream(JNIEnv* env, jclass clazz,
jlong ptr, jint deviceId, jint streamId, jobject jsurface) {
JTvInputHal* tvInputHal = (JTvInputHal*)ptr;
if (!jsurface) {
return BAD_VALUE;
}
sp<Surface> surface(android_view_Surface_getSurface(env, jsurface));
- return tvInputHal->addStream(deviceId, streamId, surface);
+ return tvInputHal->addOrUpdateStream(deviceId, streamId, surface);
}
static int nativeRemoveStream(JNIEnv* env, jclass clazz,
@@ -612,8 +612,8 @@ static JNINativeMethod gTvInputHalMethods[] = {
/* name, signature, funcPtr */
{ "nativeOpen", "()J",
(void*) nativeOpen },
- { "nativeAddStream", "(JIILandroid/view/Surface;)I",
- (void*) nativeAddStream },
+ { "nativeAddOrUpdateStream", "(JIILandroid/view/Surface;)I",
+ (void*) nativeAddOrUpdateStream },
{ "nativeRemoveStream", "(JII)I",
(void*) nativeRemoveStream },
{ "nativeGetStreamConfigs", "(JII)[Landroid/media/tv/TvStreamConfig;",