@@ -136,35 +136,27 @@ class GlStreamInterface(private val context: Context): OnFrameAvailableListener,
136136 }
137137
138138 override fun addMediaCodecSurface (surface : Surface ) {
139- executor?.secureSubmit {
140- if (surfaceManager.isReady) {
141- surfaceManagerEncoder.release()
142- surfaceManagerEncoder.eglSetup(surface, surfaceManager)
143- }
139+ if (surfaceManager.isReady) {
140+ surfaceManagerEncoder.release()
141+ surfaceManagerEncoder.eglSetup(surface, surfaceManager)
144142 }
145143 }
146144
147145 override fun removeMediaCodecSurface () {
148146 threadQueue.clear()
149- executor?.secureSubmit {
150- surfaceManagerEncoder.release()
151- }
147+ surfaceManagerEncoder.release()
152148 }
153149
154150 override fun addMediaCodecRecordSurface (surface : Surface ) {
155- executor?.secureSubmit {
156- if (surfaceManager.isReady) {
157- surfaceManagerEncoderRecord.release()
158- surfaceManagerEncoderRecord.eglSetup(surface, surfaceManager)
159- }
151+ if (surfaceManager.isReady) {
152+ surfaceManagerEncoderRecord.release()
153+ surfaceManagerEncoderRecord.eglSetup(surface, surfaceManager)
160154 }
161155 }
162156
163157 override fun removeMediaCodecRecordSurface () {
164158 threadQueue.clear()
165- executor?.secureSubmit {
166- surfaceManagerEncoderRecord.release()
167- }
159+ surfaceManagerEncoderRecord.release()
168160 }
169161
170162 override fun takePhoto (takePhotoCallback : TakePhotoCallback ? ) {
@@ -174,14 +166,15 @@ class GlStreamInterface(private val context: Context): OnFrameAvailableListener,
174166 override fun start () {
175167 threadQueue.clear()
176168 executor = newSingleThreadExecutor(threadQueue)
169+ surfaceManager.release()
170+ surfaceManager.eglSetup()
171+ surfaceManagerPhoto.release()
172+ surfaceManagerPhoto.eglSetup(encoderWidth, encoderHeight, surfaceManager)
173+ sensorRotationManager.start()
174+ running.set(true )
177175 executor?.secureSubmit {
178- surfaceManager.release()
179- surfaceManager.eglSetup()
180176 surfaceManager.makeCurrent()
181177 mainRender.initGl(context, encoderWidth, encoderHeight, encoderWidth, encoderHeight)
182- surfaceManagerPhoto.release()
183- surfaceManagerPhoto.eglSetup(encoderWidth, encoderHeight, surfaceManager)
184- running.set(true )
185178 mainRender.getSurfaceTexture().setOnFrameAvailableListener(this )
186179 forceRender.start {
187180 executor?.execute {
@@ -192,24 +185,21 @@ class GlStreamInterface(private val context: Context): OnFrameAvailableListener,
192185 }
193186 }
194187 }
195- sensorRotationManager.start()
196188 }
197189 }
198190
199191 override fun stop () {
200192 running.set(false )
201193 threadQueue.clear()
202- executor?.secureSubmit {
203- forceRender.stop()
204- sensorRotationManager.stop()
205- surfaceManagerPhoto.release()
206- surfaceManagerEncoder.release()
207- surfaceManagerEncoderRecord.release()
208- surfaceManager.release()
209- mainRender.release()
210- }
211194 executor?.shutdownNow()
212195 executor = null
196+ forceRender.stop()
197+ sensorRotationManager.stop()
198+ surfaceManagerPhoto.release()
199+ surfaceManagerEncoder.release()
200+ surfaceManagerEncoderRecord.release()
201+ surfaceManager.release()
202+ mainRender.release()
213203 }
214204
215205 private fun draw (forced : Boolean ) {
0 commit comments