diff --git a/sdk/android/src/jni/video_encoder_wrapper.cc b/sdk/android/src/jni/video_encoder_wrapper.cc
index fe75087..d292a85 100644
--- a/sdk/android/src/jni/video_encoder_wrapper.cc
+++ b/sdk/android/src/jni/video_encoder_wrapper.cc
@@ -38,10 +38,8 @@
   initialized_ = false;
   num_resets_ = 0;
 
-  // Get bitrate limits in the constructor. This is a static property of the
-  // encoder and is expected to be available before it is initialized.
-  encoder_info_.resolution_bitrate_limits = JavaToNativeResolutionBitrateLimits(
-      jni, Java_VideoEncoder_getResolutionBitrateLimits(jni, encoder_));
+  // Fetch and update encoder info.
+  UpdateEncoderInfo(jni);
 }
 VideoEncoderWrapper::~VideoEncoderWrapper() = default;
 
@@ -91,11 +89,9 @@
       jni, Java_VideoEncoder_initEncode(jni, encoder_, settings, callback));
   RTC_LOG(LS_INFO) << "initEncode: " << status;
 
-  encoder_info_.supports_native_handle = true;
-  encoder_info_.implementation_name = GetImplementationName(jni);
-  encoder_info_.scaling_settings = GetScalingSettingsInternal(jni);
-  encoder_info_.is_hardware_accelerated = IsHardwareVideoEncoder(jni, encoder_);
-  encoder_info_.has_internal_source = false;
+  // Some encoder's properties depend on settings and may change after
+  // initialization.
+  UpdateEncoderInfo(jni);
 
   if (status == WEBRTC_VIDEO_CODEC_OK) {
     initialized_ = true;
@@ -103,6 +99,22 @@
   return status;
 }
 
+void VideoEncoderWrapper::UpdateEncoderInfo(JNIEnv* jni) {
+  encoder_info_.supports_native_handle = true;
+  encoder_info_.has_internal_source = false;
+
+  encoder_info_.implementation_name = JavaToStdString(
+      jni, Java_VideoEncoder_getImplementationName(jni, encoder_));
+
+  encoder_info_.is_hardware_accelerated =
+      Java_VideoEncoder_isHardwareEncoder(jni, encoder_);
+
+  encoder_info_.scaling_settings = GetScalingSettingsInternal(jni);
+
+  encoder_info_.resolution_bitrate_limits = JavaToNativeResolutionBitrateLimits(
+      jni, Java_VideoEncoder_getResolutionBitrateLimits(jni, encoder_));
+}
+
 int32_t VideoEncoderWrapper::RegisterEncodeCompleteCallback(
     EncodedImageCallback* callback) {
   callback_ = callback;
@@ -398,11 +410,6 @@
   return Java_BitrateAllocation_Constructor(jni, j_allocation_array);
 }
 
-std::string VideoEncoderWrapper::GetImplementationName(JNIEnv* jni) const {
-  return JavaToStdString(
-      jni, Java_VideoEncoder_getImplementationName(jni, encoder_));
-}
-
 std::unique_ptr<VideoEncoder> JavaToNativeVideoEncoder(
     JNIEnv* jni,
     const JavaRef<jobject>& j_encoder) {
@@ -417,10 +424,6 @@
   return std::unique_ptr<VideoEncoder>(encoder);
 }
 
-bool IsHardwareVideoEncoder(JNIEnv* jni, const JavaRef<jobject>& j_encoder) {
-  return Java_VideoEncoder_isHardwareEncoder(jni, j_encoder);
-}
-
 std::vector<VideoEncoder::ResolutionBitrateLimits>
 JavaToNativeResolutionBitrateLimits(
     JNIEnv* jni,
diff --git a/sdk/android/src/jni/video_encoder_wrapper.h b/sdk/android/src/jni/video_encoder_wrapper.h
index ae45004..2cd77df 100644
--- a/sdk/android/src/jni/video_encoder_wrapper.h
+++ b/sdk/android/src/jni/video_encoder_wrapper.h
@@ -74,10 +74,9 @@
   ScopedJavaLocalRef<jobject> ToJavaBitrateAllocation(
       JNIEnv* jni,
       const VideoBitrateAllocation& allocation);
-  std::string GetImplementationName(JNIEnv* jni) const;
 
+  void UpdateEncoderInfo(JNIEnv* jni);
   ScalingSettings GetScalingSettingsInternal(JNIEnv* jni) const;
-
   std::vector<ResolutionBitrateLimits> GetResolutionBitrateLimits(
       JNIEnv* jni) const;
 
