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 0a930464c1edab44c1bc218be8888ebc57054ea1..043cb691658f17e7e57dba870551c37ea72a6872 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 8bd6a922b3bf7899c752a220b8cb74ba41e9c9f7..9144173a364267ad0cc5eab3fc9f00e8ef85adf9 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 edc5fc7ad2b470e58ac8f4412b7de77868cdb125..1a1c969c4bb4c7a960481b38cc6ec2b5c9f06b0c 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 b1d1fd291cd42695627f6082c9f3c3a92b2e6a08..36361ccd67f6370a273ca1e32a679153bbdc17cb 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)