From dd2fcf0a191d8683d2dc1e13e4b261f1799c6503 Mon Sep 17 00:00:00 2001 From: Jason Ross Date: Thu, 20 Aug 2026 18:31:43 -0500 Subject: [PATCH] Rename the project to LibreMediaConverter Done now rather than later: the application ID is permanent once published -- Play treats a change as an entirely different app -- so this is the last cheap moment to choose it. applicationId / namespace dev.jasonmross.mediaconverter -> org.libremediaconverter source tree java/dev/jasonmross/mediaconverter -> java/org/libremediaconverter gradle project AndroidMediaConverter -> LibreMediaConverter theme Theme.MediaConverter -> Theme.LibreMediaConverter compose theme MediaConverterTheme -> LibreMediaConverterTheme display name "Media Converter" -> "LibreMediaConverter" org.* rather than dev.jasonmross.* because "Libre" signals a project rather than a personal app, and a project-owned namespace lets maintainership move later without the identifier contradicting reality. The source trees moved with git mv so history follows the files instead of showing 42 deletions beside 42 additions. Verified after the rename: 66 unit tests, and 40 instrumented tests on an API 36 emulator, 0 failures. The built APK reports org.libremediaconverter, and no stale jasonmross, AndroidMediaConverter or MediaConverterTheme identifiers remain anywhere in the tree. Co-Authored-By: Claude Opus 5 (1M context) --- PRIVACY.md | 2 +- README.md | 2 +- app/build.gradle.kts | 4 ++-- .../bench/RealMediaBenchmark.kt | 22 +++++++++---------- .../convert/Media3EngineTest.kt | 2 +- .../fallback/FakeFailures.kt | 12 +++++----- .../fallback/ForcedFailureTest.kt | 16 +++++++------- .../fallback/HardwareFallbackTest.kt | 8 +++---- .../fallback/UnopenableUriTest.kt | 12 +++++----- .../ffmpeg/FFmpegEngineTest.kt | 10 ++++----- .../join/ConcatEngineTest.kt | 8 +++---- .../join/ConcatWorkerTest.kt | 6 ++--- .../work/ConversionWorkerTest.kt | 12 +++++----- app/src/main/AndroidManifest.xml | 4 ++-- .../libremediaconverter}/MainActivity.kt | 10 ++++----- .../codec/AndroidDeviceCodecs.kt | 8 +++---- .../convert/ConversionViewModel.kt | 10 ++++----- .../convert/ConverterScreen.kt | 16 +++++++------- .../convert/Media3Engine.kt | 2 +- .../convert/MediaProbe.kt | 6 ++--- .../convert/OutputPublisher.kt | 2 +- .../convert/Transcoders.kt | 10 ++++----- .../ffmpeg/ConcatEngine.kt | 10 ++++----- .../ffmpeg/FFmpegCommandBuilder.kt | 18 +++++++-------- .../ffmpeg/FFmpegConcatCommand.kt | 10 ++++----- .../ffmpeg/FFmpegEngine.kt | 8 +++---- .../libremediaconverter}/join/JoinScreen.kt | 12 +++++----- .../join/JoinViewModel.kt | 10 ++++----- .../model/ConcatStrategy.kt | 2 +- .../model/ConversionRouter.kt | 2 +- .../model/OutputFormat.kt | 2 +- .../libremediaconverter}/ui/Dimens.kt | 2 +- .../libremediaconverter}/ui/theme/Color.kt | 2 +- .../libremediaconverter}/ui/theme/Theme.kt | 4 ++-- .../libremediaconverter}/ui/theme/Type.kt | 2 +- .../libremediaconverter}/work/ConcatWorker.kt | 8 +++---- .../work/ConversionForegroundType.kt | 2 +- .../work/ConversionNotifications.kt | 4 ++-- .../work/ConversionWorker.kt | 20 ++++++++--------- .../work/FailureOutcome.kt | 2 +- app/src/main/res/values-night/themes.xml | 2 +- app/src/main/res/values/strings.xml | 2 +- app/src/main/res/values/themes.xml | 2 +- .../ffmpeg/FFmpegCommandBuilderTest.kt | 8 +++---- .../ffmpeg/FFmpegConcatCommandTest.kt | 6 ++--- .../model/ConcatPlannerTest.kt | 2 +- .../model/ConversionRouterTest.kt | 4 ++-- .../model/OutputFormatTest.kt | 2 +- .../work/FailureOutcomeTest.kt | 2 +- fastlane/metadata/android/en-US/title.txt | 2 +- settings.gradle.kts | 2 +- 51 files changed, 169 insertions(+), 169 deletions(-) rename app/src/androidTest/java/{dev/jasonmross/mediaconverter => org/libremediaconverter}/bench/RealMediaBenchmark.kt (91%) rename app/src/androidTest/java/{dev/jasonmross/mediaconverter => org/libremediaconverter}/convert/Media3EngineTest.kt (99%) rename app/src/androidTest/java/{dev/jasonmross/mediaconverter => org/libremediaconverter}/fallback/FakeFailures.kt (85%) rename app/src/androidTest/java/{dev/jasonmross/mediaconverter => org/libremediaconverter}/fallback/ForcedFailureTest.kt (94%) rename app/src/androidTest/java/{dev/jasonmross/mediaconverter => org/libremediaconverter}/fallback/HardwareFallbackTest.kt (94%) rename app/src/androidTest/java/{dev/jasonmross/mediaconverter => org/libremediaconverter}/fallback/UnopenableUriTest.kt (92%) rename app/src/androidTest/java/{dev/jasonmross/mediaconverter => org/libremediaconverter}/ffmpeg/FFmpegEngineTest.kt (94%) rename app/src/androidTest/java/{dev/jasonmross/mediaconverter => org/libremediaconverter}/join/ConcatEngineTest.kt (96%) rename app/src/androidTest/java/{dev/jasonmross/mediaconverter => org/libremediaconverter}/join/ConcatWorkerTest.kt (95%) rename app/src/androidTest/java/{dev/jasonmross/mediaconverter => org/libremediaconverter}/work/ConversionWorkerTest.kt (96%) rename app/src/main/java/{dev/jasonmross/mediaconverter => org/libremediaconverter}/MainActivity.kt (94%) rename app/src/main/java/{dev/jasonmross/mediaconverter => org/libremediaconverter}/codec/AndroidDeviceCodecs.kt (95%) rename app/src/main/java/{dev/jasonmross/mediaconverter => org/libremediaconverter}/convert/ConversionViewModel.kt (96%) rename app/src/main/java/{dev/jasonmross/mediaconverter => org/libremediaconverter}/convert/ConverterScreen.kt (96%) rename app/src/main/java/{dev/jasonmross/mediaconverter => org/libremediaconverter}/convert/Media3Engine.kt (99%) rename app/src/main/java/{dev/jasonmross/mediaconverter => org/libremediaconverter}/convert/MediaProbe.kt (96%) rename app/src/main/java/{dev/jasonmross/mediaconverter => org/libremediaconverter}/convert/OutputPublisher.kt (97%) rename app/src/main/java/{dev/jasonmross/mediaconverter => org/libremediaconverter}/convert/Transcoders.kt (89%) rename app/src/main/java/{dev/jasonmross/mediaconverter => org/libremediaconverter}/ffmpeg/ConcatEngine.kt (91%) rename app/src/main/java/{dev/jasonmross/mediaconverter => org/libremediaconverter}/ffmpeg/FFmpegCommandBuilder.kt (91%) rename app/src/main/java/{dev/jasonmross/mediaconverter => org/libremediaconverter}/ffmpeg/FFmpegConcatCommand.kt (87%) rename app/src/main/java/{dev/jasonmross/mediaconverter => org/libremediaconverter}/ffmpeg/FFmpegEngine.kt (92%) rename app/src/main/java/{dev/jasonmross/mediaconverter => org/libremediaconverter}/join/JoinScreen.kt (95%) rename app/src/main/java/{dev/jasonmross/mediaconverter => org/libremediaconverter}/join/JoinViewModel.kt (94%) rename app/src/main/java/{dev/jasonmross/mediaconverter => org/libremediaconverter}/model/ConcatStrategy.kt (98%) rename app/src/main/java/{dev/jasonmross/mediaconverter => org/libremediaconverter}/model/ConversionRouter.kt (99%) rename app/src/main/java/{dev/jasonmross/mediaconverter => org/libremediaconverter}/model/OutputFormat.kt (98%) rename app/src/main/java/{dev/jasonmross/mediaconverter => org/libremediaconverter}/ui/Dimens.kt (94%) rename app/src/main/java/{dev/jasonmross/mediaconverter => org/libremediaconverter}/ui/theme/Color.kt (87%) rename app/src/main/java/{dev/jasonmross/mediaconverter => org/libremediaconverter}/ui/theme/Theme.kt (95%) rename app/src/main/java/{dev/jasonmross/mediaconverter => org/libremediaconverter}/ui/theme/Type.kt (62%) rename app/src/main/java/{dev/jasonmross/mediaconverter => org/libremediaconverter}/work/ConcatWorker.kt (95%) rename app/src/main/java/{dev/jasonmross/mediaconverter => org/libremediaconverter}/work/ConversionForegroundType.kt (97%) rename app/src/main/java/{dev/jasonmross/mediaconverter => org/libremediaconverter}/work/ConversionNotifications.kt (96%) rename app/src/main/java/{dev/jasonmross/mediaconverter => org/libremediaconverter}/work/ConversionWorker.kt (94%) rename app/src/main/java/{dev/jasonmross/mediaconverter => org/libremediaconverter}/work/FailureOutcome.kt (95%) rename app/src/test/java/{dev/jasonmross/mediaconverter => org/libremediaconverter}/ffmpeg/FFmpegCommandBuilderTest.kt (97%) rename app/src/test/java/{dev/jasonmross/mediaconverter => org/libremediaconverter}/ffmpeg/FFmpegConcatCommandTest.kt (95%) rename app/src/test/java/{dev/jasonmross/mediaconverter => org/libremediaconverter}/model/ConcatPlannerTest.kt (98%) rename app/src/test/java/{dev/jasonmross/mediaconverter => org/libremediaconverter}/model/ConversionRouterTest.kt (98%) rename app/src/test/java/{dev/jasonmross/mediaconverter => org/libremediaconverter}/model/OutputFormatTest.kt (98%) rename app/src/test/java/{dev/jasonmross/mediaconverter => org/libremediaconverter}/work/FailureOutcomeTest.kt (98%) diff --git a/PRIVACY.md b/PRIVACY.md index 0079d48..4f935d9 100644 --- a/PRIVACY.md +++ b/PRIVACY.md @@ -1,6 +1,6 @@ # Privacy Policy -**Media Converter does not collect any data.** +**LibreMediaConverter does not collect any data.** That is the whole policy, but here is what it means concretely. diff --git a/README.md b/README.md index 8ee56e1..8024ee2 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Media Converter +# LibreMediaConverter A free and open-source media converter for Android — batch video transcoding and compression, audio extraction and conversion, GIF and frame export, and file merging. diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 4778ad7..25a08d5 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -5,14 +5,14 @@ plugins { } android { - namespace = "dev.jasonmross.mediaconverter" + namespace = "org.libremediaconverter" compileSdk { version = release(37) } defaultConfig { - applicationId = "dev.jasonmross.mediaconverter" + applicationId = "org.libremediaconverter" minSdk = 33 // AGP 9 defaults targetSdk to compileSdk, so always state it explicitly. targetSdk = 37 diff --git a/app/src/androidTest/java/dev/jasonmross/mediaconverter/bench/RealMediaBenchmark.kt b/app/src/androidTest/java/org/libremediaconverter/bench/RealMediaBenchmark.kt similarity index 91% rename from app/src/androidTest/java/dev/jasonmross/mediaconverter/bench/RealMediaBenchmark.kt rename to app/src/androidTest/java/org/libremediaconverter/bench/RealMediaBenchmark.kt index 66a80ef..f103d38 100644 --- a/app/src/androidTest/java/dev/jasonmross/mediaconverter/bench/RealMediaBenchmark.kt +++ b/app/src/androidTest/java/org/libremediaconverter/bench/RealMediaBenchmark.kt @@ -1,4 +1,4 @@ -package dev.jasonmross.mediaconverter.bench +package org.libremediaconverter.bench import android.media.MediaExtractor import android.media.MediaFormat @@ -8,15 +8,15 @@ import androidx.media3.common.MimeTypes import androidx.media3.common.util.UnstableApi import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.platform.app.InstrumentationRegistry -import dev.jasonmross.mediaconverter.codec.AndroidDeviceCodecs -import dev.jasonmross.mediaconverter.convert.Media3Engine -import dev.jasonmross.mediaconverter.convert.MediaProbe -import dev.jasonmross.mediaconverter.ffmpeg.FFmpegEngine -import dev.jasonmross.mediaconverter.model.ConversionRequest -import dev.jasonmross.mediaconverter.model.ConversionRouter -import dev.jasonmross.mediaconverter.model.OutputFormat -import dev.jasonmross.mediaconverter.model.QualityTier -import dev.jasonmross.mediaconverter.model.VideoCodec +import org.libremediaconverter.codec.AndroidDeviceCodecs +import org.libremediaconverter.convert.Media3Engine +import org.libremediaconverter.convert.MediaProbe +import org.libremediaconverter.ffmpeg.FFmpegEngine +import org.libremediaconverter.model.ConversionRequest +import org.libremediaconverter.model.ConversionRouter +import org.libremediaconverter.model.OutputFormat +import org.libremediaconverter.model.QualityTier +import org.libremediaconverter.model.VideoCodec import kotlinx.coroutines.runBlocking import org.junit.Assume.assumeTrue import org.junit.Test @@ -38,7 +38,7 @@ import java.io.File * 2. that x264's CRF is worth the GPL licence the app carries for it. * * Skips itself when the sample files are absent, so it is harmless in CI. Populate with: - * adb push .mp4 /sdcard/Android/data/dev.jasonmross.mediaconverter/files/ + * adb push .mp4 /sdcard/Android/data/org.libremediaconverter/files/ */ @UnstableApi @RunWith(AndroidJUnit4::class) diff --git a/app/src/androidTest/java/dev/jasonmross/mediaconverter/convert/Media3EngineTest.kt b/app/src/androidTest/java/org/libremediaconverter/convert/Media3EngineTest.kt similarity index 99% rename from app/src/androidTest/java/dev/jasonmross/mediaconverter/convert/Media3EngineTest.kt rename to app/src/androidTest/java/org/libremediaconverter/convert/Media3EngineTest.kt index 6bffa01..dc28d79 100644 --- a/app/src/androidTest/java/dev/jasonmross/mediaconverter/convert/Media3EngineTest.kt +++ b/app/src/androidTest/java/org/libremediaconverter/convert/Media3EngineTest.kt @@ -1,4 +1,4 @@ -package dev.jasonmross.mediaconverter.convert +package org.libremediaconverter.convert import android.media.MediaExtractor import android.media.MediaFormat diff --git a/app/src/androidTest/java/dev/jasonmross/mediaconverter/fallback/FakeFailures.kt b/app/src/androidTest/java/org/libremediaconverter/fallback/FakeFailures.kt similarity index 85% rename from app/src/androidTest/java/dev/jasonmross/mediaconverter/fallback/FakeFailures.kt rename to app/src/androidTest/java/org/libremediaconverter/fallback/FakeFailures.kt index b8b0fd1..84b93e8 100644 --- a/app/src/androidTest/java/dev/jasonmross/mediaconverter/fallback/FakeFailures.kt +++ b/app/src/androidTest/java/org/libremediaconverter/fallback/FakeFailures.kt @@ -1,12 +1,12 @@ -package dev.jasonmross.mediaconverter.fallback +package org.libremediaconverter.fallback import android.content.Context import android.net.Uri -import dev.jasonmross.mediaconverter.convert.ConversionDependencies -import dev.jasonmross.mediaconverter.convert.HardwareTranscoder -import dev.jasonmross.mediaconverter.convert.OutputPublisher -import dev.jasonmross.mediaconverter.convert.SoftwareTranscoder -import dev.jasonmross.mediaconverter.model.ConversionRequest +import org.libremediaconverter.convert.ConversionDependencies +import org.libremediaconverter.convert.HardwareTranscoder +import org.libremediaconverter.convert.OutputPublisher +import org.libremediaconverter.convert.SoftwareTranscoder +import org.libremediaconverter.model.ConversionRequest import java.io.File /** diff --git a/app/src/androidTest/java/dev/jasonmross/mediaconverter/fallback/ForcedFailureTest.kt b/app/src/androidTest/java/org/libremediaconverter/fallback/ForcedFailureTest.kt similarity index 94% rename from app/src/androidTest/java/dev/jasonmross/mediaconverter/fallback/ForcedFailureTest.kt rename to app/src/androidTest/java/org/libremediaconverter/fallback/ForcedFailureTest.kt index eb3ea9e..654468e 100644 --- a/app/src/androidTest/java/dev/jasonmross/mediaconverter/fallback/ForcedFailureTest.kt +++ b/app/src/androidTest/java/org/libremediaconverter/fallback/ForcedFailureTest.kt @@ -1,4 +1,4 @@ -package dev.jasonmross.mediaconverter.fallback +package org.libremediaconverter.fallback import android.net.Uri import androidx.media3.common.util.UnstableApi @@ -6,13 +6,13 @@ import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.platform.app.InstrumentationRegistry import androidx.work.WorkInfo import androidx.work.WorkManager -import dev.jasonmross.mediaconverter.convert.ConversionDependencies -import dev.jasonmross.mediaconverter.model.DeviceCodecs -import dev.jasonmross.mediaconverter.model.Engine -import dev.jasonmross.mediaconverter.model.OutputFormat -import dev.jasonmross.mediaconverter.model.QualityTier -import dev.jasonmross.mediaconverter.work.ConcatWorker -import dev.jasonmross.mediaconverter.work.ConversionWorker +import org.libremediaconverter.convert.ConversionDependencies +import org.libremediaconverter.model.DeviceCodecs +import org.libremediaconverter.model.Engine +import org.libremediaconverter.model.OutputFormat +import org.libremediaconverter.model.QualityTier +import org.libremediaconverter.work.ConcatWorker +import org.libremediaconverter.work.ConversionWorker import kotlinx.coroutines.flow.first import kotlinx.coroutines.runBlocking import kotlinx.coroutines.withTimeout diff --git a/app/src/androidTest/java/dev/jasonmross/mediaconverter/fallback/HardwareFallbackTest.kt b/app/src/androidTest/java/org/libremediaconverter/fallback/HardwareFallbackTest.kt similarity index 94% rename from app/src/androidTest/java/dev/jasonmross/mediaconverter/fallback/HardwareFallbackTest.kt rename to app/src/androidTest/java/org/libremediaconverter/fallback/HardwareFallbackTest.kt index 0f148db..c6f3dac 100644 --- a/app/src/androidTest/java/dev/jasonmross/mediaconverter/fallback/HardwareFallbackTest.kt +++ b/app/src/androidTest/java/org/libremediaconverter/fallback/HardwareFallbackTest.kt @@ -1,4 +1,4 @@ -package dev.jasonmross.mediaconverter.fallback +package org.libremediaconverter.fallback import android.net.Uri import androidx.media3.common.util.UnstableApi @@ -6,9 +6,9 @@ import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.platform.app.InstrumentationRegistry import androidx.work.WorkInfo import androidx.work.WorkManager -import dev.jasonmross.mediaconverter.model.OutputFormat -import dev.jasonmross.mediaconverter.model.QualityTier -import dev.jasonmross.mediaconverter.work.ConversionWorker +import org.libremediaconverter.model.OutputFormat +import org.libremediaconverter.model.QualityTier +import org.libremediaconverter.work.ConversionWorker import kotlinx.coroutines.flow.first import kotlinx.coroutines.runBlocking import kotlinx.coroutines.withTimeout diff --git a/app/src/androidTest/java/dev/jasonmross/mediaconverter/fallback/UnopenableUriTest.kt b/app/src/androidTest/java/org/libremediaconverter/fallback/UnopenableUriTest.kt similarity index 92% rename from app/src/androidTest/java/dev/jasonmross/mediaconverter/fallback/UnopenableUriTest.kt rename to app/src/androidTest/java/org/libremediaconverter/fallback/UnopenableUriTest.kt index d5afd72..4b1084d 100644 --- a/app/src/androidTest/java/dev/jasonmross/mediaconverter/fallback/UnopenableUriTest.kt +++ b/app/src/androidTest/java/org/libremediaconverter/fallback/UnopenableUriTest.kt @@ -1,4 +1,4 @@ -package dev.jasonmross.mediaconverter.fallback +package org.libremediaconverter.fallback import android.net.Uri import androidx.media3.common.util.UnstableApi @@ -8,10 +8,10 @@ import androidx.work.Data import androidx.work.OneTimeWorkRequestBuilder import androidx.work.WorkInfo import androidx.work.WorkManager -import dev.jasonmross.mediaconverter.convert.OutputPublisher -import dev.jasonmross.mediaconverter.ffmpeg.ConcatEngine -import dev.jasonmross.mediaconverter.work.ConcatWorker -import dev.jasonmross.mediaconverter.work.ConversionWorker +import org.libremediaconverter.convert.OutputPublisher +import org.libremediaconverter.ffmpeg.ConcatEngine +import org.libremediaconverter.work.ConcatWorker +import org.libremediaconverter.work.ConversionWorker import kotlinx.coroutines.flow.first import kotlinx.coroutines.runBlocking import kotlinx.coroutines.withTimeout @@ -45,7 +45,7 @@ class UnopenableUriTest { private lateinit var staged: File /** A syntactically valid content URI whose authority does not exist. */ - private val bogus: Uri = Uri.parse("content://dev.jasonmross.nonexistent.provider/media/1") + private val bogus: Uri = Uri.parse("content://org.libremediaconverter.nonexistent.provider/media/1") @Before fun setUp() { diff --git a/app/src/androidTest/java/dev/jasonmross/mediaconverter/ffmpeg/FFmpegEngineTest.kt b/app/src/androidTest/java/org/libremediaconverter/ffmpeg/FFmpegEngineTest.kt similarity index 94% rename from app/src/androidTest/java/dev/jasonmross/mediaconverter/ffmpeg/FFmpegEngineTest.kt rename to app/src/androidTest/java/org/libremediaconverter/ffmpeg/FFmpegEngineTest.kt index 7436166..56f0c84 100644 --- a/app/src/androidTest/java/dev/jasonmross/mediaconverter/ffmpeg/FFmpegEngineTest.kt +++ b/app/src/androidTest/java/org/libremediaconverter/ffmpeg/FFmpegEngineTest.kt @@ -1,12 +1,12 @@ -package dev.jasonmross.mediaconverter.ffmpeg +package org.libremediaconverter.ffmpeg import android.media.MediaExtractor import android.media.MediaFormat import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.platform.app.InstrumentationRegistry -import dev.jasonmross.mediaconverter.model.ConversionRequest -import dev.jasonmross.mediaconverter.model.OutputFormat -import dev.jasonmross.mediaconverter.model.QualityTier +import org.libremediaconverter.model.ConversionRequest +import org.libremediaconverter.model.OutputFormat +import org.libremediaconverter.model.QualityTier import kotlinx.coroutines.runBlocking import org.junit.After import org.junit.Assert.assertEquals @@ -28,7 +28,7 @@ import java.io.File class FFmpegEngineTest { private val context = InstrumentationRegistry.getInstrumentation().targetContext - private val engine: dev.jasonmross.mediaconverter.convert.SoftwareTranscoder = FFmpegEngine() + private val engine: org.libremediaconverter.convert.SoftwareTranscoder = FFmpegEngine() private lateinit var input: File private val outputs = mutableListOf() diff --git a/app/src/androidTest/java/dev/jasonmross/mediaconverter/join/ConcatEngineTest.kt b/app/src/androidTest/java/org/libremediaconverter/join/ConcatEngineTest.kt similarity index 96% rename from app/src/androidTest/java/dev/jasonmross/mediaconverter/join/ConcatEngineTest.kt rename to app/src/androidTest/java/org/libremediaconverter/join/ConcatEngineTest.kt index 1d75fc8..b9c703c 100644 --- a/app/src/androidTest/java/dev/jasonmross/mediaconverter/join/ConcatEngineTest.kt +++ b/app/src/androidTest/java/org/libremediaconverter/join/ConcatEngineTest.kt @@ -1,13 +1,13 @@ -package dev.jasonmross.mediaconverter.join +package org.libremediaconverter.join import android.media.MediaExtractor import android.media.MediaFormat import android.net.Uri import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.platform.app.InstrumentationRegistry -import dev.jasonmross.mediaconverter.convert.MediaProbe -import dev.jasonmross.mediaconverter.ffmpeg.ConcatEngine -import dev.jasonmross.mediaconverter.model.ConcatStrategy +import org.libremediaconverter.convert.MediaProbe +import org.libremediaconverter.ffmpeg.ConcatEngine +import org.libremediaconverter.model.ConcatStrategy import kotlinx.coroutines.runBlocking import org.junit.After import org.junit.Assert.assertEquals diff --git a/app/src/androidTest/java/dev/jasonmross/mediaconverter/join/ConcatWorkerTest.kt b/app/src/androidTest/java/org/libremediaconverter/join/ConcatWorkerTest.kt similarity index 95% rename from app/src/androidTest/java/dev/jasonmross/mediaconverter/join/ConcatWorkerTest.kt rename to app/src/androidTest/java/org/libremediaconverter/join/ConcatWorkerTest.kt index 16a84e5..84bfdba 100644 --- a/app/src/androidTest/java/dev/jasonmross/mediaconverter/join/ConcatWorkerTest.kt +++ b/app/src/androidTest/java/org/libremediaconverter/join/ConcatWorkerTest.kt @@ -1,4 +1,4 @@ -package dev.jasonmross.mediaconverter.join +package org.libremediaconverter.join import android.net.Uri import androidx.media3.common.util.UnstableApi @@ -6,8 +6,8 @@ import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.platform.app.InstrumentationRegistry import androidx.work.WorkInfo import androidx.work.WorkManager -import dev.jasonmross.mediaconverter.model.ConcatStrategy -import dev.jasonmross.mediaconverter.work.ConcatWorker +import org.libremediaconverter.model.ConcatStrategy +import org.libremediaconverter.work.ConcatWorker import kotlinx.coroutines.flow.first import kotlinx.coroutines.runBlocking import kotlinx.coroutines.withTimeout diff --git a/app/src/androidTest/java/dev/jasonmross/mediaconverter/work/ConversionWorkerTest.kt b/app/src/androidTest/java/org/libremediaconverter/work/ConversionWorkerTest.kt similarity index 96% rename from app/src/androidTest/java/dev/jasonmross/mediaconverter/work/ConversionWorkerTest.kt rename to app/src/androidTest/java/org/libremediaconverter/work/ConversionWorkerTest.kt index f90a7ab..84cf9ff 100644 --- a/app/src/androidTest/java/dev/jasonmross/mediaconverter/work/ConversionWorkerTest.kt +++ b/app/src/androidTest/java/org/libremediaconverter/work/ConversionWorkerTest.kt @@ -1,4 +1,4 @@ -package dev.jasonmross.mediaconverter.work +package org.libremediaconverter.work import android.content.pm.ServiceInfo import android.net.Uri @@ -8,11 +8,11 @@ import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.platform.app.InstrumentationRegistry import androidx.work.WorkInfo import androidx.work.WorkManager -import dev.jasonmross.mediaconverter.codec.AndroidDeviceCodecs -import dev.jasonmross.mediaconverter.model.Engine -import dev.jasonmross.mediaconverter.model.OutputFormat -import dev.jasonmross.mediaconverter.model.QualityTier -import dev.jasonmross.mediaconverter.model.VideoCodec +import org.libremediaconverter.codec.AndroidDeviceCodecs +import org.libremediaconverter.model.Engine +import org.libremediaconverter.model.OutputFormat +import org.libremediaconverter.model.QualityTier +import org.libremediaconverter.model.VideoCodec import kotlinx.coroutines.flow.first import kotlinx.coroutines.runBlocking import kotlinx.coroutines.withTimeout diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 0d0ee33..983c19d 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -28,12 +28,12 @@ android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" - android:theme="@style/Theme.MediaConverter"> + android:theme="@style/Theme.LibreMediaConverter"> + android:theme="@style/Theme.LibreMediaConverter"> diff --git a/app/src/main/java/dev/jasonmross/mediaconverter/MainActivity.kt b/app/src/main/java/org/libremediaconverter/MainActivity.kt similarity index 94% rename from app/src/main/java/dev/jasonmross/mediaconverter/MainActivity.kt rename to app/src/main/java/org/libremediaconverter/MainActivity.kt index ddb35ba..14139ae 100644 --- a/app/src/main/java/dev/jasonmross/mediaconverter/MainActivity.kt +++ b/app/src/main/java/org/libremediaconverter/MainActivity.kt @@ -1,4 +1,4 @@ -package dev.jasonmross.mediaconverter +package org.libremediaconverter import android.os.Bundle import androidx.activity.ComponentActivity @@ -24,9 +24,9 @@ import androidx.compose.runtime.remember import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier import androidx.media3.common.util.UnstableApi -import dev.jasonmross.mediaconverter.convert.ConverterScreen -import dev.jasonmross.mediaconverter.join.JoinScreen -import dev.jasonmross.mediaconverter.ui.theme.MediaConverterTheme +import org.libremediaconverter.convert.ConverterScreen +import org.libremediaconverter.join.JoinScreen +import org.libremediaconverter.ui.theme.LibreMediaConverterTheme private enum class Destination(val label: String) { CONVERT("Convert"), @@ -43,7 +43,7 @@ class MainActivity : ComponentActivity() { enableEdgeToEdge() super.onCreate(savedInstanceState) setContent { - MediaConverterTheme { + LibreMediaConverterTheme { AppRoot(widthSizeClass = calculateWindowSizeClass(this).widthSizeClass) } } diff --git a/app/src/main/java/dev/jasonmross/mediaconverter/codec/AndroidDeviceCodecs.kt b/app/src/main/java/org/libremediaconverter/codec/AndroidDeviceCodecs.kt similarity index 95% rename from app/src/main/java/dev/jasonmross/mediaconverter/codec/AndroidDeviceCodecs.kt rename to app/src/main/java/org/libremediaconverter/codec/AndroidDeviceCodecs.kt index 8295826..8f91a82 100644 --- a/app/src/main/java/dev/jasonmross/mediaconverter/codec/AndroidDeviceCodecs.kt +++ b/app/src/main/java/org/libremediaconverter/codec/AndroidDeviceCodecs.kt @@ -1,12 +1,12 @@ -package dev.jasonmross.mediaconverter.codec +package org.libremediaconverter.codec import android.media.MediaCodecInfo import android.media.MediaCodecList import android.media.MediaFormat import android.util.Log -import dev.jasonmross.mediaconverter.model.DeviceCodecs -import dev.jasonmross.mediaconverter.model.InputProbe -import dev.jasonmross.mediaconverter.model.VideoCodec +import org.libremediaconverter.model.DeviceCodecs +import org.libremediaconverter.model.InputProbe +import org.libremediaconverter.model.VideoCodec /** * What this device's codec hardware can actually do. diff --git a/app/src/main/java/dev/jasonmross/mediaconverter/convert/ConversionViewModel.kt b/app/src/main/java/org/libremediaconverter/convert/ConversionViewModel.kt similarity index 96% rename from app/src/main/java/dev/jasonmross/mediaconverter/convert/ConversionViewModel.kt rename to app/src/main/java/org/libremediaconverter/convert/ConversionViewModel.kt index aeba52a..14ef94f 100644 --- a/app/src/main/java/dev/jasonmross/mediaconverter/convert/ConversionViewModel.kt +++ b/app/src/main/java/org/libremediaconverter/convert/ConversionViewModel.kt @@ -1,4 +1,4 @@ -package dev.jasonmross.mediaconverter.convert +package org.libremediaconverter.convert import android.app.Application import android.net.Uri @@ -8,10 +8,10 @@ import androidx.lifecycle.viewModelScope import androidx.media3.common.util.UnstableApi import androidx.work.WorkInfo import androidx.work.WorkManager -import dev.jasonmross.mediaconverter.model.EnginePreference -import dev.jasonmross.mediaconverter.model.OutputFormat -import dev.jasonmross.mediaconverter.model.QualityTier -import dev.jasonmross.mediaconverter.work.ConversionWorker +import org.libremediaconverter.model.EnginePreference +import org.libremediaconverter.model.OutputFormat +import org.libremediaconverter.model.QualityTier +import org.libremediaconverter.work.ConversionWorker import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Job import kotlinx.coroutines.flow.MutableStateFlow diff --git a/app/src/main/java/dev/jasonmross/mediaconverter/convert/ConverterScreen.kt b/app/src/main/java/org/libremediaconverter/convert/ConverterScreen.kt similarity index 96% rename from app/src/main/java/dev/jasonmross/mediaconverter/convert/ConverterScreen.kt rename to app/src/main/java/org/libremediaconverter/convert/ConverterScreen.kt index 727d3fd..6fde369 100644 --- a/app/src/main/java/dev/jasonmross/mediaconverter/convert/ConverterScreen.kt +++ b/app/src/main/java/org/libremediaconverter/convert/ConverterScreen.kt @@ -1,4 +1,4 @@ -package dev.jasonmross.mediaconverter.convert +package org.libremediaconverter.convert import android.Manifest import androidx.activity.compose.rememberLauncherForActivityResult @@ -27,15 +27,15 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp -import dev.jasonmross.mediaconverter.ui.PrimaryButtonHeight -import dev.jasonmross.mediaconverter.ui.ScreenPaddingHorizontal -import dev.jasonmross.mediaconverter.ui.ScreenPaddingVertical +import org.libremediaconverter.ui.PrimaryButtonHeight +import org.libremediaconverter.ui.ScreenPaddingHorizontal +import org.libremediaconverter.ui.ScreenPaddingVertical import androidx.lifecycle.compose.collectAsStateWithLifecycle import androidx.lifecycle.viewmodel.compose.viewModel import androidx.media3.common.util.UnstableApi -import dev.jasonmross.mediaconverter.model.EnginePreference -import dev.jasonmross.mediaconverter.model.OutputFormat -import dev.jasonmross.mediaconverter.model.QualityTier +import org.libremediaconverter.model.EnginePreference +import org.libremediaconverter.model.OutputFormat +import org.libremediaconverter.model.QualityTier import java.util.Locale @UnstableApi @@ -72,7 +72,7 @@ fun ConverterScreen( .padding(horizontal = ScreenPaddingHorizontal, vertical = ScreenPaddingVertical), ) { Text( - "Media Converter", + "LibreMediaConverter", style = MaterialTheme.typography.headlineMedium, modifier = Modifier.padding(bottom = 16.dp), ) diff --git a/app/src/main/java/dev/jasonmross/mediaconverter/convert/Media3Engine.kt b/app/src/main/java/org/libremediaconverter/convert/Media3Engine.kt similarity index 99% rename from app/src/main/java/dev/jasonmross/mediaconverter/convert/Media3Engine.kt rename to app/src/main/java/org/libremediaconverter/convert/Media3Engine.kt index 131fd68..bb99468 100644 --- a/app/src/main/java/dev/jasonmross/mediaconverter/convert/Media3Engine.kt +++ b/app/src/main/java/org/libremediaconverter/convert/Media3Engine.kt @@ -1,4 +1,4 @@ -package dev.jasonmross.mediaconverter.convert +package org.libremediaconverter.convert import android.content.Context import android.net.Uri diff --git a/app/src/main/java/dev/jasonmross/mediaconverter/convert/MediaProbe.kt b/app/src/main/java/org/libremediaconverter/convert/MediaProbe.kt similarity index 96% rename from app/src/main/java/dev/jasonmross/mediaconverter/convert/MediaProbe.kt rename to app/src/main/java/org/libremediaconverter/convert/MediaProbe.kt index d0fba4e..20889c1 100644 --- a/app/src/main/java/dev/jasonmross/mediaconverter/convert/MediaProbe.kt +++ b/app/src/main/java/org/libremediaconverter/convert/MediaProbe.kt @@ -1,12 +1,12 @@ -package dev.jasonmross.mediaconverter.convert +package org.libremediaconverter.convert import android.content.Context import android.media.MediaExtractor import android.media.MediaFormat import android.net.Uri import android.util.Log -import dev.jasonmross.mediaconverter.model.ConcatInput -import dev.jasonmross.mediaconverter.model.InputProbe +import org.libremediaconverter.model.ConcatInput +import org.libremediaconverter.model.InputProbe /** * Reads just enough about an input to route it. diff --git a/app/src/main/java/dev/jasonmross/mediaconverter/convert/OutputPublisher.kt b/app/src/main/java/org/libremediaconverter/convert/OutputPublisher.kt similarity index 97% rename from app/src/main/java/dev/jasonmross/mediaconverter/convert/OutputPublisher.kt rename to app/src/main/java/org/libremediaconverter/convert/OutputPublisher.kt index 742821b..af8973e 100644 --- a/app/src/main/java/dev/jasonmross/mediaconverter/convert/OutputPublisher.kt +++ b/app/src/main/java/org/libremediaconverter/convert/OutputPublisher.kt @@ -1,4 +1,4 @@ -package dev.jasonmross.mediaconverter.convert +package org.libremediaconverter.convert import android.content.Context import android.net.Uri diff --git a/app/src/main/java/dev/jasonmross/mediaconverter/convert/Transcoders.kt b/app/src/main/java/org/libremediaconverter/convert/Transcoders.kt similarity index 89% rename from app/src/main/java/dev/jasonmross/mediaconverter/convert/Transcoders.kt rename to app/src/main/java/org/libremediaconverter/convert/Transcoders.kt index 3e7cfcf..c2594db 100644 --- a/app/src/main/java/dev/jasonmross/mediaconverter/convert/Transcoders.kt +++ b/app/src/main/java/org/libremediaconverter/convert/Transcoders.kt @@ -1,11 +1,11 @@ -package dev.jasonmross.mediaconverter.convert +package org.libremediaconverter.convert import android.content.Context import android.net.Uri -import dev.jasonmross.mediaconverter.ffmpeg.FFmpegEngine -import dev.jasonmross.mediaconverter.model.ConversionRequest -import dev.jasonmross.mediaconverter.model.DeviceCodecs -import dev.jasonmross.mediaconverter.codec.AndroidDeviceCodecs +import org.libremediaconverter.ffmpeg.FFmpegEngine +import org.libremediaconverter.model.ConversionRequest +import org.libremediaconverter.model.DeviceCodecs +import org.libremediaconverter.codec.AndroidDeviceCodecs import java.io.File /** The hardware conversion path. Implemented by [Media3Engine]. */ diff --git a/app/src/main/java/dev/jasonmross/mediaconverter/ffmpeg/ConcatEngine.kt b/app/src/main/java/org/libremediaconverter/ffmpeg/ConcatEngine.kt similarity index 91% rename from app/src/main/java/dev/jasonmross/mediaconverter/ffmpeg/ConcatEngine.kt rename to app/src/main/java/org/libremediaconverter/ffmpeg/ConcatEngine.kt index 0bb4277..038df54 100644 --- a/app/src/main/java/dev/jasonmross/mediaconverter/ffmpeg/ConcatEngine.kt +++ b/app/src/main/java/org/libremediaconverter/ffmpeg/ConcatEngine.kt @@ -1,4 +1,4 @@ -package dev.jasonmross.mediaconverter.ffmpeg +package org.libremediaconverter.ffmpeg import android.content.Context import android.net.Uri @@ -6,10 +6,10 @@ import android.util.Log import com.arthenica.ffmpegkit.FFmpegKit import com.arthenica.ffmpegkit.FFmpegKitConfig import com.arthenica.ffmpegkit.ReturnCode -import dev.jasonmross.mediaconverter.convert.MediaProbe -import dev.jasonmross.mediaconverter.model.ConcatPlanner -import dev.jasonmross.mediaconverter.model.ConcatStrategy -import dev.jasonmross.mediaconverter.model.OutputFormat +import org.libremediaconverter.convert.MediaProbe +import org.libremediaconverter.model.ConcatPlanner +import org.libremediaconverter.model.ConcatStrategy +import org.libremediaconverter.model.OutputFormat import kotlinx.coroutines.suspendCancellableCoroutine import java.io.File import kotlin.coroutines.resume diff --git a/app/src/main/java/dev/jasonmross/mediaconverter/ffmpeg/FFmpegCommandBuilder.kt b/app/src/main/java/org/libremediaconverter/ffmpeg/FFmpegCommandBuilder.kt similarity index 91% rename from app/src/main/java/dev/jasonmross/mediaconverter/ffmpeg/FFmpegCommandBuilder.kt rename to app/src/main/java/org/libremediaconverter/ffmpeg/FFmpegCommandBuilder.kt index 3422c0f..d76b653 100644 --- a/app/src/main/java/dev/jasonmross/mediaconverter/ffmpeg/FFmpegCommandBuilder.kt +++ b/app/src/main/java/org/libremediaconverter/ffmpeg/FFmpegCommandBuilder.kt @@ -1,8 +1,8 @@ -package dev.jasonmross.mediaconverter.ffmpeg +package org.libremediaconverter.ffmpeg -import dev.jasonmross.mediaconverter.model.ConversionRequest -import dev.jasonmross.mediaconverter.model.OutputFormat -import dev.jasonmross.mediaconverter.model.QualityTier +import org.libremediaconverter.model.ConversionRequest +import org.libremediaconverter.model.OutputFormat +import org.libremediaconverter.model.QualityTier /** * Builds FFmpeg argument lists. @@ -86,12 +86,12 @@ object FFmpegCommandBuilder { // "compress this well" actually needs. No hardware encoder on Android // exposes it. QualityTier.BEST -> when (format.videoCodec) { - dev.jasonmross.mediaconverter.model.VideoCodec.H265 -> listOf( + org.libremediaconverter.model.VideoCodec.H265 -> listOf( "-c:v", "libx265", "-crf", "$CRF_H265", "-preset", "medium", // Without this, many players and Apple devices refuse HEVC in MP4. "-tag:v", "hvc1", ) + PIX_FMT - dev.jasonmross.mediaconverter.model.VideoCodec.VP9 -> listOf( + org.libremediaconverter.model.VideoCodec.VP9 -> listOf( "-c:v", "libvpx-vp9", "-crf", "31", "-b:v", "0", ) + PIX_FMT else -> listOf( @@ -114,11 +114,11 @@ object FFmpegCommandBuilder { // itself evidence that hardware encoding is unlikely to work for that // input. Fast therefore means a fast *preset*, not a different encoder. QualityTier.FAST -> when (format.videoCodec) { - dev.jasonmross.mediaconverter.model.VideoCodec.H265 -> listOf( + org.libremediaconverter.model.VideoCodec.H265 -> listOf( "-c:v", "libx265", "-crf", "$CRF_H265", "-preset", "veryfast", "-tag:v", "hvc1", ) + PIX_FMT - dev.jasonmross.mediaconverter.model.VideoCodec.VP9 -> listOf( + org.libremediaconverter.model.VideoCodec.VP9 -> listOf( "-c:v", "libvpx-vp9", "-crf", "31", "-b:v", "0", "-deadline", "realtime", ) + PIX_FMT @@ -145,7 +145,7 @@ object FFmpegCommandBuilder { // Move the moov atom to the front so the file starts playing before it is // fully downloaded. This is also the reason output never goes through a SAF // file descriptor: faststart has to seek backwards to rewrite the header. - dev.jasonmross.mediaconverter.model.Container.MP4 -> listOf("-movflags", "+faststart") + org.libremediaconverter.model.Container.MP4 -> listOf("-movflags", "+faststart") else -> emptyList() } diff --git a/app/src/main/java/dev/jasonmross/mediaconverter/ffmpeg/FFmpegConcatCommand.kt b/app/src/main/java/org/libremediaconverter/ffmpeg/FFmpegConcatCommand.kt similarity index 87% rename from app/src/main/java/dev/jasonmross/mediaconverter/ffmpeg/FFmpegConcatCommand.kt rename to app/src/main/java/org/libremediaconverter/ffmpeg/FFmpegConcatCommand.kt index 52c82af..4b35fb0 100644 --- a/app/src/main/java/dev/jasonmross/mediaconverter/ffmpeg/FFmpegConcatCommand.kt +++ b/app/src/main/java/org/libremediaconverter/ffmpeg/FFmpegConcatCommand.kt @@ -1,7 +1,7 @@ -package dev.jasonmross.mediaconverter.ffmpeg +package org.libremediaconverter.ffmpeg -import dev.jasonmross.mediaconverter.model.ConcatStrategy -import dev.jasonmross.mediaconverter.model.OutputFormat +import org.libremediaconverter.model.ConcatStrategy +import org.libremediaconverter.model.OutputFormat import java.io.File /** @@ -34,7 +34,7 @@ object FFmpegConcatCommand { add("-safe"); add("0") add("-i"); add(listFile.absolutePath) add("-c"); add("copy") - if (format.container == dev.jasonmross.mediaconverter.model.Container.MP4) { + if (format.container == org.libremediaconverter.model.Container.MP4) { add("-movflags"); add("+faststart") } add(output.absolutePath) @@ -60,7 +60,7 @@ object FFmpegConcatCommand { add("-crf"); add("20") add("-pix_fmt"); add("yuv420p") add("-c:a"); add("aac") - if (format.container == dev.jasonmross.mediaconverter.model.Container.MP4) { + if (format.container == org.libremediaconverter.model.Container.MP4) { add("-movflags"); add("+faststart") } add(output.absolutePath) diff --git a/app/src/main/java/dev/jasonmross/mediaconverter/ffmpeg/FFmpegEngine.kt b/app/src/main/java/org/libremediaconverter/ffmpeg/FFmpegEngine.kt similarity index 92% rename from app/src/main/java/dev/jasonmross/mediaconverter/ffmpeg/FFmpegEngine.kt rename to app/src/main/java/org/libremediaconverter/ffmpeg/FFmpegEngine.kt index de9a820..6205b52 100644 --- a/app/src/main/java/dev/jasonmross/mediaconverter/ffmpeg/FFmpegEngine.kt +++ b/app/src/main/java/org/libremediaconverter/ffmpeg/FFmpegEngine.kt @@ -1,12 +1,12 @@ -package dev.jasonmross.mediaconverter.ffmpeg +package org.libremediaconverter.ffmpeg import android.util.Log import com.arthenica.ffmpegkit.FFmpegKit import com.arthenica.ffmpegkit.FFmpegKitConfig import com.arthenica.ffmpegkit.Level import com.arthenica.ffmpegkit.ReturnCode -import dev.jasonmross.mediaconverter.convert.SoftwareTranscoder -import dev.jasonmross.mediaconverter.model.ConversionRequest +import org.libremediaconverter.convert.SoftwareTranscoder +import org.libremediaconverter.model.ConversionRequest import kotlinx.coroutines.suspendCancellableCoroutine import java.io.File import kotlin.coroutines.resume @@ -18,7 +18,7 @@ import kotlin.coroutines.resumeWithException * Handles everything Media3 structurally cannot: Matroska, MP3, GIF, frame sequences, * inputs with no platform decoder, and the CRF quality tier. * - * Like [dev.jasonmross.mediaconverter.convert.Media3Engine], input arrives as a real + * Like [org.libremediaconverter.convert.Media3Engine], input arrives as a real * filesystem path and output is written to app-private cache. FFmpeg is perfectly able * to write through a SAF descriptor via its ffkitsaf protocol, but MP4 faststart has * to seek backwards to rewrite the moov atom, which a SAF descriptor does not reliably diff --git a/app/src/main/java/dev/jasonmross/mediaconverter/join/JoinScreen.kt b/app/src/main/java/org/libremediaconverter/join/JoinScreen.kt similarity index 95% rename from app/src/main/java/dev/jasonmross/mediaconverter/join/JoinScreen.kt rename to app/src/main/java/org/libremediaconverter/join/JoinScreen.kt index 0d40b3e..e344054 100644 --- a/app/src/main/java/dev/jasonmross/mediaconverter/join/JoinScreen.kt +++ b/app/src/main/java/org/libremediaconverter/join/JoinScreen.kt @@ -1,4 +1,4 @@ -package dev.jasonmross.mediaconverter.join +package org.libremediaconverter.join import androidx.activity.compose.rememberLauncherForActivityResult import androidx.activity.result.contract.ActivityResultContracts @@ -25,11 +25,11 @@ import androidx.compose.ui.unit.dp import androidx.lifecycle.compose.collectAsStateWithLifecycle import androidx.lifecycle.viewmodel.compose.viewModel import androidx.media3.common.util.UnstableApi -import dev.jasonmross.mediaconverter.convert.InputFile -import dev.jasonmross.mediaconverter.model.ConcatStrategy -import dev.jasonmross.mediaconverter.ui.PrimaryButtonHeight -import dev.jasonmross.mediaconverter.ui.ScreenPaddingHorizontal -import dev.jasonmross.mediaconverter.ui.ScreenPaddingVertical +import org.libremediaconverter.convert.InputFile +import org.libremediaconverter.model.ConcatStrategy +import org.libremediaconverter.ui.PrimaryButtonHeight +import org.libremediaconverter.ui.ScreenPaddingHorizontal +import org.libremediaconverter.ui.ScreenPaddingVertical @UnstableApi @Composable diff --git a/app/src/main/java/dev/jasonmross/mediaconverter/join/JoinViewModel.kt b/app/src/main/java/org/libremediaconverter/join/JoinViewModel.kt similarity index 94% rename from app/src/main/java/dev/jasonmross/mediaconverter/join/JoinViewModel.kt rename to app/src/main/java/org/libremediaconverter/join/JoinViewModel.kt index 2d27b37..52c192c 100644 --- a/app/src/main/java/dev/jasonmross/mediaconverter/join/JoinViewModel.kt +++ b/app/src/main/java/org/libremediaconverter/join/JoinViewModel.kt @@ -1,4 +1,4 @@ -package dev.jasonmross.mediaconverter.join +package org.libremediaconverter.join import android.app.Application import android.net.Uri @@ -8,10 +8,10 @@ import androidx.lifecycle.viewModelScope import androidx.media3.common.util.UnstableApi import androidx.work.WorkInfo import androidx.work.WorkManager -import dev.jasonmross.mediaconverter.convert.InputFile -import dev.jasonmross.mediaconverter.convert.OutputPublisher -import dev.jasonmross.mediaconverter.model.ConcatStrategy -import dev.jasonmross.mediaconverter.work.ConcatWorker +import org.libremediaconverter.convert.InputFile +import org.libremediaconverter.convert.OutputPublisher +import org.libremediaconverter.model.ConcatStrategy +import org.libremediaconverter.work.ConcatWorker import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Job import kotlinx.coroutines.flow.MutableStateFlow diff --git a/app/src/main/java/dev/jasonmross/mediaconverter/model/ConcatStrategy.kt b/app/src/main/java/org/libremediaconverter/model/ConcatStrategy.kt similarity index 98% rename from app/src/main/java/dev/jasonmross/mediaconverter/model/ConcatStrategy.kt rename to app/src/main/java/org/libremediaconverter/model/ConcatStrategy.kt index 81ee1f4..f510f1c 100644 --- a/app/src/main/java/dev/jasonmross/mediaconverter/model/ConcatStrategy.kt +++ b/app/src/main/java/org/libremediaconverter/model/ConcatStrategy.kt @@ -1,4 +1,4 @@ -package dev.jasonmross.mediaconverter.model +package org.libremediaconverter.model /** * How to join several inputs into one file. diff --git a/app/src/main/java/dev/jasonmross/mediaconverter/model/ConversionRouter.kt b/app/src/main/java/org/libremediaconverter/model/ConversionRouter.kt similarity index 99% rename from app/src/main/java/dev/jasonmross/mediaconverter/model/ConversionRouter.kt rename to app/src/main/java/org/libremediaconverter/model/ConversionRouter.kt index ea26256..1d56210 100644 --- a/app/src/main/java/dev/jasonmross/mediaconverter/model/ConversionRouter.kt +++ b/app/src/main/java/org/libremediaconverter/model/ConversionRouter.kt @@ -1,4 +1,4 @@ -package dev.jasonmross.mediaconverter.model +package org.libremediaconverter.model /** * Chooses the engine for a conversion. diff --git a/app/src/main/java/dev/jasonmross/mediaconverter/model/OutputFormat.kt b/app/src/main/java/org/libremediaconverter/model/OutputFormat.kt similarity index 98% rename from app/src/main/java/dev/jasonmross/mediaconverter/model/OutputFormat.kt rename to app/src/main/java/org/libremediaconverter/model/OutputFormat.kt index ccebb3d..c0ce6bd 100644 --- a/app/src/main/java/dev/jasonmross/mediaconverter/model/OutputFormat.kt +++ b/app/src/main/java/org/libremediaconverter/model/OutputFormat.kt @@ -1,4 +1,4 @@ -package dev.jasonmross.mediaconverter.model +package org.libremediaconverter.model /** Container families, used by the router to decide which engine can mux the result. */ enum class Container { MP4, WEBM, MKV, OGG, WAV, AAC_ADTS, MP3, GIF, IMAGE_SEQUENCE } diff --git a/app/src/main/java/dev/jasonmross/mediaconverter/ui/Dimens.kt b/app/src/main/java/org/libremediaconverter/ui/Dimens.kt similarity index 94% rename from app/src/main/java/dev/jasonmross/mediaconverter/ui/Dimens.kt rename to app/src/main/java/org/libremediaconverter/ui/Dimens.kt index 4d6811d..1b88589 100644 --- a/app/src/main/java/dev/jasonmross/mediaconverter/ui/Dimens.kt +++ b/app/src/main/java/org/libremediaconverter/ui/Dimens.kt @@ -1,4 +1,4 @@ -package dev.jasonmross.mediaconverter.ui +package org.libremediaconverter.ui import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp diff --git a/app/src/main/java/dev/jasonmross/mediaconverter/ui/theme/Color.kt b/app/src/main/java/org/libremediaconverter/ui/theme/Color.kt similarity index 87% rename from app/src/main/java/dev/jasonmross/mediaconverter/ui/theme/Color.kt rename to app/src/main/java/org/libremediaconverter/ui/theme/Color.kt index 8734722..2d92d55 100644 --- a/app/src/main/java/dev/jasonmross/mediaconverter/ui/theme/Color.kt +++ b/app/src/main/java/org/libremediaconverter/ui/theme/Color.kt @@ -1,4 +1,4 @@ -package dev.jasonmross.mediaconverter.ui.theme +package org.libremediaconverter.ui.theme import androidx.compose.ui.graphics.Color diff --git a/app/src/main/java/dev/jasonmross/mediaconverter/ui/theme/Theme.kt b/app/src/main/java/org/libremediaconverter/ui/theme/Theme.kt similarity index 95% rename from app/src/main/java/dev/jasonmross/mediaconverter/ui/theme/Theme.kt rename to app/src/main/java/org/libremediaconverter/ui/theme/Theme.kt index 74e4d36..856247a 100644 --- a/app/src/main/java/dev/jasonmross/mediaconverter/ui/theme/Theme.kt +++ b/app/src/main/java/org/libremediaconverter/ui/theme/Theme.kt @@ -1,4 +1,4 @@ -package dev.jasonmross.mediaconverter.ui.theme +package org.libremediaconverter.ui.theme import android.app.Activity import androidx.compose.foundation.isSystemInDarkTheme @@ -30,7 +30,7 @@ private val LightColorScheme = lightColorScheme( * opt back to the brand palette. */ @Composable -fun MediaConverterTheme( +fun LibreMediaConverterTheme( darkTheme: Boolean = isSystemInDarkTheme(), dynamicColor: Boolean = true, content: @Composable () -> Unit, diff --git a/app/src/main/java/dev/jasonmross/mediaconverter/ui/theme/Type.kt b/app/src/main/java/org/libremediaconverter/ui/theme/Type.kt similarity index 62% rename from app/src/main/java/dev/jasonmross/mediaconverter/ui/theme/Type.kt rename to app/src/main/java/org/libremediaconverter/ui/theme/Type.kt index 1f69a0f..c14692e 100644 --- a/app/src/main/java/dev/jasonmross/mediaconverter/ui/theme/Type.kt +++ b/app/src/main/java/org/libremediaconverter/ui/theme/Type.kt @@ -1,4 +1,4 @@ -package dev.jasonmross.mediaconverter.ui.theme +package org.libremediaconverter.ui.theme import androidx.compose.material3.Typography diff --git a/app/src/main/java/dev/jasonmross/mediaconverter/work/ConcatWorker.kt b/app/src/main/java/org/libremediaconverter/work/ConcatWorker.kt similarity index 95% rename from app/src/main/java/dev/jasonmross/mediaconverter/work/ConcatWorker.kt rename to app/src/main/java/org/libremediaconverter/work/ConcatWorker.kt index 49b6879..7b20b6b 100644 --- a/app/src/main/java/dev/jasonmross/mediaconverter/work/ConcatWorker.kt +++ b/app/src/main/java/org/libremediaconverter/work/ConcatWorker.kt @@ -1,4 +1,4 @@ -package dev.jasonmross.mediaconverter.work +package org.libremediaconverter.work import android.content.Context import android.net.Uri @@ -11,9 +11,9 @@ import androidx.work.OneTimeWorkRequestBuilder import androidx.work.WorkInfo import androidx.work.WorkerParameters import androidx.work.workDataOf -import dev.jasonmross.mediaconverter.convert.ConversionDependencies -import dev.jasonmross.mediaconverter.ffmpeg.ConcatEngine -import dev.jasonmross.mediaconverter.model.OutputFormat +import org.libremediaconverter.convert.ConversionDependencies +import org.libremediaconverter.ffmpeg.ConcatEngine +import org.libremediaconverter.model.OutputFormat /** * Joins several files into one, as durable foreground work. diff --git a/app/src/main/java/dev/jasonmross/mediaconverter/work/ConversionForegroundType.kt b/app/src/main/java/org/libremediaconverter/work/ConversionForegroundType.kt similarity index 97% rename from app/src/main/java/dev/jasonmross/mediaconverter/work/ConversionForegroundType.kt rename to app/src/main/java/org/libremediaconverter/work/ConversionForegroundType.kt index b8ae8e9..1ac7cbc 100644 --- a/app/src/main/java/dev/jasonmross/mediaconverter/work/ConversionForegroundType.kt +++ b/app/src/main/java/org/libremediaconverter/work/ConversionForegroundType.kt @@ -1,4 +1,4 @@ -package dev.jasonmross.mediaconverter.work +package org.libremediaconverter.work import android.content.pm.ServiceInfo import android.os.Build diff --git a/app/src/main/java/dev/jasonmross/mediaconverter/work/ConversionNotifications.kt b/app/src/main/java/org/libremediaconverter/work/ConversionNotifications.kt similarity index 96% rename from app/src/main/java/dev/jasonmross/mediaconverter/work/ConversionNotifications.kt rename to app/src/main/java/org/libremediaconverter/work/ConversionNotifications.kt index 8d159f3..e2b78b8 100644 --- a/app/src/main/java/dev/jasonmross/mediaconverter/work/ConversionNotifications.kt +++ b/app/src/main/java/org/libremediaconverter/work/ConversionNotifications.kt @@ -1,4 +1,4 @@ -package dev.jasonmross.mediaconverter.work +package org.libremediaconverter.work import android.app.NotificationChannel import android.app.NotificationManager @@ -6,7 +6,7 @@ import android.content.Context import android.util.Log import androidx.core.app.NotificationCompat import androidx.work.WorkManager -import dev.jasonmross.mediaconverter.R +import org.libremediaconverter.R import java.util.UUID /** Progress notification for a running conversion. */ diff --git a/app/src/main/java/dev/jasonmross/mediaconverter/work/ConversionWorker.kt b/app/src/main/java/org/libremediaconverter/work/ConversionWorker.kt similarity index 94% rename from app/src/main/java/dev/jasonmross/mediaconverter/work/ConversionWorker.kt rename to app/src/main/java/org/libremediaconverter/work/ConversionWorker.kt index b8d8e79..6ae0507 100644 --- a/app/src/main/java/dev/jasonmross/mediaconverter/work/ConversionWorker.kt +++ b/app/src/main/java/org/libremediaconverter/work/ConversionWorker.kt @@ -1,4 +1,4 @@ -package dev.jasonmross.mediaconverter.work +package org.libremediaconverter.work import android.content.Context import android.net.Uri @@ -13,15 +13,15 @@ import androidx.work.WorkInfo import androidx.work.WorkerParameters import androidx.work.workDataOf import com.arthenica.ffmpegkit.FFmpegKitConfig -import dev.jasonmross.mediaconverter.convert.ConversionDependencies -import dev.jasonmross.mediaconverter.convert.MediaProbe -import dev.jasonmross.mediaconverter.model.ConversionRequest -import dev.jasonmross.mediaconverter.model.ConversionRouter -import dev.jasonmross.mediaconverter.model.Engine -import dev.jasonmross.mediaconverter.model.EnginePreference -import dev.jasonmross.mediaconverter.model.OutputFormat -import dev.jasonmross.mediaconverter.model.QualityTier -import dev.jasonmross.mediaconverter.model.VideoCodec +import org.libremediaconverter.convert.ConversionDependencies +import org.libremediaconverter.convert.MediaProbe +import org.libremediaconverter.model.ConversionRequest +import org.libremediaconverter.model.ConversionRouter +import org.libremediaconverter.model.Engine +import org.libremediaconverter.model.EnginePreference +import org.libremediaconverter.model.OutputFormat +import org.libremediaconverter.model.QualityTier +import org.libremediaconverter.model.VideoCodec import java.io.File /** diff --git a/app/src/main/java/dev/jasonmross/mediaconverter/work/FailureOutcome.kt b/app/src/main/java/org/libremediaconverter/work/FailureOutcome.kt similarity index 95% rename from app/src/main/java/dev/jasonmross/mediaconverter/work/FailureOutcome.kt rename to app/src/main/java/org/libremediaconverter/work/FailureOutcome.kt index dc0adf2..123cc36 100644 --- a/app/src/main/java/dev/jasonmross/mediaconverter/work/FailureOutcome.kt +++ b/app/src/main/java/org/libremediaconverter/work/FailureOutcome.kt @@ -1,4 +1,4 @@ -package dev.jasonmross.mediaconverter.work +package org.libremediaconverter.work import androidx.work.WorkInfo diff --git a/app/src/main/res/values-night/themes.xml b/app/src/main/res/values-night/themes.xml index 03efa9d..a435507 100644 --- a/app/src/main/res/values-night/themes.xml +++ b/app/src/main/res/values-night/themes.xml @@ -1,3 +1,3 @@ -