From 8f9fc2444a46deacd48d388aae11d2c26ab2fc4a Mon Sep 17 00:00:00 2001 From: Praveen Naik S Date: Fri, 24 Mar 2023 16:31:10 +0530 Subject: [PATCH] Fix RTSP bugs --- .../android/aitt/stream/RTSPStream.java | 38 +++++++++--- .../aitt/stream/RTSPStreamUnitTest.java | 8 +++ .../modules/rtsp/RTSPInstrumentedTest.java | 58 ++----------------- .../rtsp/src/main/res/values/strings.xml | 4 +- 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 @@ - 192.168.1.59 - \ No newline at end of file + 192.168.1.3 + -- 2.34.1