瀏覽代碼

android: turn on HW video decoder

In 49e3b03885 we turned on SW encoders / decoders
on account of some devices having broken HW *encoders* and also our desire for
using simulcast.

Well, the astute reader may have noticed that only *encoding* was mentioned.
Indeed, we should be able to keep using the HW decoder just fine.
master
Saúl Ibarra Corretgé 5 年之前
父節點
當前提交
7d09088186
共有 1 個檔案被更改,包括 17 行新增5 行删除
  1. 17
    5
      android/sdk/src/main/java/org/jitsi/meet/sdk/ReactInstanceManagerHolder.java

+ 17
- 5
android/sdk/src/main/java/org/jitsi/meet/sdk/ReactInstanceManagerHolder.java 查看文件

1
 /*
1
 /*
2
- * Copyright @ 2019-present 8x8, Inc.
3
- * Copyright @ 2017-2018 Atlassian Pty Ltd
2
+ * Copyright @ 2017-present 8x8, Inc.
4
  *
3
  *
5
  * Licensed under the Apache License, Version 2.0 (the "License");
4
  * Licensed under the Apache License, Version 2.0 (the "License");
6
  * you may not use this file except in compliance with the License.
5
  * you may not use this file except in compliance with the License.
31
 import com.facebook.react.modules.core.DeviceEventManagerModule;
30
 import com.facebook.react.modules.core.DeviceEventManagerModule;
32
 import com.facebook.react.uimanager.ViewManager;
31
 import com.facebook.react.uimanager.ViewManager;
33
 import com.facebook.soloader.SoLoader;
32
 import com.facebook.soloader.SoLoader;
33
+
34
+import com.oney.WebRTCModule.EglUtils;
34
 import com.oney.WebRTCModule.RTCVideoViewManager;
35
 import com.oney.WebRTCModule.RTCVideoViewManager;
35
 import com.oney.WebRTCModule.WebRTCModule;
36
 import com.oney.WebRTCModule.WebRTCModule;
36
 
37
 
38
+import org.webrtc.DefaultVideoDecoderFactory;
39
+import org.webrtc.EglBase;
37
 import org.webrtc.SoftwareVideoDecoderFactory;
40
 import org.webrtc.SoftwareVideoDecoderFactory;
38
 import org.webrtc.SoftwareVideoEncoderFactory;
41
 import org.webrtc.SoftwareVideoEncoderFactory;
39
 import org.webrtc.VideoDecoderFactory;
42
 import org.webrtc.VideoDecoderFactory;
84
 
87
 
85
         AudioDeviceModule adm = JavaAudioDeviceModule.builder(reactContext)
88
         AudioDeviceModule adm = JavaAudioDeviceModule.builder(reactContext)
86
             .createAudioDeviceModule();
89
             .createAudioDeviceModule();
87
-        VideoDecoderFactory videoDecoderFactory = new SoftwareVideoDecoderFactory();
88
-        VideoEncoderFactory videoEncoderFactory = new SoftwareVideoEncoderFactory();
89
-
90
         options.setAudioDeviceModule(adm);
90
         options.setAudioDeviceModule(adm);
91
+
92
+        VideoEncoderFactory videoEncoderFactory = new SoftwareVideoEncoderFactory();
93
+        VideoDecoderFactory videoDecoderFactory;
94
+        // Initialize EGL context required for HW acceleration. We are only going to use it for
95
+        // decoding.
96
+        EglBase.Context eglContext = EglUtils.getRootEglBaseContext();
97
+        if (eglContext == null) {
98
+            // Fallback to the software decoder.
99
+            videoDecoderFactory = new SoftwareVideoDecoderFactory();
100
+        } else {
101
+            videoDecoderFactory = new DefaultVideoDecoderFactory(eglContext);
102
+        }
91
         options.setVideoDecoderFactory(videoDecoderFactory);
103
         options.setVideoDecoderFactory(videoDecoderFactory);
92
         options.setVideoEncoderFactory(videoEncoderFactory);
104
         options.setVideoEncoderFactory(videoEncoderFactory);
93
 
105
 

Loading…
取消
儲存