Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ import com.banuba.sdk.core.VideoResolution
import com.banuba.sdk.core.data.TrackData
import com.banuba.sdk.core.domain.AspectRatioProvider
import com.banuba.sdk.core.domain.DraftConfig
import com.banuba.sdk.core.MediaResolutionProvider
import com.banuba.sdk.core.ext.toPx
import com.banuba.sdk.core.media.MediaFileNameHelper
import com.banuba.sdk.core.ui.ContentFeatureProvider
Expand Down Expand Up @@ -126,9 +127,36 @@ private class SampleIntegrationVeKoinModule {
override fun provide(): AspectRatio = AspectRatio(9.0 / 16)
}
}

single<MediaResolutionProvider> {
CustomMediaResolutionProvider(
hardwareClassProvider = get()
)
}
}
}

class CustomMediaResolutionProvider(
val hardwareClassProvider: HardwareClassProvider
) : MediaResolutionProvider {

private val hardwareClass = hardwareClassProvider.provideHardwareClass()

override fun provideOptimalSlideShowVideoSize() = hardwareClass.optimalResolution

override fun provideOptimalTrimmerVideoSize() = hardwareClass.optimalResolution

override fun provideOptimalEditorVideoSize() = hardwareClass.optimalResolution

// Setting exact resolution to camera
// Please keep in mind
// 1. Front/Back camera has different capabilities. For example, UHD might be available on Back, and not on Front
// 2. Very high resolution affects performance especially when using Face AR on low level devices.
override fun provideOptimalCameraPreviewSize() = VideoResolution.Exact.UHD

override fun provideMaxFastTrimmerVideoSize() = hardwareClass.optimalResolution
}

private class CustomExportParamsProvider(
private val exportDir: Uri,
private val videoResolution: VideoResolution,
Expand Down