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;
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;
+ }
}
/**
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() {
configBuilder.setUrl(url);
configBuilder.setId(id);
configBuilder.setPassword(password);
+ configBuilder.setHeight(height);
+ configBuilder.setWidth(width);
rtspStream.setConfig(configBuilder.build());
}
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));
configBuilder.setUrl(url);
configBuilder.setId(id);
configBuilder.setPassword(password);
+ configBuilder.setHeight(height);
+ configBuilder.setWidth(width);
rtspStream.setConfig(configBuilder.build());
AtomicBoolean isStarted = new AtomicBoolean(false);
*/
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());
}
}
<?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>