[Android] Add remote access compression support

Robert Stone git at videolan.org
Mon Feb 10 10:38:29 UTC 2025


vlc-android | branch: master | Robert Stone <rhstone at gmail.com> | Sun Feb  9 10:39:15 2025 -0800| [f2a67d74d3ba3810d419ceb3498735f8d562473c] | committer: Robert Stone

Add remote access compression support

> https://code.videolan.org/videolan/vlc-android/commit/f2a67d74d3ba3810d419ceb3498735f8d562473c
---

 application/remote-access-server/build.gradle             |  1 +
 .../videolan/vlc/remoteaccessserver/RemoteAccessServer.kt | 15 +++++++++++++++
 2 files changed, 16 insertions(+)

diff --git a/application/remote-access-server/build.gradle b/application/remote-access-server/build.gradle
index cb7d371d05..045a8078a0 100644
--- a/application/remote-access-server/build.gradle
+++ b/application/remote-access-server/build.gradle
@@ -70,6 +70,7 @@ dependencies {
     implementation "io.ktor:ktor-server-netty:$rootProject.ext.ktorVersion"
     implementation "io.ktor:ktor-server-websockets:$rootProject.ext.ktorVersion"
     implementation "io.ktor:ktor-server-caching-headers:$rootProject.ext.ktorVersion"
+    implementation "io.ktor:ktor-server-compression:$rootProject.ext.ktorVersion"
     implementation "io.ktor:ktor-server-cors:$rootProject.ext.ktorVersion"
     implementation("io.ktor:ktor-server-auth:$rootProject.ext.ktorVersion")
     implementation("io.ktor:ktor-server-partial-content:$rootProject.ext.ktorVersion")
diff --git a/application/remote-access-server/src/main/java/org/videolan/vlc/remoteaccessserver/RemoteAccessServer.kt b/application/remote-access-server/src/main/java/org/videolan/vlc/remoteaccessserver/RemoteAccessServer.kt
index 64f743e7cd..b52bd29aa2 100644
--- a/application/remote-access-server/src/main/java/org/videolan/vlc/remoteaccessserver/RemoteAccessServer.kt
+++ b/application/remote-access-server/src/main/java/org/videolan/vlc/remoteaccessserver/RemoteAccessServer.kt
@@ -54,6 +54,9 @@ import io.ktor.server.netty.Netty
 import io.ktor.server.netty.NettyApplicationEngine
 import io.ktor.server.plugins.cachingheaders.CachingHeaders
 import io.ktor.server.plugins.callloging.CallLogging
+import io.ktor.server.plugins.compression.Compression
+import io.ktor.server.plugins.compression.matchContentType
+import io.ktor.server.plugins.compression.minimumSize
 import io.ktor.server.plugins.cors.routing.CORS
 import io.ktor.server.plugins.origin
 import io.ktor.server.plugins.partialcontent.PartialContent
@@ -492,6 +495,18 @@ class RemoteAccessServer(private val context: Context) : PlaybackService.Callbac
                     maxFrameSize = Long.MAX_VALUE
                     masking = false
                 }
+                install(Compression) {
+                    default()
+                    matchContentType(
+                        ContentType.Text.Plain,
+                        ContentType.Image.SVG,
+                        ContentType.Text.CSS,
+                        ContentType.Text.Xml,
+                        ContentType.Text.Html,
+                        ContentType.Text.JavaScript,
+                        ContentType.Application.JavaScript
+                    )
+                }
                 install(CachingHeaders) {
                     options { _, content ->
                         when (content.contentType?.withoutParameters()) {



More information about the Android mailing list