diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index a61eb541..5744e083 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -9,9 +9,6 @@ jobs: ANDROID_BASE_CHECKS: name: Base Checks runs-on: ubuntu-latest - env: - SIGNING_KEY: ${{ secrets.SIGNING_KEY }} - SIGNING_PASSWORD: ${{ secrets.SIGNING_PASSWORD }} steps: - uses: actions/checkout@v4 - uses: actions/setup-java@v4 @@ -20,14 +17,10 @@ jobs: distribution: temurin cache: gradle - name: Perform base checks - run: ./gradlew demo:assembleDebug lib:deployLocal + run: ./gradlew demo:assembleDebug lib:deployLocal --stacktrace ANDROID_EMULATOR_TESTS: name: Emulator Tests runs-on: ubuntu-latest - # Temporary workaround for deployer issue - env: - SIGNING_KEY: ${{ secrets.SIGNING_KEY }} - SIGNING_PASSWORD: ${{ secrets.SIGNING_PASSWORD }} strategy: fail-fast: false matrix: diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index e7fcc894..812d3844 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -22,6 +22,6 @@ jobs: distribution: temurin cache: gradle - name: Publish to Maven Central - run: ./gradlew deployNexus + run: ./gradlew deployNexus --stacktrace - name: Publish to GitHub Packages - run: ./gradlew deployGithub + run: ./gradlew deployGithub --stacktrace diff --git a/.github/workflows/snapshot.yml b/.github/workflows/snapshot.yml index 370794bf..e1914ec5 100644 --- a/.github/workflows/snapshot.yml +++ b/.github/workflows/snapshot.yml @@ -24,4 +24,4 @@ jobs: distribution: temurin cache: gradle - name: Publish nexus snapshot - run: ./gradlew deployNexusSnapshot \ No newline at end of file + run: ./gradlew deployNexusSnapshot --stacktrace \ No newline at end of file diff --git a/README.md b/README.md index a44321ad..d6580bbb 100644 --- a/README.md +++ b/README.md @@ -29,7 +29,7 @@ Android codecs available on the device. Works on API 21+. ```kotlin // build.gradle.kts dependencies { - implementation("com.otaliastudios:transcoder:0.10.5") + implementation("com.otaliastudios:transcoder:0.11.0") } ``` diff --git a/build.gradle.kts b/build.gradle.kts index 1e81addf..5816c9a9 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -2,4 +2,5 @@ plugins { kotlin("android") version "2.0.0" apply false id("com.android.library") version "8.2.2" apply false id("com.android.application") version "8.2.2" apply false + id("io.deepmedia.tools.deployer") version "0.14.0" apply false } \ No newline at end of file diff --git a/docs-legacy/.gitignore b/docs-legacy/.gitignore deleted file mode 100644 index 928a70a0..00000000 --- a/docs-legacy/.gitignore +++ /dev/null @@ -1,6 +0,0 @@ -_site -_pages -*.sw? -.sass-cache -.jekyll-metadata -Gemfile.lock diff --git a/docs-legacy/Gemfile b/docs-legacy/Gemfile deleted file mode 100644 index 37f5eaa4..00000000 --- a/docs-legacy/Gemfile +++ /dev/null @@ -1,2 +0,0 @@ -source 'https://rubygems.org' -gem 'github-pages', group: :jekyll_plugins diff --git a/docs-legacy/README.md b/docs-legacy/README.md deleted file mode 100644 index 995fe576..00000000 --- a/docs-legacy/README.md +++ /dev/null @@ -1 +0,0 @@ -Read the docs at https://opensource.deepmedia.io/transcoder. diff --git a/docs-legacy/_about/changelog.md b/docs-legacy/_about/changelog.md deleted file mode 100644 index 575f5a04..00000000 --- a/docs-legacy/_about/changelog.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -layout: redirect -redirect_to: https://opensource.deepmedia.io/transcoder/changelog -title: "Changelog" ---- - -Migrated to https://opensource.deepmedia.io/transcoder/changelog \ No newline at end of file diff --git a/docs-legacy/_about/getting-started.md b/docs-legacy/_about/getting-started.md deleted file mode 100644 index 35eda638..00000000 --- a/docs-legacy/_about/getting-started.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -layout: redirect -redirect_to: https://opensource.deepmedia.io/transcoder/install -title: "Getting Started" ---- - -Migrated to https://opensource.deepmedia.io/transcoder/install diff --git a/docs-legacy/_about/install.md b/docs-legacy/_about/install.md deleted file mode 100644 index 7f4cdead..00000000 --- a/docs-legacy/_about/install.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -layout: redirect -redirect_to: https://opensource.deepmedia.io/transcoder/install -title: "Install" ---- - -Migrated to https://opensource.deepmedia.io/transcoder/install diff --git a/docs-legacy/_config.yml b/docs-legacy/_config.yml deleted file mode 100644 index b5950cf3..00000000 --- a/docs-legacy/_config.yml +++ /dev/null @@ -1,44 +0,0 @@ -# Glide: https://github.com/bumptech/glide/blob/gh-pages/_config.yml -# Source repo: https://github.com/bruth/jekyll-docs-template -# Source site: http://bruth.github.io/jekyll-docs-template/ -# Ref guide: https://visualstudiomagazine.com/Articles/2015/03/01/GitHub-Pages.aspx?Page=2 - -# Used by us -title: Transcoder -color: '#f8f8f8' -description: A well documented Android library providing hardware-accelerated video transcoding, using MediaCodec APIs instead of native code (no FFMPEG patent issues). Supports cropping to any dimension, concatenation, clipping, audio processing, video speed and much more. # used by ourselves and by seo tag. -disqus_shortname: 'natario1-transcoder' -google_site_verification: '4x49i17ABIrSvUl52SeL0-t0341aTnWWaC62-FYCRT4' -github: [metadata] # TODO What's this? -github_repo: Transcoder -github_version: 0.10.5 -github_branch: main -baseurl: '/Transcoder' # Keep as an empty string if served up at the root -collections: - about: - name: Overview - output: true - docs: - name: Documentation - output: true - extra: - name: More - output: true -screenshots: - - 'screenshot-1.png' - - 'screenshot-2.png' - -# Jekyll specific stuff -author: - name: Mattia Iavarone # Should appear in . - email: mat.iavarone@gmail.com - github: natario1 - website: https://natario.dev -plugins: - - jekyll-seo-tag # Add SEO tags -permalink: /:categories/:title # Ensure permalinks have no date nor extension -exclude: ['script', 'README.md'] # Exclude non-site files -highlighter: rouge # Syntax highlighting -markdown: kramdown # Use the kramdown Markdown renderer -kramdown: - input: GFM # Use Github Flavored Markdown \ No newline at end of file diff --git a/docs-legacy/_docs/advanced-options.md b/docs-legacy/_docs/advanced-options.md deleted file mode 100644 index 8cb956b5..00000000 --- a/docs-legacy/_docs/advanced-options.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -layout: redirect -redirect_to: https://opensource.deepmedia.io/transcoder/advanced-options -title: "Advanced Options" -order: 7 ---- - -Migrated to https://opensource.deepmedia.io/transcoder/advanced-options diff --git a/docs-legacy/_docs/clipping.md b/docs-legacy/_docs/clipping.md deleted file mode 100644 index 5eb543ba..00000000 --- a/docs-legacy/_docs/clipping.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -layout: redirect -redirect_to: https://opensource.deepmedia.io/transcoder/clipping -title: "Clipping and trimming" -order: 2 ---- - -Migrated to https://opensource.deepmedia.io/transcoder/clipping - diff --git a/docs-legacy/_docs/concatenation.md b/docs-legacy/_docs/concatenation.md deleted file mode 100644 index f09a789c..00000000 --- a/docs-legacy/_docs/concatenation.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -layout: redirect -redirect_to: https://opensource.deepmedia.io/transcoder/concatenation -title: "Concatenation" -order: 3 ---- - -Migrated to https://opensource.deepmedia.io/transcoder/concatenation diff --git a/docs-legacy/_docs/data-sources.md b/docs-legacy/_docs/data-sources.md deleted file mode 100644 index 274eb541..00000000 --- a/docs-legacy/_docs/data-sources.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -layout: redirect -redirect_to: https://opensource.deepmedia.io/transcoder/data-sources -title: "Data Sources" -order: 1 ---- - -Migrated to https://opensource.deepmedia.io/transcoder/data-sources - diff --git a/docs-legacy/_docs/events.md b/docs-legacy/_docs/events.md deleted file mode 100644 index 80e0c86f..00000000 --- a/docs-legacy/_docs/events.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -layout: redirect -redirect_to: https://opensource.deepmedia.io/transcoder/events -title: "Transcoding Events" -order: 4 ---- - -Migrated to https://opensource.deepmedia.io/transcoder/events - diff --git a/docs-legacy/_docs/track-strategies.md b/docs-legacy/_docs/track-strategies.md deleted file mode 100644 index 385de184..00000000 --- a/docs-legacy/_docs/track-strategies.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -layout: redirect -redirect_to: https://opensource.deepmedia.io/transcoder/track-strategies -title: "Track Strategies" -order: 6 ---- - -Migrated to https://opensource.deepmedia.io/transcoder/track-strategies diff --git a/docs-legacy/_docs/validators.md b/docs-legacy/_docs/validators.md deleted file mode 100644 index 1228ce17..00000000 --- a/docs-legacy/_docs/validators.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -layout: redirect -redirect_to: https://opensource.deepmedia.io/transcoder/validators -title: "Validators" -order: 5 ---- - -Migrated to https://opensource.deepmedia.io/transcoder/validators - diff --git a/docs-legacy/_extra/contact.md b/docs-legacy/_extra/contact.md deleted file mode 100644 index 683854eb..00000000 --- a/docs-legacy/_extra/contact.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -layout: redirect -redirect_to: https://opensource.deepmedia.io/transcoder -title: "Contact" ---- - -Migrated to https://opensource.deepmedia.io/transcoder diff --git a/docs-legacy/_extra/contributing.md b/docs-legacy/_extra/contributing.md deleted file mode 100644 index c4c64357..00000000 --- a/docs-legacy/_extra/contributing.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -layout: redirect -redirect_to: https://opensource.deepmedia.io/transcoder -title: "Contributing & License" ---- - -Migrated to https://opensource.deepmedia.io/transcoder diff --git a/docs-legacy/_extra/donate.md b/docs-legacy/_extra/donate.md deleted file mode 100644 index dbc95dfd..00000000 --- a/docs-legacy/_extra/donate.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -layout: redirect -redirect_to: https://opensource.deepmedia.io/transcoder -title: "Donate" ---- - -Migrated to https://opensource.deepmedia.io/transcoder diff --git a/docs-legacy/_includes/disqus.html b/docs-legacy/_includes/disqus.html deleted file mode 100644 index b561eef0..00000000 --- a/docs-legacy/_includes/disqus.html +++ /dev/null @@ -1,12 +0,0 @@ -
- - diff --git a/docs-legacy/_includes/footer.html b/docs-legacy/_includes/footer.html deleted file mode 100644 index be732e0b..00000000 --- a/docs-legacy/_includes/footer.html +++ /dev/null @@ -1,4 +0,0 @@ - diff --git a/docs-legacy/_includes/google_analytics.html b/docs-legacy/_includes/google_analytics.html deleted file mode 100644 index 174548d1..00000000 --- a/docs-legacy/_includes/google_analytics.html +++ /dev/null @@ -1,7 +0,0 @@ - - diff --git a/docs-legacy/_includes/head.html b/docs-legacy/_includes/head.html deleted file mode 100644 index d3f33018..00000000 --- a/docs-legacy/_includes/head.html +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - - - - - - - - - -{% seo %} - -{% if site.google_analytics_id != "" %} -{% include google_analytics.html %} -{% endif %} \ No newline at end of file diff --git a/docs-legacy/_includes/header.html b/docs-legacy/_includes/header.html deleted file mode 100644 index 7e135e05..00000000 --- a/docs-legacy/_includes/header.html +++ /dev/null @@ -1,21 +0,0 @@ -
- - - {{ site.title }} - - -
- Menu toggle -
- - -
- latest: v{{ site.github_version }} - - GitHub - -
-
diff --git a/docs-legacy/_includes/navigation.html b/docs-legacy/_includes/navigation.html deleted file mode 100644 index 366fa27e..00000000 --- a/docs-legacy/_includes/navigation.html +++ /dev/null @@ -1,27 +0,0 @@ - - diff --git a/docs-legacy/_layouts/landing.html b/docs-legacy/_layouts/landing.html deleted file mode 100644 index 130ce1fa..00000000 --- a/docs-legacy/_layouts/landing.html +++ /dev/null @@ -1,33 +0,0 @@ - - - - {% include head.html %} - {{ site.title }} - - - - -
- -
-

{{ site.title }}

- {{ content }} -
-
- Documentation - Changelog - GitHub - Support -
-
-
- {% assign col = 12 | divided_by: site.screenshots.size %} - {% for screenshot in site.screenshots %} -
- Screenshot -
- {% endfor %} -
-
- - diff --git a/docs-legacy/_layouts/main.html b/docs-legacy/_layouts/main.html deleted file mode 100644 index 6f0bab15..00000000 --- a/docs-legacy/_layouts/main.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - {% include head.html %} - {{ site.title }}{% if page.title %} | {{ page.title }}{% endif %} - - - - - {% include header.html %} -
-
-
- {% include navigation.html %} -
-
-
- {{ content }} -
- {% if page.disqus == 1 %} -
- {% include disqus.html %} -
- {% endif %} -
-
-
- -
-
-
- {% include footer.html %} -
-
-
- - diff --git a/docs-legacy/_layouts/page.html b/docs-legacy/_layouts/page.html deleted file mode 100644 index e7005d0a..00000000 --- a/docs-legacy/_layouts/page.html +++ /dev/null @@ -1,30 +0,0 @@ ---- -layout: main ---- - - -
- {{ content }} -
- \ No newline at end of file diff --git a/docs-legacy/_layouts/redirect.html b/docs-legacy/_layouts/redirect.html deleted file mode 100644 index f057557a..00000000 --- a/docs-legacy/_layouts/redirect.html +++ /dev/null @@ -1,15 +0,0 @@ - - - - - Redirecting… - - - - - - -

Redirecting…

-Click here if you are not redirected. - - \ No newline at end of file diff --git a/docs-legacy/css/colors.css b/docs-legacy/css/colors.css deleted file mode 100644 index 4bef97de..00000000 --- a/docs-legacy/css/colors.css +++ /dev/null @@ -1,65 +0,0 @@ -:root { - --color-primary: #204853; - --color-primary-active: #102833; - --color-primary-hover: #103843; - --color-secondary: #030607; - --color-accent: #0e95e3; - --color-accent-light: #f5fcff; - --color-accent-dark: #0e3375; - --color-background: #FFFFFF; - --color-code: var(--color-primary); - --color-code-background: #f8f8f8; - --color-text-muted: #6c757d; -} - -body { - background-color: var(--color-background); -} - -a { - color: var(--color-primary); -} - -code, pre { - background-color: var(--color-code-background); -} - -:not(pre) > code { - color: var(--color-code); -} - -a:hover { - color: var(--color-primary-hover) !important; -} - -.btn-primary { - background-color: var(--color-primary) !important; - border-color: var(--color-primary) !important; - color: white !important; -} - -.btn-primary.active, .btn-primary:active { - background-color: var(--color-primary-active) !important; - border-color: var(--color-primary-active) !important; -} - -.btn-primary:hover { - background-color: var(--color-primary-hover) !important; - border-color: var(--color-primary-hover) !important; - color: white !important; -} - -.btn-outline-primary { - border-color: var(--color-primary) !important; -} - -.btn-outline-primary.active, .btn-outline-primary:active { - background-color: var(--color-primary-active) !important; - border-color: var(--color-primary-active) !important; -} - -.btn-outline-primary:hover { - border-color: var(--color-primary-hover) !important; - background-color: var(--color-primary-hover) !important; - color: white !important; -} diff --git a/docs-legacy/css/fonts.css b/docs-legacy/css/fonts.css deleted file mode 100644 index 8dd13ccb..00000000 --- a/docs-legacy/css/fonts.css +++ /dev/null @@ -1,33 +0,0 @@ -@import url('https://fonts.googleapis.com/css?family=Lobster+Two:400i,700i|Roboto+Mono|Source+Sans+Pro:400,700&display=swap'); -@import "fonts_responsive.css"; - -:root { - --font-mono: 'Roboto Mono'; - --font-sans: 'Source Sans Pro'; - --font-display: 'Lobster Two'; -} - -* { - font-family: var(--font-sans), sans-serif; - font-weight: 400; -} - -h1, .h1, h2, .h2, h3, .h3, h4, .h4, h5, .h5, h6, .h6 { - font-family: var(--font-display), cursive; - font-style: italic; - font-weight: 700 !important; -} - -h4, .h4, h5, .h5, h6, .h6 { - font-weight: 400; -} - -button, .btn { - font-family: var(--font-display), cursive !important; - font-style: italic !important; - font-weight: 700 !important; -} - -code, code * { - font-family: var(--font-mono) !important; -} \ No newline at end of file diff --git a/docs-legacy/css/fonts_responsive.css b/docs-legacy/css/fonts_responsive.css deleted file mode 100644 index 62ecacb3..00000000 --- a/docs-legacy/css/fonts_responsive.css +++ /dev/null @@ -1,34 +0,0 @@ -/* https://christianoliff.com/blog/bootstrap-with-rfs */ -/* either apply after everything else or add !important here */ -@media (max-width: 1200px) { - legend { - font-size: calc(1.275rem + 0.3vw); - } - h1, .h1 { - font-size: calc(1.375rem + 1.5vw); - } - h2, .h2 { - font-size: calc(1.325rem + 0.9vw); - } - h3, .h3 { - font-size: calc(1.3rem + 0.6vw); - } - h4, .h4 { - font-size: calc(1.275rem + 0.3vw); - } - .display-1 { - font-size: calc(1.725rem + 5.7vw); - } - .display-2 { - font-size: calc(1.675rem + 5.1vw); - } - .display-3 { - font-size: calc(1.575rem + 3.9vw); - } - .display-4 { - font-size: calc(1.475rem + 2.7vw); - } - .close { - font-size: calc(1.275rem + 0.3vw); - } -} diff --git a/docs-legacy/css/landing.css b/docs-legacy/css/landing.css deleted file mode 100644 index e3da9c69..00000000 --- a/docs-legacy/css/landing.css +++ /dev/null @@ -1,43 +0,0 @@ -@import "fonts.css"; -@import "colors.css"; - -:root { - --color-gradient-1: var(--color-secondary); - --color-gradient-2: var(--color-primary); -} - -html { - width: 100%; - height: 100%; - margin: 0; -} - -body { - background: linear-gradient(45deg, var(--color-gradient-1), var(--color-gradient-2)) fixed !important; -} - -#logo { - width: 45%; - max-width: 340px; -} - -h1 { - color: white; -} - -p { - color: rgba(255, 255, 255, 0.7); - font-size: 1.2em; - line-height: 100%; -} - -.btn { - color: white !important; - background-color: rgba(240, 240, 240, 0.25); - font-size: 1.3em; -} - -.btn:hover { - color: white !important; - background-color: rgba(240, 240, 240, 0.4); -} \ No newline at end of file diff --git a/docs-legacy/css/main.css b/docs-legacy/css/main.css deleted file mode 100644 index 6aed50ba..00000000 --- a/docs-legacy/css/main.css +++ /dev/null @@ -1,291 +0,0 @@ -@import "fonts.css"; -@import "colors.css"; -@import "syntax.css"; - -:root { - --color-footer: var(--color-code-background); - --color-table-head: var(--color-code-background); - --color-divider: rgba(230, 230, 230, 0.7); - --header-height: 65px; /* kind of */ - --cards-radius: 4px; -} - -html, body { - height: 100%; -} - -/* dividers */ - -.has-divider { - border-color: var(--color-divider) !important; -} - -/* header */ - -header { - background: linear-gradient(45deg, var(--color-secondary), var(--color-primary)) fixed; - position: fixed; - top: 0; - width: 100%; - z-index: 10; -} - -header .left { - position: absolute; - left: 0; - top: 50%; - transform: translateY(-50%); -} - -header .right { - position: absolute; - right: 0; - top: 50%; - transform: translateY(-50%); -} - -header a { - color: white !important; -} - -header a:hover { - color: white !important; -} - -header .logo { - height: 32px; - width: auto; -} - -header .version { - font-size: 0.9em; - color: rgba(255, 255, 255, 0.8); -} - -body { - /* to offset wrt sticky header */ - padding-top: var(--header-height); -} - -/* footer */ - -footer { - background-color: var(--color-footer); - color: var(--color-text-muted); - font-size: 0.9em; -} - -/* drawer */ - -@media (hover: hover) { - .drawer-toggle:hover { - background-color: rgba(240, 240, 240, 0.15); - border-radius: 50%; - } -} - -@media (max-width: 768px) { - .drawer { - position: fixed; - top: 0; - left: 0; - width: 300px; - height: 100%; - overflow-x: hidden; - overflow-y: auto; - background-color: var(--color-background); - transition: transform 0.4s cubic-bezier(0.4, 0, 0, 1); - z-index: 5; - padding-top: var(--header-height); - } - - .drawer-closed { - transform: translateX(-100%); - } -} - -@media (max-width: 480px) { - .drawer { - width: 100%; - } -} - -.drawer ul { - list-style: none; - margin: 0; - padding: 0; - line-height: 100%; -} - -.drawer a { - color: inherit; -} - -.drawer a:hover { - color: var(--color-primary-hover) !important; -} - -.drawer li.active a { - color: var(--color-primary); - position: relative; -} - -/* .drawer li.active a:hover { - color: var(--color-primary-active) !important; - text-decoration: none; -} */ - -.drawer li.active { - position: relative; -} - -.drawer li.active::after { - content: ''; - display: inline-block; - position: absolute; - right: 0; - top: 50%; - transform: translateY(-50%); - width: 8px; - height: 8px; - background-color: var(--color-primary); - border-radius: 50%; -} - -/* tables */ - -table { - /* same margins that reboot gives to pre */ - margin-top: 0; - margin-bottom: 1rem; - border-collapse: collapse; - /* make it scrollable if needed */ - display: block; - overflow-x: auto; -} - -thead { - background-color: var(--color-table-head); -} - -th { - padding: 8px; - border: 1px solid var(--color-divider); - font-family: var(--font-display), sans-serif; - font-weight: 700; -} - -td { - padding: 8px; - border: 1px solid var(--color-divider); -} - -/* page and content */ - -.content p { - overflow-x: auto; /* for changelog compare links */ -} - -.content a, footer a { - color: var(--color-accent); -} - -.content a:hover, footer a:hover { - color: var(--color-accent) !important; -} - -.content ul { - padding-left: 24px; -} - -.content blockquote { - background-color: var(--color-code-background); - border-radius: var(--cards-radius); - border-left: 4px; - border-left-style: solid; - border-left-color: var(--color-accent); - font-size: 0.9em; - color: var(--color-text-muted); - padding: 0.8rem; - /* text-align: justify; - position: relative; - padding: 0.5rem 32px 0.5rem 0.5rem; - text-justify: inter-word; */ -} - -/* .content blockquote::after { - content: '!'; - position: absolute; - top: 50%; - transform: translateY(-50%); - right: 16px; - font-size: 1rem !important; - font-weight: 700 !important; - color: var(--color-accent); -} */ - -.content blockquote p, .content blockquote ul { - margin: 0; -} - -.content h1, .content h2, .content h3, .content h4, .content h5, .content h6 { - margin-top: 1.4rem; - margin-bottom: 0.8rem; -} - -.page-header span { - font-size: 0.9em; - color: var(--color-text-muted); -} - -.page-footer a { - color: black; - font-family: var(--font-display), cursive; - font-weight: 700; - font-size: 1.2em; -} - -/* code */ - -pre { - border-radius: var(--cards-radius); - padding: 0.8rem; - font-size: 0.8rem !important; - line-height: 1.6; -} - -:not(pre) > code { - border-radius: var(--cards-radius); - padding: 2px; - font-weight: 700 !important; - font-size: 0.8rem !important; -} - -.language-java, .language-xml, .language-kotlin, .language-groovy { - position: relative; -} - -.language-java::after, .language-xml::after, .language-kotlin::after, .language-groovy::after { - position: absolute; - top: 0; - right: 0; - padding: 6px; - font-size: 0.65rem; - color: var(--color-text-muted); -} - -.language-java::after { - content: 'java'; -} - -.language-xml::after { - content: 'xml'; -} - -.language-groovy::after { - content: 'groovy'; -} - -.language-kotlin::after { - content: 'kotlin'; -} diff --git a/docs-legacy/css/syntax.css b/docs-legacy/css/syntax.css deleted file mode 100644 index e41961f4..00000000 --- a/docs-legacy/css/syntax.css +++ /dev/null @@ -1,86 +0,0 @@ -/* https://github.com/richleland/pygments-css/ */ -@import "colors.css"; -:root { - --syntax-muted: #999999; - --syntax-annotations: #a49848; - --syntax-keyword: #007020; - --syntax-operators: #606060; - --syntax-numbers: var(--syntax-keyword); - --syntax-xml-tags: var(--syntax-keyword); -} - -.highlight .c { color: var(--syntax-muted); font-style: italic } /* Comment */ -.highlight .ch { color: var(--syntax-muted); font-style: italic } /* Comment.Hashbang */ -.highlight .cm { color: var(--syntax-muted); font-style: italic } /* Comment.Multiline */ -.highlight .cp { color: var(--syntax-muted); } /* Comment.Preproc */ -.highlight .cpf { color: var(--syntax-muted); font-style: italic } /* Comment.PreprocFile */ -.highlight .c1 { color: var(--syntax-muted); font-style: italic } /* Comment.Single */ -.highlight .cs { color: var(--syntax-muted); background-color: #fff0f0 } /* Comment.Special */ - -.highlight .nt { color: var(--syntax-xml-tags); font-weight: bold } /* Name.Tag */ -.highlight .na { color: inherit; /* var(--color-accent) */ } /* Name.Attribute */ -.highlight .nf { color: inherit; /* var(--color-accent) */ } /* Name.Function */ - -.highlight .mb { color: var(--syntax-numbers) } /* Literal.Number.Bin */ -.highlight .mf { color: var(--syntax-numbers) } /* Literal.Number.Float */ -.highlight .mh { color: var(--syntax-numbers) } /* Literal.Number.Hex */ -.highlight .mi { color: var(--syntax-numbers) } /* Literal.Number.Integer */ -.highlight .mo { color: var(--syntax-numbers) } /* Literal.Number.Oct */ - -.highlight .nd { color: var(--syntax-annotations); } /* Name.Decorator */ - -.highlight .k { color: var(--syntax-keyword); font-weight: bold } /* Keyword */ -.highlight .kd { color: var(--syntax-keyword); font-weight: bold } /* Keyword.Declaration */ -.highlight .kt { color: var(--syntax-keyword); font-weight: bold } /* Keyword.Type */ -.highlight .kc { color: var(--syntax-keyword); font-weight: bold } /* Keyword.Constant */ -.highlight .kn { color: var(--syntax-keyword); font-weight: bold } /* Keyword.Namespace */ -.highlight .kp { color: var(--syntax-keyword); font-weight: bold } /* Keyword.Pseudo */ -.highlight .kr { color: var(--syntax-keyword); font-weight: bold } /* Keyword.Reserved */ - -.highlight .s { color: var(--color-accent-dark); background-color: var(--color-accent-light); } /* Literal.String */ -.highlight .s1 { color: var(--color-accent-dark); background-color: var(--color-accent-light); } /* Literal.String.Single */ -.highlight .sa { color: var(--color-accent-dark) } /* Literal.String.Affix */ -.highlight .sb { color: var(--color-accent-dark) } /* Literal.String.Backtick */ -.highlight .sc { color: var(--color-accent-dark) } /* Literal.String.Char */ -.highlight .dl { color: var(--color-accent-dark) } /* Literal.String.Delimiter */ -.highlight .sd { color: var(--color-accent-dark); font-style: italic } /* Literal.String.Doc */ -.highlight .s2 { color: var(--color-accent-dark) } /* Literal.String.Double */ -.highlight .se { color: var(--color-accent-dark); font-weight: bold } /* Literal.String.Escape */ -.highlight .sh { color: var(--color-accent-dark) } /* Literal.String.Heredoc */ -.highlight .si { color: var(--color-accent-dark); font-style: italic } /* Literal.String.Interpol */ -.highlight .sx { color: var(--color-accent-dark) } /* Literal.String.Other */ -.highlight .sr { color: var(--color-accent-dark) } /* Literal.String.Regex */ -.highlight .ss { color: var(--color-accent-dark) } /* Literal.String.Symbol */ - -.highlight .o { color: var(--syntax-operators) } /* Operator */ - -.highlight .hll { background-color: #ffffcc } -.highlight .err { border: 1px solid #FF0000 } /* Error */ -.highlight .gd { color: #A00000 } /* Generic.Deleted */ -.highlight .ge { font-style: italic } /* Generic.Emph */ -.highlight .gr { color: #FF0000 } /* Generic.Error */ -.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */ -.highlight .gi { color: #00A000 } /* Generic.Inserted */ -.highlight .go { color: #888888 } /* Generic.Output */ -.highlight .gp { color: #c65d09; font-weight: bold } /* Generic.Prompt */ -.highlight .gs { font-weight: bold } /* Generic.Strong */ -.highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */ -.highlight .gt { color: #0044DD } /* Generic.Traceback */ -.highlight .m { color: #40a070 } /* Literal.Number */ -.highlight .nb { color: #007020 } /* Name.Builtin */ -.highlight .nc { color: #0e84b5; font-weight: bold } /* Name.Class */ -.highlight .no { color: #60add5 } /* Name.Constant */ -.highlight .ni { color: #d55537; font-weight: bold } /* Name.Entity */ -.highlight .ne { color: #007020 } /* Name.Exception */ -.highlight .nl { color: #002070; font-weight: bold } /* Name.Label */ -.highlight .nn { color: #0e84b5; font-weight: bold } /* Name.Namespace */ -.highlight .nv { color: #bb60d5 } /* Name.Variable */ -.highlight .ow { color: #007020; font-weight: bold } /* Operator.Word */ -.highlight .w { color: #bbbbbb } /* Text.Whitespace */ -.highlight .bp { color: #007020 } /* Name.Builtin.Pseudo */ -.highlight .fm { color: #06287e } /* Name.Function.Magic */ -.highlight .vc { color: #bb60d5 } /* Name.Variable.Class */ -.highlight .vg { color: #bb60d5 } /* Name.Variable.Global */ -.highlight .vi { color: #bb60d5 } /* Name.Variable.Instance */ -.highlight .vm { color: #bb60d5 } /* Name.Variable.Magic */ -.highlight .il { color: #40a070 } /* Literal.Number.Integer.Long */ \ No newline at end of file diff --git a/docs-legacy/home.md b/docs-legacy/home.md deleted file mode 100644 index 7ddf3f2c..00000000 --- a/docs-legacy/home.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -layout: redirect -redirect_to: https://opensource.deepmedia.io/transcoder -title: "Transcoder" ---- - -Migrated to https://opensource.deepmedia.io/transcoder \ No newline at end of file diff --git a/docs-legacy/icons/github.svg b/docs-legacy/icons/github.svg deleted file mode 100644 index c8a122a7..00000000 --- a/docs-legacy/icons/github.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - \ No newline at end of file diff --git a/docs-legacy/icons/menu.svg b/docs-legacy/icons/menu.svg deleted file mode 100644 index 45918677..00000000 --- a/docs-legacy/icons/menu.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - \ No newline at end of file diff --git a/docs-legacy/index.md b/docs-legacy/index.md deleted file mode 100644 index ee7fbb4e..00000000 --- a/docs-legacy/index.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -layout: redirect -redirect_to: https://opensource.deepmedia.io/transcoder -title: "Transcoder" ---- - -Migrated to https://opensource.deepmedia.io/transcoder diff --git a/docs-legacy/script/launch b/docs-legacy/script/launch deleted file mode 100755 index 080bfe6c..00000000 --- a/docs-legacy/script/launch +++ /dev/null @@ -1,4 +0,0 @@ -#!/usr/bin/env bash -# -# Run a local instance of the site. -bundle exec jekyll serve diff --git a/docs-legacy/static/banner.png b/docs-legacy/static/banner.png deleted file mode 100644 index 017a4bc1..00000000 Binary files a/docs-legacy/static/banner.png and /dev/null differ diff --git a/docs-legacy/static/icon_foreground.png b/docs-legacy/static/icon_foreground.png deleted file mode 100644 index a5b60424..00000000 Binary files a/docs-legacy/static/icon_foreground.png and /dev/null differ diff --git a/docs-legacy/static/screenshot-1.png b/docs-legacy/static/screenshot-1.png deleted file mode 100644 index fd47e91f..00000000 Binary files a/docs-legacy/static/screenshot-1.png and /dev/null differ diff --git a/docs-legacy/static/screenshot-2.png b/docs-legacy/static/screenshot-2.png deleted file mode 100644 index d43c4f47..00000000 Binary files a/docs-legacy/static/screenshot-2.png and /dev/null differ diff --git a/docs-legacy/static/sharechat.png b/docs-legacy/static/sharechat.png deleted file mode 100644 index eaf40c5d..00000000 Binary files a/docs-legacy/static/sharechat.png and /dev/null differ diff --git a/docs/changelog.mdx b/docs/changelog.mdx index 6b4dc3fe..9fa981c8 100644 --- a/docs/changelog.mdx +++ b/docs/changelog.mdx @@ -6,6 +6,25 @@ title: Changelog New versions are released through GitHub, so the reference page is the [GitHub Releases](https://github.com/deepmedia/Transcoder/releases) page. +## 0.11.X + +### 0.11.0 + +This release focuses on stability and performance, fixing old bugs that were making the library unstable and unreliable. +In addition, the library is now available at new maven coordinates `io.deepmedia.community:transcoder-android`. +The old coordinates will still work and receive updates. + +- Enhancement: Revisit transcoding pipeline ([#203](https://github.com/deepmedia/Transcoder/pull/203)) +- Enhancement: Allow SpeedTimeInterpolator reuse, thanks to [@vaibhavpandeyvpz](https://github.com/vaibhavpandeyvpz) ([#199](https://github.com/deepmedia/Transcoder/pull/199)) +- Fix: fix video artifacts, thanks to [@jumperson](https://github.com/jumperson) ([#199](https://github.com/deepmedia/Transcoder/pull/200)) +- Fix: fix end-of-stream flag not sent ([#201](https://github.com/deepmedia/Transcoder/pull/201)) +- Fix: fix performance issues, thanks to [@jumperson](https://github.com/jumperson) ([#202](https://github.com/deepmedia/Transcoder/pull/202)) +- Fix: handle null buffers ([#203](https://github.com/deepmedia/Transcoder/pull/203)) +- Fix: avoid pipeline stalls ([#203](https://github.com/deepmedia/Transcoder/pull/203)) +- Fix: ensure monotonic muxer timestamps ([#203](https://github.com/deepmedia/Transcoder/pull/203)) + +[Compare 0.10.5...0.11.0](https://github.com/deepmedia/Transcoder/compare/v0.10.5...v0.11.0). + ## 0.10.X ### 0.10.5 diff --git a/docs/install.mdx b/docs/install.mdx index 14cbf649..3086658d 100644 --- a/docs/install.mdx +++ b/docs/install.mdx @@ -4,13 +4,16 @@ title: Install # Installation -Transcoder is publicly hosted on the [Maven Central](https://repo1.maven.org/maven2/com/otaliastudios/) +Transcoder is publicly hosted on the [Maven Central](https://repo1.maven.org/maven2/io/deepmedia/community/) repository, where you can download the AAR package. To fetch with Gradle, assuming that `mavenCentral()` is already one of your repository sources, simply declare a new dependency: ```kotlin dependencies { - api("com.otaliastudios:transcoder:LATEST_VERSION") + api("io.deepmedia.community:transcoder-android:LATEST_VERSION") + + // Or use the legacy coordinates: + // api("com.otaliastudios:transcoder:LATEST_VERSION") } ``` @@ -32,6 +35,9 @@ pluginManagement { // build.gradle.kts dependencies { - implementation("com.otaliastudios:transcoder:latest-SNAPSHOT") + api("io.deepmedia.community:transcoder-android:latest-SNAPSHOT") + + // Or use the legacy coordinates: + // api("com.otaliastudios:transcoder:latest-SNAPSHOT") } ``` \ No newline at end of file diff --git a/lib-legacy/.gitignore b/lib-legacy/.gitignore new file mode 100644 index 00000000..796b96d1 --- /dev/null +++ b/lib-legacy/.gitignore @@ -0,0 +1 @@ +/build diff --git a/lib-legacy/build.gradle.kts b/lib-legacy/build.gradle.kts new file mode 100644 index 00000000..a62e9b07 --- /dev/null +++ b/lib-legacy/build.gradle.kts @@ -0,0 +1,77 @@ +import io.deepmedia.tools.deployer.model.Secret + +plugins { + id("com.android.library") + id("io.deepmedia.tools.deployer") +} + +android { + namespace = "com.otaliastudios.transcoder" + compileSdk = 34 + defaultConfig.minSdk = 21 + publishing { singleVariant("release") } +} + +dependencies { + api(project(":lib")) +} + +deployer { + content { + component { + fromSoftwareComponent("release") + emptyDocs() + emptySources() + } + } + + projectInfo { + groupId = "com.otaliastudios" + artifactId = "transcoder" + release.version = "0.11.0" // change :lib and README + description = "Accelerated video compression and transcoding on Android using MediaCodec APIs (no FFMPEG/LGPL licensing issues). Supports cropping to any dimension, concatenation, audio processing and much more." + url = "https://opensource.deepmedia.io/transcoder" + scm.fromGithub("deepmedia", "Transcoder") + license(apache2) + developer("Mattia Iavarone", "mattia@deepmedia.io", "DeepMedia", "https://deepmedia.io") + } + + signing { + key = secret("SIGNING_KEY") + password = secret("SIGNING_PASSWORD") + } + + // use "deployLocal" to deploy to local maven repository + localSpec { + directory.set(rootProject.layout.buildDirectory.get().dir("inspect")) + signing { + key = absent() + password = absent() + } + } + + // use "deployNexus" to deploy to OSSRH / maven central + nexusSpec { + auth.user = secret("SONATYPE_USER") + auth.password = secret("SONATYPE_PASSWORD") + syncToMavenCentral = true + } + + // use "deployNexusSnapshot" to deploy to sonatype snapshots repo + nexusSpec("snapshot") { + auth.user = secret("SONATYPE_USER") + auth.password = secret("SONATYPE_PASSWORD") + repositoryUrl = ossrhSnapshots1 + release.version = "latest-SNAPSHOT" + } + + // use "deployGithub" to deploy to github packages + githubSpec { + repository = "Transcoder" + owner = "deepmedia" + auth { + user = secret("GHUB_USER") + token = secret("GHUB_PERSONAL_ACCESS_TOKEN") + } + } +} diff --git a/lib/build.gradle.kts b/lib/build.gradle.kts index 533e7902..74dcfcc8 100644 --- a/lib/build.gradle.kts +++ b/lib/build.gradle.kts @@ -1,12 +1,15 @@ +import io.deepmedia.tools.deployer.model.Secret +import org.gradle.api.publish.maven.internal.publication.MavenPublicationInternal + plugins { id("com.android.library") kotlin("android") - id("io.deepmedia.tools.deployer") version "0.14.0-alpha1" + id("io.deepmedia.tools.deployer") id("org.jetbrains.dokka") version "1.9.20" } android { - namespace = "com.otaliastudios.transcoder" + namespace = "io.deepmedia.transcoder" compileSdk = 34 defaultConfig { minSdk = 21 @@ -26,7 +29,7 @@ kotlin { dependencies { api("com.otaliastudios.opengl:egloo:0.6.1") - api("androidx.annotation:annotation:1.8.1") + api("androidx.annotation:annotation:1.8.2") androidTestImplementation("androidx.test:runner:1.6.1") androidTestImplementation("androidx.test:rules:1.6.1") @@ -42,9 +45,13 @@ val javadocs = tasks.register("dokkaJavadocJar") { archiveClassifier.set("javadoc") } -deployer { - verbose = true +// Ugly workaround because the snapshot publication has different version and maven-publish +// is then unable to determine the right coordinates for lib-legacy dependency on this project +publishing.publications.withType().configureEach { + isAlias = name != "localReleaseComponent" +} +deployer { content { component { fromSoftwareComponent("release") @@ -54,15 +61,14 @@ deployer { } projectInfo { - groupId = "com.otaliastudios" - artifactId = "transcoder" - release.version = "0.10.5" - release.tag = "v0.10.5" + groupId = "io.deepmedia.community" + artifactId = "transcoder-android" + release.version = "0.11.0" // change :lib-legacy and README description = "Accelerated video compression and transcoding on Android using MediaCodec APIs (no FFMPEG/LGPL licensing issues). Supports cropping to any dimension, concatenation, audio processing and much more." - url = "https://github.com/deepmedia/Transcoder" + url = "https://opensource.deepmedia.io/transcoder" scm.fromGithub("deepmedia", "Transcoder") license(apache2) - developer("natario1", "mattia@deepmedia.io", "DeepMedia", "https://deepmedia.io") + developer("Mattia Iavarone", "mattia@deepmedia.io", "DeepMedia", "https://deepmedia.io") } signing { @@ -73,6 +79,10 @@ deployer { // use "deployLocal" to deploy to local maven repository localSpec { directory.set(rootProject.layout.buildDirectory.get().dir("inspect")) + signing { + key = absent() + password = absent() + } } // use "deployNexus" to deploy to OSSRH / maven central diff --git a/settings.gradle.kts b/settings.gradle.kts index b3b62bfb..4e474bb4 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -15,4 +15,5 @@ dependencyResolutionManagement { } include(":lib") +include(":lib-legacy") include(":demo")