From ad74c0a9203742f9e56f2e70c5d5bb5303e60f15 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Adrien=20B=C3=A9raud?= <adrien.beraud@savoirfairelinux.com>
Date: Tue, 23 Nov 2021 11:41:30 -0500
Subject: [PATCH] requestKeyFrame: adapt for API changes

Change-Id: I0575361fba597333c7bfa35cef4da86c2bc47163
---
 .../src/main/java/cx/ring/services/CameraService.kt  | 12 +++++-------
 .../java/cx/ring/services/HardwareServiceImpl.kt     |  4 ++--
 .../main/kotlin/net/jami/services/DaemonService.kt   |  2 +-
 .../main/kotlin/net/jami/services/HardwareService.kt |  2 +-
 4 files changed, 9 insertions(+), 11 deletions(-)

diff --git a/ring-android/app/src/main/java/cx/ring/services/CameraService.kt b/ring-android/app/src/main/java/cx/ring/services/CameraService.kt
index 0a930464c..043cb6916 100644
--- a/ring-android/app/src/main/java/cx/ring/services/CameraService.kt
+++ b/ring-android/app/src/main/java/cx/ring/services/CameraService.kt
@@ -491,14 +491,12 @@ class CameraService internal constructor(c: Context) {
         return Pair(codec, encoderInput)
     }
 
-    fun requestKeyFrame() {
-        Log.w(TAG, "requestKeyFrame()")
+    fun requestKeyFrame(camId: String) {
+        Log.w(TAG, "requestKeyFrame() $camId")
         try {
-            /*if (currentCodec != null) {
-                val params = Bundle()
-                params.putInt(MediaCodec.PARAMETER_KEY_REQUEST_SYNC_FRAME, 0)
-                currentCodec!!.setParameters(params)
-            }*/
+            mParams[camId]?.mediaCodec?.setParameters(Bundle().apply {
+                putInt(MediaCodec.PARAMETER_KEY_REQUEST_SYNC_FRAME, 0)
+            })
         } catch (e: IllegalStateException) {
             Log.w(TAG, "Can't send keyframe request", e)
         }
diff --git a/ring-android/app/src/main/java/cx/ring/services/HardwareServiceImpl.kt b/ring-android/app/src/main/java/cx/ring/services/HardwareServiceImpl.kt
index 8bd6a922b..9144173a3 100644
--- a/ring-android/app/src/main/java/cx/ring/services/HardwareServiceImpl.kt
+++ b/ring-android/app/src/main/java/cx/ring/services/HardwareServiceImpl.kt
@@ -468,8 +468,8 @@ class HardwareServiceImpl(
         videoEvents.onNext(VideoEvent(started = false))
     }
 
-    override fun requestKeyFrame() {
-        cameraService.requestKeyFrame()
+    override fun requestKeyFrame(camId: String) {
+        cameraService.requestKeyFrame(camId)
     }
 
     override fun setBitrate(camId: String, bitrate: Int) {
diff --git a/ring-android/libjamiclient/src/main/kotlin/net/jami/services/DaemonService.kt b/ring-android/libjamiclient/src/main/kotlin/net/jami/services/DaemonService.kt
index edc5fc7ad..1a1c969c4 100644
--- a/ring-android/libjamiclient/src/main/kotlin/net/jami/services/DaemonService.kt
+++ b/ring-android/libjamiclient/src/main/kotlin/net/jami/services/DaemonService.kt
@@ -303,7 +303,7 @@ class DaemonService(
         }
 
         override fun requestKeyFrame(camId: String) {
-            mHardwareService.requestKeyFrame()
+            mHardwareService.requestKeyFrame(camId)
         }
 
         override fun setBitrate(camId: String, bitrate: Int) {
diff --git a/ring-android/libjamiclient/src/main/kotlin/net/jami/services/HardwareService.kt b/ring-android/libjamiclient/src/main/kotlin/net/jami/services/HardwareService.kt
index b1d1fd291..36361ccd6 100644
--- a/ring-android/libjamiclient/src/main/kotlin/net/jami/services/HardwareService.kt
+++ b/ring-android/libjamiclient/src/main/kotlin/net/jami/services/HardwareService.kt
@@ -95,7 +95,7 @@ abstract class HardwareService(
     abstract fun startCapture(camId: String?)
     abstract fun stopCapture(camId: String)
     abstract fun hasMicrophone(): Boolean
-    abstract fun requestKeyFrame()
+    abstract fun requestKeyFrame(camId: String)
     abstract fun setBitrate(camId: String, bitrate: Int)
     abstract fun addVideoSurface(id: String, holder: Any)
     abstract fun updateVideoSurfaceId(currentId: String, newId: String)
-- 
GitLab