summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPraveen Naik S <praveen.s@samsung.com>2023-03-24 16:31:10 +0530
committerPraveen Naik S <praveen.s@samsung.com>2023-06-14 20:27:51 +0900
commit8f9fc2444a46deacd48d388aae11d2c26ab2fc4a (patch)
tree4a3aede3532f4fd335861aaba9d04043ff4c56c4
parentcbb04db0b829a52f40fa7aa35eccccb58f1d3d61 (diff)
downloadaitt-8f9fc2444a46deacd48d388aae11d2c26ab2fc4a.tar.gz
aitt-8f9fc2444a46deacd48d388aae11d2c26ab2fc4a.tar.bz2
aitt-8f9fc2444a46deacd48d388aae11d2c26ab2fc4a.zip
Fix RTSP bugs
-rw-r--r--android/aitt/src/main/java/com/samsung/android/aitt/stream/RTSPStream.java38
-rw-r--r--android/aitt/src/test/java/com/samsung/android/aitt/stream/RTSPStreamUnitTest.java8
-rw-r--r--android/modules/rtsp/src/androidTest/java/com/samsung/android/modules/rtsp/RTSPInstrumentedTest.java58
-rw-r--r--android/modules/rtsp/src/main/res/values/strings.xml4
4 files changed, 45 insertions, 63 deletions
diff --git a/android/aitt/src/main/java/com/samsung/android/aitt/stream/RTSPStream.java b/android/aitt/src/main/java/com/samsung/android/aitt/stream/RTSPStream.java
index 072bfd3..aa929fb 100644
--- a/android/aitt/src/main/java/com/samsung/android/aitt/stream/RTSPStream.java
+++ b/android/aitt/src/main/java/com/samsung/android/aitt/stream/RTSPStream.java
@@ -39,6 +39,9 @@ public class RTSPStream implements AittStream {
private static final String URL_PREFIX = "rtsp://";
private static final String HEIGHT = "height";
private static final String WIDTH = "width";
+ private static final String EMPTY_STRING = "";
+ private static final int DEFAULT_WIDTH = 640;
+ private static final int DEFAULT_HEIGHT = 480;
private final StreamRole streamRole;
private final String topic;
@@ -121,23 +124,42 @@ public class RTSPStream implements AittStream {
if (config == null)
throw new IllegalArgumentException("Invalid configuration");
- if (config.getUrl() != null) {
- String url = config.getUrl();
- if (!url.startsWith(URL_PREFIX))
- throw new IllegalArgumentException("Invalid RTSP URL");
-
- discoveryInfo.url = config.getUrl();
+ String url = config.getUrl();
+ if (url == null || !url.startsWith(URL_PREFIX)) {
+ throw new IllegalArgumentException("Invalid RTSP URL");
}
+
+ discoveryInfo.url = url;
+
if (config.getId() != null) {
discoveryInfo.id = config.getId();
+ } else {
+ discoveryInfo.id = EMPTY_STRING;
}
+
if (config.getPassword() != null) {
discoveryInfo.password = config.getPassword();
+ } else {
+ discoveryInfo.password = EMPTY_STRING;
}
- discoveryInfo.height = config.getHeight();
+ int height = config.getHeight();
+ if (height == 0) {
+ discoveryInfo.height = DEFAULT_HEIGHT;
+ } else if (height < 0) {
+ throw new IllegalArgumentException("Invalid stream height");
+ } else {
+ discoveryInfo.height = height;
+ }
- discoveryInfo.width = config.getWidth();
+ int width = config.getWidth();
+ if (width == 0) {
+ discoveryInfo.width = DEFAULT_WIDTH;
+ } else if (width < 0) {
+ throw new IllegalArgumentException("Invalid stream width");
+ } else {
+ discoveryInfo.width = width;
+ }
}
/**
diff --git a/android/aitt/src/test/java/com/samsung/android/aitt/stream/RTSPStreamUnitTest.java b/android/aitt/src/test/java/com/samsung/android/aitt/stream/RTSPStreamUnitTest.java
index e5091f2..e592f6e 100644
--- a/android/aitt/src/test/java/com/samsung/android/aitt/stream/RTSPStreamUnitTest.java
+++ b/android/aitt/src/test/java/com/samsung/android/aitt/stream/RTSPStreamUnitTest.java
@@ -29,6 +29,8 @@ public class RTSPStreamUnitTest {
private final String url = "rtsp://192.168.1.4:1935";
private final String id = "id1";
private final String password = "pwd1";
+ private final int height = 640;
+ private final int width = 480;
@Test
public void testCreatePublisherStream_P() {
@@ -61,6 +63,8 @@ public class RTSPStreamUnitTest {
configBuilder.setUrl(url);
configBuilder.setId(id);
configBuilder.setPassword(password);
+ configBuilder.setHeight(height);
+ configBuilder.setWidth(width);
rtspStream.setConfig(configBuilder.build());
}
@@ -95,6 +99,8 @@ public class RTSPStreamUnitTest {
configBuilder.setUrl(url);
configBuilder.setId(id);
configBuilder.setPassword(password);
+ configBuilder.setHeight(height);
+ configBuilder.setWidth(width);
rtspStream.setConfig(configBuilder.build());
rtspStream.setStateCallback(state -> assertEquals("Expected state is ready", state, AittStream.StreamState.READY));
@@ -110,6 +116,8 @@ public class RTSPStreamUnitTest {
configBuilder.setUrl(url);
configBuilder.setId(id);
configBuilder.setPassword(password);
+ configBuilder.setHeight(height);
+ configBuilder.setWidth(width);
rtspStream.setConfig(configBuilder.build());
AtomicBoolean isStarted = new AtomicBoolean(false);
diff --git a/android/modules/rtsp/src/androidTest/java/com/samsung/android/modules/rtsp/RTSPInstrumentedTest.java b/android/modules/rtsp/src/androidTest/java/com/samsung/android/modules/rtsp/RTSPInstrumentedTest.java
index c9a5b5f..dcbcfc8 100644
--- a/android/modules/rtsp/src/androidTest/java/com/samsung/android/modules/rtsp/RTSPInstrumentedTest.java
+++ b/android/modules/rtsp/src/androidTest/java/com/samsung/android/modules/rtsp/RTSPInstrumentedTest.java
@@ -15,67 +15,19 @@
*/
package com.samsung.android.modules.rtsp;
-import static com.samsung.android.aitt.stream.AittStream.StreamRole.PUBLISHER;
-import static com.samsung.android.aitt.stream.AittStream.StreamRole.SUBSCRIBER;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.fail;
+import static org.junit.Assert.assertEquals;
import android.content.Context;
import androidx.test.platform.app.InstrumentationRegistry;
-import com.samsung.android.aitt.Aitt;
-import com.samsung.android.aitt.stream.AittStream;
-import com.samsung.android.aitt.stream.AittStreamConfigBuilder;
-
-import org.junit.BeforeClass;
import org.junit.Test;
public class RTSPInstrumentedTest {
-
- private static final String TEST_TOPIC = "android/test/rtsp";
- private static final String AITT_ID = "AITT_ANDROID";
- private static final String ERROR_MESSAGE_AITT_NULL = "An AITT instance is null.";
- private static final int PORT = 1883;
- private static final String RTSP_URL = "rtsp://192.168.1.4:1935";
-
- private static String brokerIp;
- private static Context appContext;
-
- @BeforeClass
- public static void initialize() {
- appContext = InstrumentationRegistry.getInstrumentation().getTargetContext();
- appContext.getString(R.string.testBrokerIp);
- }
-
@Test
- public void testRTSPBasicStreaming() {
- try {
- Aitt aitt = new Aitt(appContext, AITT_ID);
- assertNotNull(ERROR_MESSAGE_AITT_NULL, aitt);
- aitt.connect(brokerIp, PORT);
-
- AittStream subscriber = aitt.createStream(Aitt.Protocol.RTSP, TEST_TOPIC, SUBSCRIBER);
-
- AittStream.StreamDataCallback callback = data -> {
- //Do something
- };
- subscriber.setReceiveCallback(callback);
- subscriber.start();
-
- AittStream publisher = aitt.createStream(Aitt.Protocol.RTSP, TEST_TOPIC, PUBLISHER);
- AittStreamConfigBuilder builder = new AittStreamConfigBuilder();
- builder.setUrl(RTSP_URL);
- publisher.setConfig(builder.build());
- publisher.start();
-
- publisher.stop();
- subscriber.stop();
-
- aitt.destroyStream(publisher);
- aitt.destroyStream(subscriber);
- } catch (Exception e) {
- fail("Failed testRTSPBasicStreaming, (" + e + ")");
- }
+ public void useAppContext() {
+ // Context of the app under test.
+ Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext();
+ assertEquals("com.example.aittnative.test", appContext.getPackageName());
}
}
diff --git a/android/modules/rtsp/src/main/res/values/strings.xml b/android/modules/rtsp/src/main/res/values/strings.xml
index 98ea3ee..089ba90 100644
--- a/android/modules/rtsp/src/main/res/values/strings.xml
+++ b/android/modules/rtsp/src/main/res/values/strings.xml
@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
- <string name="testBrokerIp">192.168.1.59</string>
-</resources> \ No newline at end of file
+ <string name="testBrokerIp">192.168.1.3</string>
+</resources>