Skip to content

Commit 01007e3

Browse files
committed
fix possible gl render ANR
1 parent cdafdd5 commit 01007e3

File tree

2 files changed

+22
-14
lines changed

2 files changed

+22
-14
lines changed

library/src/main/java/com/pedro/library/view/GlStreamInterface.kt

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -150,27 +150,33 @@ class GlStreamInterface(private val context: Context): OnFrameAvailableListener,
150150
}
151151

152152
override fun addMediaCodecSurface(surface: Surface) {
153-
if (surfaceManager.isReady) {
154-
surfaceManagerEncoder.release()
155-
surfaceManagerEncoder.eglSetup(surface, surfaceManager)
153+
executor?.submit {
154+
if (surfaceManager.isReady) {
155+
surfaceManagerEncoder.release()
156+
surfaceManagerEncoder.eglSetup(surface, surfaceManager)
157+
}
156158
}
157159
}
158160

159161
override fun removeMediaCodecSurface() {
160-
threadQueue.clear()
161-
surfaceManagerEncoder.release()
162+
executor?.submit {
163+
surfaceManagerEncoder.release()
164+
}
162165
}
163166

164167
override fun addMediaCodecRecordSurface(surface: Surface) {
165-
if (surfaceManager.isReady) {
166-
surfaceManagerEncoderRecord.release()
167-
surfaceManagerEncoderRecord.eglSetup(surface, surfaceManager)
168+
executor?.submit {
169+
if (surfaceManager.isReady) {
170+
surfaceManagerEncoderRecord.release()
171+
surfaceManagerEncoderRecord.eglSetup(surface, surfaceManager)
172+
}
168173
}
169174
}
170175

171176
override fun removeMediaCodecRecordSurface() {
172-
threadQueue.clear()
173-
surfaceManagerEncoderRecord.release()
177+
executor?.submit {
178+
surfaceManagerEncoderRecord.release()
179+
}
174180
}
175181

176182
override fun takePhoto(takePhotoCallback: TakePhotoCallback?) {

library/src/main/java/com/pedro/library/view/OpenGlView.kt

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -285,8 +285,9 @@ open class OpenGlView : SurfaceView, GlInterface, OnFrameAvailableListener, Surf
285285
}
286286

287287
override fun removeMediaCodecSurface() {
288-
threadQueue.clear()
289-
surfaceManagerEncoder.release()
288+
executor?.submit {
289+
surfaceManagerEncoder.release()
290+
}
290291
}
291292

292293
override fun addMediaCodecRecordSurface(surface: Surface) {
@@ -297,8 +298,9 @@ open class OpenGlView : SurfaceView, GlInterface, OnFrameAvailableListener, Surf
297298
}
298299

299300
override fun removeMediaCodecRecordSurface() {
300-
threadQueue.clear()
301-
surfaceManagerEncoderRecord.release()
301+
executor?.submit {
302+
surfaceManagerEncoderRecord.release()
303+
}
302304
}
303305

304306
override fun start() {

0 commit comments

Comments
 (0)