问题现象:dvr拍摄的图片是黑的,没有buffer数据的。
查看相关的log文件发现:
video surface 未释放导致 祥见一下报错信息:
38298 2024-10-16 01:02:51.855 4056 32068 W MediaCodecRenderer: java.lang.IllegalStateException: androidx.media3.common.util.GlUtil$GlException: eglMakeCurrent failed
38299 2024-10-16 01:02:51.855 4056 32068 W MediaCodecRenderer: at androidx.media3.exoplayer.video.PlaceholderSurface$PlaceholderSurfaceThread.handleMessage(PlaceholderSurface.java:191)
25292 2024-10-16 01:02:11.537 4056 29504 E Adreno-GSL_RPC: <ioctl_hgsl_context_create:2273>: HGSL: ioctl HGSL_IOCTL_CTXT_CREATE failed, -5
其他进程调用gsl接口正常
101648 2024-10-16 10:26:15.167 5824 5869 I Adreno-GSL_RPC: <gsl_context_create:2928>: ctxt_id 194, sync_type 2
101651 2024-10-16 10:26:15.173 5824 5869 I Adreno-GSL_RPC: <gsl_library_close:1573>: library close – refcount=1
101654 2024-10-16 10:26:15.181 5824 5869 I Adreno-GSL_RPC: <gsl_context_create:2928>: ctxt_id 195, sync_type 2
如果一个进程只创建gsl资源, 但是不释放相关资源, 调用次数达到一定程度, 就会有创建gsl资源失败
最终让app端检查并正常释放了video surface,问题不再复现