fix name conflict

This commit is contained in:
Samuel Newman
2026-03-11 13:38:15 +02:00
parent c1d92e84ac
commit 097dca154a
6 changed files with 35 additions and 16 deletions
@@ -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)
@@ -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
}
}
@@ -1,4 +1,4 @@
package expo.modules.blueskyvideo
package expo.modules.blueskyvideocompress
import expo.modules.kotlin.modules.Module
import expo.modules.kotlin.modules.ModuleDefinition
@@ -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
}
}
@@ -1,4 +1,4 @@
package expo.modules.blueskyvideo
package expo.modules.blueskyvideocompress
import android.content.Context
import android.media.MediaExtractor
@@ -4,6 +4,6 @@
"modules": ["ExpoVideoCompressModule"]
},
"android": {
"modules": ["expo.modules.blueskyvideo.ExpoVideoCompressModule"]
"modules": ["expo.modules.blueskyvideocompress.ExpoVideoCompressModule"]
}
}