From 4980762b9a52bf5a00575617462179c19657e48a Mon Sep 17 00:00:00 2001 From: Masaru Takano Date: Fri, 25 Feb 2022 09:31:23 +0900 Subject: [PATCH 1/3] =?UTF-8?q?=E3=83=86=E3=82=AF=E3=82=B9=E3=83=81?= =?UTF-8?q?=E3=83=A3=E3=81=B8=E3=81=AE=E6=8F=8F=E7=94=BB=E9=A0=98=E5=9F=9F?= =?UTF-8?q?=E3=82=92=E6=8C=87=E5=AE=9A=E3=81=A7=E3=81=8D=E3=82=8B=E3=82=88?= =?UTF-8?q?=E3=81=86=E3=81=AB=E4=BF=AE=E6=AD=A3=E3=80=82libmedia=201.4.0?= =?UTF-8?q?=20=E3=81=B8=E3=83=90=E3=83=BC=E3=82=B8=E3=83=A7=E3=83=B3?= =?UTF-8?q?=E5=A4=89=E6=9B=B4=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../libmedia/build.gradle | 2 +- .../gles/SurfaceTextureRenderer.java | 68 ++++++++++++------- 2 files changed, 46 insertions(+), 24 deletions(-) diff --git a/dConnectSDK/dConnectLibStreaming/libmedia/build.gradle b/dConnectSDK/dConnectLibStreaming/libmedia/build.gradle index cba55430a..072ab3cc4 100644 --- a/dConnectSDK/dConnectLibStreaming/libmedia/build.gradle +++ b/dConnectSDK/dConnectLibStreaming/libmedia/build.gradle @@ -8,7 +8,7 @@ if (githubPropertiesFile.exists()) { } def getVersionName = { -> - return "1.3.0" + return "1.4.0" } def getArtificatId = { -> diff --git a/dConnectSDK/dConnectLibStreaming/libmedia/src/main/java/org/deviceconnect/android/libmedia/streaming/gles/SurfaceTextureRenderer.java b/dConnectSDK/dConnectLibStreaming/libmedia/src/main/java/org/deviceconnect/android/libmedia/streaming/gles/SurfaceTextureRenderer.java index 84eaaeb9c..263cd22ff 100644 --- a/dConnectSDK/dConnectLibStreaming/libmedia/src/main/java/org/deviceconnect/android/libmedia/streaming/gles/SurfaceTextureRenderer.java +++ b/dConnectSDK/dConnectLibStreaming/libmedia/src/main/java/org/deviceconnect/android/libmedia/streaming/gles/SurfaceTextureRenderer.java @@ -25,19 +25,12 @@ public class SurfaceTextureRenderer { private static final float[] TRIANGLE_VERTICES_DATA = { // X, Y, Z, U, V -1.0f, -1.0f, 0.f, 0.f, 0.f, - 1.0f, -1.0f, 0.f, 1.f, 0.f, + 1.0f, -1.0f, 0.f, 1.f, 0.f, -1.0f, 1.0f, 0.f, 0.f, 1.f, - 1.0f, 1.0f, 0.f, 1.f, 1.f, - }; - - private static final float[] TRIANGLE_VERTICES_DATA_2 = { - // X, Y, Z, U, V - -1.0f, -1.0f, 0.f, 0.f, 1.f, - 1.0f, -1.0f, 0.f, 1.f, 1.f, - -1.0f, 1.0f, 0.f, 0.f, 0.f, - 1.0f, 1.0f, 0.f, 1.f, 0.f, + 1.0f, 1.0f, 0.f, 1.f, 1.f, }; + private final FloatBuffer mDefaultTriangleVertices; private final FloatBuffer mTriangleVertices; private final boolean mInverse; @@ -78,20 +71,54 @@ public class SurfaceTextureRenderer { * @param inverse テクスチャの反転フラグ */ public SurfaceTextureRenderer(boolean inverse) { + this(inverse, TRIANGLE_VERTICES_DATA); + } + + /** + * コンストラクタ. + * @param inverse テクスチャの反転フラグ + * @param vertices テクスチャの頂点バッファ(初期値) + */ + public SurfaceTextureRenderer(boolean inverse, float[] vertices) { mInverse = inverse; + if (inverse) { + vertices = inverseVertices(vertices); + } + + mDefaultTriangleVertices = ByteBuffer.allocateDirect( + TRIANGLE_VERTICES_DATA.length * FLOAT_SIZE_BYTES) + .order(ByteOrder.nativeOrder()).asFloatBuffer(); + mDefaultTriangleVertices.put(vertices).position(0); + mTriangleVertices = ByteBuffer.allocateDirect( TRIANGLE_VERTICES_DATA.length * FLOAT_SIZE_BYTES) .order(ByteOrder.nativeOrder()).asFloatBuffer(); - if (inverse) { - mTriangleVertices.put(TRIANGLE_VERTICES_DATA_2).position(0); - } else { - mTriangleVertices.put(TRIANGLE_VERTICES_DATA).position(0); - } + mTriangleVertices.put(vertices).position(0); Matrix.setIdentityM(mSTMatrix, 0); Matrix.setIdentityM(mMVPMatrix, 0); } + private static float[] inverseVertices(final float[] vertices) { + int len = vertices.length; + float[] inverse = new float[len]; + System.arraycopy(vertices, 0, inverse, 0, len); + inverse[3] = vertices[13]; + inverse[4] = vertices[14]; + inverse[13] = vertices[3]; + inverse[14] = vertices[4]; + inverse[8] = vertices[18]; + inverse[9] = vertices[19]; + inverse[18] = vertices[8]; + inverse[19] = vertices[9]; + return inverse; + } + + public void setTextureVertices(final float[] vertices) { + mTriangleVertices.clear(); + mTriangleVertices.put(vertices).position(0); + } + /** * テクスチャの ID を取得します. * @@ -227,11 +254,7 @@ public void drawFrame(SurfaceTexture st, int displayRotation) { */ public void clearCropRect() { mTriangleVertices.clear(); - if (mInverse) { - mTriangleVertices.put(TRIANGLE_VERTICES_DATA_2).position(0); - } else { - mTriangleVertices.put(TRIANGLE_VERTICES_DATA).position(0); - } + mTriangleVertices.put(mDefaultTriangleVertices).position(0); } /** @@ -293,8 +316,7 @@ private void setCropRect(float l, float t, float r, float b) { ex, ey, 0.f, r, (1 - b), }; - mTriangleVertices.clear(); - mTriangleVertices.put(triangleVerticesData).position(0); + setTextureVertices(triangleVerticesData); } private int loadShader(int shaderType, String source) { @@ -366,4 +388,4 @@ private static void checkLocation(int location, String label) { throw new RuntimeException("Unable to locate '" + label + "' in program"); } } -} +} \ No newline at end of file From 168da0e2bbd60d5e434aeadcbd153504f05defe7 Mon Sep 17 00:00:00 2001 From: Masaru Takano Date: Fri, 25 Feb 2022 12:09:58 +0900 Subject: [PATCH 2/3] =?UTF-8?q?=E3=82=AF=E3=83=AD=E3=83=83=E3=83=97?= =?UTF-8?q?=E3=81=8C=E6=AD=A3=E5=B8=B8=E3=81=AB=E3=83=AA=E3=82=BB=E3=83=83?= =?UTF-8?q?=E3=83=88=E3=81=95=E3=82=8C=E3=82=8B=E3=82=88=E3=81=86=E3=81=AB?= =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../android/libmedia/streaming/gles/SurfaceTextureRenderer.java | 1 + 1 file changed, 1 insertion(+) diff --git a/dConnectSDK/dConnectLibStreaming/libmedia/src/main/java/org/deviceconnect/android/libmedia/streaming/gles/SurfaceTextureRenderer.java b/dConnectSDK/dConnectLibStreaming/libmedia/src/main/java/org/deviceconnect/android/libmedia/streaming/gles/SurfaceTextureRenderer.java index 263cd22ff..9537ab7e3 100644 --- a/dConnectSDK/dConnectLibStreaming/libmedia/src/main/java/org/deviceconnect/android/libmedia/streaming/gles/SurfaceTextureRenderer.java +++ b/dConnectSDK/dConnectLibStreaming/libmedia/src/main/java/org/deviceconnect/android/libmedia/streaming/gles/SurfaceTextureRenderer.java @@ -254,6 +254,7 @@ public void drawFrame(SurfaceTexture st, int displayRotation) { */ public void clearCropRect() { mTriangleVertices.clear(); + mDefaultTriangleVertices.position(0); mTriangleVertices.put(mDefaultTriangleVertices).position(0); } From bb590b60edebfed4728adb9896cd6ae0a6735d40 Mon Sep 17 00:00:00 2001 From: TakayukiHoshi1984 Date: Fri, 25 Feb 2022 14:50:11 +0900 Subject: [PATCH 3/3] =?UTF-8?q?libmedia=E3=81=AEaar=E3=82=92=E3=82=A2?= =?UTF-8?q?=E3=83=83=E3=83=97=E3=83=AD=E3=83=BC=E3=83=89=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dConnectDeviceHost/app/build.gradle | 4 ++-- .../gradle/wrapper/gradle-wrapper.properties | 2 +- .../dConnectLibStreaming/libsrt/build.gradle | 21 +++++++++++++++++-- 3 files changed, 22 insertions(+), 5 deletions(-) diff --git a/dConnectDevicePlugin/dConnectDeviceHost/app/build.gradle b/dConnectDevicePlugin/dConnectDeviceHost/app/build.gradle index fd4fd164f..2b957403b 100644 --- a/dConnectDevicePlugin/dConnectDeviceHost/app/build.gradle +++ b/dConnectDevicePlugin/dConnectDeviceHost/app/build.gradle @@ -105,8 +105,8 @@ dependencies { implementation 'com.github.pedroSG94.rtmp-rtsp-stream-client-java:rtplibrary:1.9.7' implementation 'org.deviceconnect:dconnect-device-plugin-sdk:2.8.6' implementation 'org.deviceconnect:dconnect-demo-lib:1.0.1' - implementation 'org.deviceconnect:libmedia:1.3.0' - implementation 'org.deviceconnect:libsrt:1.3.0' + implementation 'org.deviceconnect:libmedia:1.4.0' + implementation 'org.deviceconnect:libsrt:1.4.0' // implementation project(':libmedia') // implementation project(':libsrt') } diff --git a/dConnectSDK/dConnectLibStreaming/gradle/wrapper/gradle-wrapper.properties b/dConnectSDK/dConnectLibStreaming/gradle/wrapper/gradle-wrapper.properties index 44eca53b8..2c953b140 100644 --- a/dConnectSDK/dConnectLibStreaming/gradle/wrapper/gradle-wrapper.properties +++ b/dConnectSDK/dConnectLibStreaming/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.4-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-6.5-bin.zip diff --git a/dConnectSDK/dConnectLibStreaming/libsrt/build.gradle b/dConnectSDK/dConnectLibStreaming/libsrt/build.gradle index f531265a6..521bb686d 100644 --- a/dConnectSDK/dConnectLibStreaming/libsrt/build.gradle +++ b/dConnectSDK/dConnectLibStreaming/libsrt/build.gradle @@ -6,7 +6,7 @@ if (githubPropertiesFile.exists()) { githubProperties.load(new FileInputStream(githubPropertiesFile)) } def getVersionName = { -> - return "1.3.0" // Replace with version Name + return "1.4.0" // Replace with version Name } def getArtificatId = { -> @@ -35,6 +35,23 @@ android { ndk { abiFilters "armeabi-v7a", "arm64-v8a", "x86", "x86_64" } + packagingOptions { + pickFirst 'lib/armeabi-v7a/libsrt.so' + pickFirst 'lib/x86_64/libsrt.so' + pickFirst 'lib/x86/libsrt.so' + pickFirst 'lib/arm64-v8a/libsrt.so' + pickFirst 'lib/armeabi-v7a/libc++_shared.so' + pickFirst 'lib/x86_64/libsrt-native-interface.so' + pickFirst 'lib/arm64-v8a/libc++_shared.so' + pickFirst 'lib/x86_64/libc++_shared.so' + pickFirst 'lib/armeabi-v7a/libsrt-native-interface.so' + pickFirst 'lib/x86/libc++_shared.so' + pickFirst 'lib/arm64-v8a/libsrt-native-interface.so' + pickFirst 'lib/x86/libsrt-native-interface.so' + pickFirst 'lib/armeabi-v7a/libnative-lib.so' + pickFirst 'lib/arm64-v8a/libnative-lib.so' + pickFirst 'lib/x86/libnative-lib.so' + } } buildTypes { @@ -93,7 +110,7 @@ android { dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) - implementation 'org.deviceconnect:libmedia:1.3.0' + implementation 'org.deviceconnect:libmedia:1.4.0' // implementation project(':libmedia') testImplementation 'junit:junit:4.13.2'