From 097dca154a392f21d1a8d1ea925393cb9cf4fb25 Mon Sep 17 00:00:00 2001 From: Samuel Newman Date: Wed, 11 Mar 2026 13:38:15 +0200 Subject: [PATCH] fix name conflict --- .../android/build.gradle | 4 +-- .../CodecSelector.kt | 26 ++++++++++++++++++- .../ExpoVideoCompressModule.kt | 2 +- .../VideoCompressor.kt | 15 ++++------- .../VideoProber.kt | 2 +- .../expo-module.config.json | 2 +- 6 files changed, 35 insertions(+), 16 deletions(-) rename modules/expo-bluesky-video-compress/android/src/main/java/expo/modules/{blueskyvideo => blueskyvideocompress}/CodecSelector.kt (72%) rename modules/expo-bluesky-video-compress/android/src/main/java/expo/modules/{blueskyvideo => blueskyvideocompress}/ExpoVideoCompressModule.kt (97%) rename modules/expo-bluesky-video-compress/android/src/main/java/expo/modules/{blueskyvideo => blueskyvideocompress}/VideoCompressor.kt (97%) rename modules/expo-bluesky-video-compress/android/src/main/java/expo/modules/{blueskyvideo => blueskyvideocompress}/VideoProber.kt (98%) diff --git a/modules/expo-bluesky-video-compress/android/build.gradle b/modules/expo-bluesky-video-compress/android/build.gradle index cbe3444463..be96c40154 100644 --- a/modules/expo-bluesky-video-compress/android/build.gradle +++ b/modules/expo-bluesky-video-compress/android/build.gradle @@ -1,6 +1,6 @@ apply plugin: 'com.android.library' -group = 'expo.modules.blueskyvideo' +group = 'expo.modules.blueskyvideocompress' version = '1.0.0' def expoModulesCorePlugin = new File(project(":expo-modules-core").projectDir.absolutePath, "ExpoModulesCorePlugin.gradle") @@ -18,7 +18,7 @@ buildscript { android { compileSdkVersion safeExtGet("compileSdkVersion", 34) - namespace "expo.modules.blueskyvideo" + namespace "expo.modules.blueskyvideocompress" defaultConfig { minSdkVersion safeExtGet("minSdkVersion", 21) targetSdkVersion safeExtGet("targetSdkVersion", 34) diff --git a/modules/expo-bluesky-video-compress/android/src/main/java/expo/modules/blueskyvideo/CodecSelector.kt b/modules/expo-bluesky-video-compress/android/src/main/java/expo/modules/blueskyvideocompress/CodecSelector.kt similarity index 72% rename from modules/expo-bluesky-video-compress/android/src/main/java/expo/modules/blueskyvideo/CodecSelector.kt rename to modules/expo-bluesky-video-compress/android/src/main/java/expo/modules/blueskyvideocompress/CodecSelector.kt index 3b6dc34e8d..a941e0b54d 100644 --- a/modules/expo-bluesky-video-compress/android/src/main/java/expo/modules/blueskyvideo/CodecSelector.kt +++ b/modules/expo-bluesky-video-compress/android/src/main/java/expo/modules/blueskyvideocompress/CodecSelector.kt @@ -1,4 +1,4 @@ -package expo.modules.blueskyvideo +package expo.modules.blueskyvideocompress import android.media.MediaCodecInfo import android.media.MediaCodecList @@ -69,4 +69,28 @@ object CodecSelector { isHardware = isHardware ) } + + fun selectSoftwareEncoder(): EncoderInfo? { + val codecList = MediaCodecList(MediaCodecList.REGULAR_CODECS) + + for (codecInfo in codecList.codecInfos) { + if (!codecInfo.isEncoder) continue + if (!codecInfo.supportedTypes.any { it.equals(VIDEO_AVC, ignoreCase = true) }) continue + if (DENYLIST.contains(codecInfo.name)) continue + + val isSoftware = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { + codecInfo.isSoftwareOnly + } else { + val name = codecInfo.name.lowercase() + name.contains("sw") || name.contains("google") || name.contains("c2.android") + } + + if (isSoftware) { + Log.d(TAG, "Selected software encoder: ${codecInfo.name}") + return EncoderInfo(name = codecInfo.name, isHardware = false) + } + } + + return null + } } diff --git a/modules/expo-bluesky-video-compress/android/src/main/java/expo/modules/blueskyvideo/ExpoVideoCompressModule.kt b/modules/expo-bluesky-video-compress/android/src/main/java/expo/modules/blueskyvideocompress/ExpoVideoCompressModule.kt similarity index 97% rename from modules/expo-bluesky-video-compress/android/src/main/java/expo/modules/blueskyvideo/ExpoVideoCompressModule.kt rename to modules/expo-bluesky-video-compress/android/src/main/java/expo/modules/blueskyvideocompress/ExpoVideoCompressModule.kt index d9118941a7..92d4c6b4d7 100644 --- a/modules/expo-bluesky-video-compress/android/src/main/java/expo/modules/blueskyvideo/ExpoVideoCompressModule.kt +++ b/modules/expo-bluesky-video-compress/android/src/main/java/expo/modules/blueskyvideocompress/ExpoVideoCompressModule.kt @@ -1,4 +1,4 @@ -package expo.modules.blueskyvideo +package expo.modules.blueskyvideocompress import expo.modules.kotlin.modules.Module import expo.modules.kotlin.modules.ModuleDefinition diff --git a/modules/expo-bluesky-video-compress/android/src/main/java/expo/modules/blueskyvideo/VideoCompressor.kt b/modules/expo-bluesky-video-compress/android/src/main/java/expo/modules/blueskyvideocompress/VideoCompressor.kt similarity index 97% rename from modules/expo-bluesky-video-compress/android/src/main/java/expo/modules/blueskyvideo/VideoCompressor.kt rename to modules/expo-bluesky-video-compress/android/src/main/java/expo/modules/blueskyvideocompress/VideoCompressor.kt index 698fac9f07..15fdf2c708 100644 --- a/modules/expo-bluesky-video-compress/android/src/main/java/expo/modules/blueskyvideo/VideoCompressor.kt +++ b/modules/expo-bluesky-video-compress/android/src/main/java/expo/modules/blueskyvideocompress/VideoCompressor.kt @@ -1,4 +1,4 @@ -package expo.modules.blueskyvideo +package expo.modules.blueskyvideocompress import android.content.Context import android.media.MediaCodec @@ -559,15 +559,10 @@ class VideoCompressor( } private fun findSoftwareEncoder(): String? { - val codecList = MediaCodecList(MediaCodecList.REGULAR_CODECS) - for (codecInfo in codecList.codecInfos) { - if (!codecInfo.isEncoder) continue - if (!codecInfo.supportedTypes.any { it.equals("video/avc", ignoreCase = true) }) continue - val name = codecInfo.name.lowercase() - if (name.contains("sw") || name.contains("google") || name.contains("c2.android")) { - return codecInfo.name - } + return try { + CodecSelector.selectSoftwareEncoder()?.name + } catch (_: Exception) { + null } - return null } } diff --git a/modules/expo-bluesky-video-compress/android/src/main/java/expo/modules/blueskyvideo/VideoProber.kt b/modules/expo-bluesky-video-compress/android/src/main/java/expo/modules/blueskyvideocompress/VideoProber.kt similarity index 98% rename from modules/expo-bluesky-video-compress/android/src/main/java/expo/modules/blueskyvideo/VideoProber.kt rename to modules/expo-bluesky-video-compress/android/src/main/java/expo/modules/blueskyvideocompress/VideoProber.kt index 1a176e9540..5cf15bbbd3 100644 --- a/modules/expo-bluesky-video-compress/android/src/main/java/expo/modules/blueskyvideo/VideoProber.kt +++ b/modules/expo-bluesky-video-compress/android/src/main/java/expo/modules/blueskyvideocompress/VideoProber.kt @@ -1,4 +1,4 @@ -package expo.modules.blueskyvideo +package expo.modules.blueskyvideocompress import android.content.Context import android.media.MediaExtractor diff --git a/modules/expo-bluesky-video-compress/expo-module.config.json b/modules/expo-bluesky-video-compress/expo-module.config.json index 8df0f76f4f..84877f47ed 100644 --- a/modules/expo-bluesky-video-compress/expo-module.config.json +++ b/modules/expo-bluesky-video-compress/expo-module.config.json @@ -4,6 +4,6 @@ "modules": ["ExpoVideoCompressModule"] }, "android": { - "modules": ["expo.modules.blueskyvideo.ExpoVideoCompressModule"] + "modules": ["expo.modules.blueskyvideocompress.ExpoVideoCompressModule"] } }