Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Capture fails on Android because codec resources are not released #265

Closed
kkmiy opened this issue Mar 3, 2023 · 3 comments
Closed

Capture fails on Android because codec resources are not released #265

kkmiy opened this issue Mar 3, 2023 · 3 comments
Assignees
Labels
Android Bug 🐛 Something isn't working fixed The issue has been fixed and will be available in the next release
Milestone

Comments

@kkmiy
Copy link

kkmiy commented Mar 3, 2023

Please DO NOT LINK / ATTACH YOUR PROJECT FILES HERE

Describe the bug
Capture fails on Android because codec resources are not released.
Occurs only on specific devices(e.g. Galaxy A21).

Your Setup (please complete the following information):

  • Unity version: Unity2020.3.33f1
  • AVPro Movie Capture version: Ultra Edition Version 5.1.2
  • Operating system version: Android 11
  • GraphicsAPI: OpenGLES3
  • Capture component used: CaptureFromCamera
  • Capture settings (resolution, frame-rate, codec): 320x240 @ 30.00fps [RGBA32] vcodec:'H264'
    • Encoder OMX.Exynos.AVC.Encoder

To Reproduce
Steps to reproduce the behavior:

  1. Open Demo03-CameraCapture scene.
  2. Build And Run
  3. Tap "Start Capture"
  4. Tap "Cancel Capture"
  5. Repeaat 3 and 4 steps.

Logs
If applicable, add error logs to help explain your problem.

Init log

[AVProMovieCapture] Init version: 5.1.2 (plugin v5.1.2-full) with GPU Mali-G71 OpenGL ES 3.2 v1.r26p0-01eac0.0cdc40c87619f3e2c0bb1143755a6e8f OS: Android OS 11 / API-30 (RP1A.200720.012/SCV49KDU1BVH1)

AVProMovieCapture and Untiy Log

2023-03-03 16:02:00.012  5461-5461  ViewRootIm...rActivity] com.DefaultCompany.MovieCaptureBug   I  ViewPostIme pointer 0
2023-03-03 16:02:00.075  5461-5461  ViewRootIm...rActivity] com.DefaultCompany.MovieCaptureBug   I  ViewPostIme pointer 1
2023-03-03 16:02:00.237  5461-8848  Unity                   com.DefaultCompany.MovieCaptureBug   W  [AVProMovieCapture] 'OutputPath.RelativeToProject' is not supported on Android, defaulting to 'OutputPath.RelativeToPeristentData'
2023-03-03 16:02:00.260  5461-8848  Unity                   com.DefaultCompany.MovieCaptureBug   I  [AVProMovieCapture]: finalDirectory = /storage/emulated/0/Android/data/com.DefaultCompany.MovieCaptureBug/files/Captures
2023-03-03 16:02:00.289  5461-8848  Unity                   com.DefaultCompany.MovieCaptureBug   I  [AVProMovieCapture] Start File Capture: 320x240 @ 30.00fps [RGBA32] vcodec:'H264' to file: '/storage/emulated/0/Android/data/com.DefaultCompany.MovieCaptureBug/files/Captures/MovieCapture_2023-03-03_16-02-00_320x240.mp4'
2023-03-03 16:02:00.291  5461-8848  AVProMovieCapture       com.DefaultCompany.MovieCaptureBug   I  💬️ (PluginInterface.cpp:70) AVPMC_CreateRecorderVideo - 5.1.2-full
2023-03-03 16:02:00.291  5461-8848  AVProMovieCapture       com.DefaultCompany.MovieCaptureBug   I  💬️ (VideoRecorder.cpp:40) IVideoRecorder::newVideoRecorder - android api level is 30
2023-03-03 16:02:00.291  5461-8848  AVProMovieCapture       com.DefaultCompany.MovieCaptureBug   I  💬️ (VideoRecorder.cpp:47) IVideoRecorder::newVideoRecorder - creating video recorder for API 28
2023-03-03 16:02:00.293  5461-8848  AVProMovieCapture       com.DefaultCompany.MovieCaptureBug   I  💬️ (VideoRecorder.cpp:880) VideoRecorder::createMuxer - creating file at: /storage/emulated/0/Android/data/com.DefaultCompany.MovieCaptureBug/files/Captures/MovieCapture_2023-03-03_16-02-00_320x240.mp4
2023-03-03 16:02:00.294  5461-8848  AVProMovieCapture       com.DefaultCompany.MovieCaptureBug   I  💬️ Manager.GetFormatAdjustmentForEncode - media codec name: OMX.Exynos.AVC.Encoder
2023-03-03 16:02:00.294  5461-8848  AVProMovieCapture       com.DefaultCompany.MovieCaptureBug   I  💬️ Manager.GetFormatAdjustmentForEncode - supported bitrates: [1-40,000,000]
2023-03-03 16:02:00.295  5461-8848  AVProMovieCapture       com.DefaultCompany.MovieCaptureBug   I  💬️ Manager.GetFormatAdjustmentForEncode - supported widths: [32-1,920]
2023-03-03 16:02:00.295  5461-8848  AVProMovieCapture       com.DefaultCompany.MovieCaptureBug   I  💬️ Manager.GetFormatAdjustmentForEncode - supported heights: [32-1,088]
2023-03-03 16:02:00.295  5461-8848  AVProMovieCapture       com.DefaultCompany.MovieCaptureBug   I  💬️ Manager.GetFormatAdjustmentForEncode - width alignment: 2
2023-03-03 16:02:00.296  5461-8848  AVProMovieCapture       com.DefaultCompany.MovieCaptureBug   I  💬️ Manager.GetFormatAdjustmentForEncode - height alignment: 2
2023-03-03 16:02:00.393  5461-8848  AVProMovieCapture       com.DefaultCompany.MovieCaptureBug   I  💬️ Manager.GetVideoCodecImageCapabilities - Colour format is YUV8_420
2023-03-03 16:02:00.393  5461-8848  AVProMovieCapture       com.DefaultCompany.MovieCaptureBug   I  💬️ (VideoRecorder.cpp:306) VideoRecorder::createVideoCodec - Media format:
2023-03-03 16:02:00.393  5461-8848  AVProMovieCapture       com.DefaultCompany.MovieCaptureBug   I  💬️ (VideoRecorder.cpp:307) VideoRecorder::createVideoCodec   - MIME type:        video/avc
2023-03-03 16:02:00.393  5461-8848  AVProMovieCapture       com.DefaultCompany.MovieCaptureBug   I  💬️ (VideoRecorder.cpp:308) VideoRecorder::createVideoCodec   - Width:            320
2023-03-03 16:02:00.393  5461-8848  AVProMovieCapture       com.DefaultCompany.MovieCaptureBug   I  💬️ (VideoRecorder.cpp:309) VideoRecorder::createVideoCodec   - Height:           240
2023-03-03 16:02:00.393  5461-8848  AVProMovieCapture       com.DefaultCompany.MovieCaptureBug   I  💬️ (VideoRecorder.cpp:310) VideoRecorder::createVideoCodec   - Frame rate:       30.000000
2023-03-03 16:02:00.393  5461-8848  AVProMovieCapture       com.DefaultCompany.MovieCaptureBug   I  💬️ (VideoRecorder.cpp:311) VideoRecorder::createVideoCodec   - Bitrate:          1250000
2023-03-03 16:02:00.393  5461-8848  AVProMovieCapture       com.DefaultCompany.MovieCaptureBug   I  💬️ (VideoRecorder.cpp:312) VideoRecorder::createVideoCodec   - I-Frame interval: 1.000000
2023-03-03 16:02:00.393  5461-8848  AVProMovieCapture       com.DefaultCompany.MovieCaptureBug   I  💬️ (VideoRecorder.cpp:313) VideoRecorder::createVideoCodec   - Stride:           320
2023-03-03 16:02:00.393  5461-8848  AVProMovieCapture       com.DefaultCompany.MovieCaptureBug   I  💬️ (VideoRecorder.cpp:314) VideoRecorder::createVideoCodec   - Slice height:     240
2023-03-03 16:02:00.438  5461-8848  AVProMovieCapture       com.DefaultCompany.MovieCaptureBug   I  💬️ (VideoRecorderAPI28.cpp:228) VideoRecorderAPI28::createVideoCodecPostConfigure - codec name is: OMX.Exynos.AVC.Encoder
2023-03-03 16:02:00.487  5461-8848  AVProMovieCapture       com.DefaultCompany.MovieCaptureBug   I  💬️ (VideoRecorder.cpp:402) VideoRecorder::createVideoCodec - plane 0 row stride: 320
2023-03-03 16:02:00.487  5461-8848  AVProMovieCapture       com.DefaultCompany.MovieCaptureBug   I  💬️ (VideoRecorder.cpp:403) VideoRecorder::createVideoCodec - plane 1 row stride: 160
2023-03-03 16:02:00.487  5461-8848  AVProMovieCapture       com.DefaultCompany.MovieCaptureBug   I  💬️ (VideoRecorder.cpp:404) VideoRecorder::createVideoCodec - slice height:       240
2023-03-03 16:02:00.487  5461-8848  AVProMovieCapture       com.DefaultCompany.MovieCaptureBug   I  💬️ (VideoRecorder.cpp:405) VideoRecorder::createVideoCodec - pixel format:       YUV8_420
2023-03-03 16:02:00.487  5461-8848  AVProMovieCapture       com.DefaultCompany.MovieCaptureBug   I  💬️ (PluginState.cpp:71) PluginState::RegisterRecorder - Registered handle 51152
2023-03-03 16:02:00.487  5461-8848  AVProMovieCapture       com.DefaultCompany.MovieCaptureBug   I  💬️ (PluginInterface.cpp:211) AVPMC_CreateRecorderVideo: newRecorderHandle = 51152
2023-03-03 16:02:01.111  5461-9126  AVProMovieCapture       com.DefaultCompany.MovieCaptureBug   I  💬️ (VideoRecorder.cpp:493) VideoRecorder::videoCaptureThread - got input buffer of size: 115200
2023-03-03 16:02:05.958  5461-5461  ViewRootIm...rActivity] com.DefaultCompany.MovieCaptureBug   I  ViewPostIme pointer 0
2023-03-03 16:02:06.040  5461-5461  ViewRootIm...rActivity] com.DefaultCompany.MovieCaptureBug   I  ViewPostIme pointer 1
2023-03-03 16:02:06.166  5461-8848  Unity                   com.DefaultCompany.MovieCaptureBug   I  [AVProMovieCapture] Canceling capture 51152
2023-03-03 16:02:06.203  5461-8848  AVProMovieCapture       com.DefaultCompany.MovieCaptureBug   I  💬️ (PluginState.cpp:82) Deregistered handle 51152
2023-03-03 16:02:08.940  5461-5461  ViewRootIm...rActivity] com.DefaultCompany.MovieCaptureBug   I  ViewPostIme pointer 0
2023-03-03 16:02:09.073  5461-5461  ViewRootIm...rActivity] com.DefaultCompany.MovieCaptureBug   I  ViewPostIme pointer 1
2023-03-03 16:02:09.153  5461-8848  Unity                   com.DefaultCompany.MovieCaptureBug   W  [AVProMovieCapture] 'OutputPath.RelativeToProject' is not supported on Android, defaulting to 'OutputPath.RelativeToPeristentData'
2023-03-03 16:02:09.154  5461-8848  Unity                   com.DefaultCompany.MovieCaptureBug   I  [AVProMovieCapture]: finalDirectory = /storage/emulated/0/Android/data/com.DefaultCompany.MovieCaptureBug/files/Captures
2023-03-03 16:02:09.155  5461-8848  Unity                   com.DefaultCompany.MovieCaptureBug   I  [AVProMovieCapture] Start File Capture: 320x240 @ 30.00fps [RGBA32] vcodec:'H264' to file: '/storage/emulated/0/Android/data/com.DefaultCompany.MovieCaptureBug/files/Captures/MovieCapture_2023-03-03_16-02-09_320x240.mp4'
2023-03-03 16:02:09.156  5461-8848  AVProMovieCapture       com.DefaultCompany.MovieCaptureBug   I  💬️ (PluginInterface.cpp:70) AVPMC_CreateRecorderVideo - 5.1.2-full
2023-03-03 16:02:09.156  5461-8848  AVProMovieCapture       com.DefaultCompany.MovieCaptureBug   I  💬️ (VideoRecorder.cpp:40) IVideoRecorder::newVideoRecorder - android api level is 30
2023-03-03 16:02:09.156  5461-8848  AVProMovieCapture       com.DefaultCompany.MovieCaptureBug   I  💬️ (VideoRecorder.cpp:47) IVideoRecorder::newVideoRecorder - creating video recorder for API 28
2023-03-03 16:02:09.156  5461-8848  AVProMovieCapture       com.DefaultCompany.MovieCaptureBug   I  💬️ (VideoRecorder.cpp:880) VideoRecorder::createMuxer - creating file at: /storage/emulated/0/Android/data/com.DefaultCompany.MovieCaptureBug/files/Captures/MovieCapture_2023-03-03_16-02-09_320x240.mp4
2023-03-03 16:02:09.158  5461-8848  AVProMovieCapture       com.DefaultCompany.MovieCaptureBug   I  💬️ Manager.GetFormatAdjustmentForEncode - media codec name: OMX.Exynos.AVC.Encoder
2023-03-03 16:02:09.159  5461-8848  AVProMovieCapture       com.DefaultCompany.MovieCaptureBug   I  💬️ Manager.GetFormatAdjustmentForEncode - supported bitrates: [1-40,000,000]
2023-03-03 16:02:09.160  5461-8848  AVProMovieCapture       com.DefaultCompany.MovieCaptureBug   I  💬️ Manager.GetFormatAdjustmentForEncode - supported widths: [32-1,920]
2023-03-03 16:02:09.160  5461-8848  AVProMovieCapture       com.DefaultCompany.MovieCaptureBug   I  💬️ Manager.GetFormatAdjustmentForEncode - supported heights: [32-1,088]
2023-03-03 16:02:09.161  5461-8848  AVProMovieCapture       com.DefaultCompany.MovieCaptureBug   I  💬️ Manager.GetFormatAdjustmentForEncode - width alignment: 2
2023-03-03 16:02:09.162  5461-8848  AVProMovieCapture       com.DefaultCompany.MovieCaptureBug   I  💬️ Manager.GetFormatAdjustmentForEncode - height alignment: 2
2023-03-03 16:02:09.257  5461-8848  AVProMovieCapture       com.DefaultCompany.MovieCaptureBug   I  💬️ Manager.GetVideoCodecImageCapabilities - Colour format is YUV8_420
2023-03-03 16:02:09.257  5461-8848  AVProMovieCapture       com.DefaultCompany.MovieCaptureBug   I  💬️ (VideoRecorder.cpp:306) VideoRecorder::createVideoCodec - Media format:
2023-03-03 16:02:09.257  5461-8848  AVProMovieCapture       com.DefaultCompany.MovieCaptureBug   I  💬️ (VideoRecorder.cpp:307) VideoRecorder::createVideoCodec   - MIME type:        video/avc
2023-03-03 16:02:09.257  5461-8848  AVProMovieCapture       com.DefaultCompany.MovieCaptureBug   I  💬️ (VideoRecorder.cpp:308) VideoRecorder::createVideoCodec   - Width:            320
2023-03-03 16:02:09.257  5461-8848  AVProMovieCapture       com.DefaultCompany.MovieCaptureBug   I  💬️ (VideoRecorder.cpp:309) VideoRecorder::createVideoCodec   - Height:           240
2023-03-03 16:02:09.257  5461-8848  AVProMovieCapture       com.DefaultCompany.MovieCaptureBug   I  💬️ (VideoRecorder.cpp:310) VideoRecorder::createVideoCodec   - Frame rate:       30.000000
2023-03-03 16:02:09.257  5461-8848  AVProMovieCapture       com.DefaultCompany.MovieCaptureBug   I  💬️ (VideoRecorder.cpp:311) VideoRecorder::createVideoCodec   - Bitrate:          1250000
2023-03-03 16:02:09.257  5461-8848  AVProMovieCapture       com.DefaultCompany.MovieCaptureBug   I  💬️ (VideoRecorder.cpp:312) VideoRecorder::createVideoCodec   - I-Frame interval: 1.000000
2023-03-03 16:02:09.257  5461-8848  AVProMovieCapture       com.DefaultCompany.MovieCaptureBug   I  💬️ (VideoRecorder.cpp:313) VideoRecorder::createVideoCodec   - Stride:           320
2023-03-03 16:02:09.257  5461-8848  AVProMovieCapture       com.DefaultCompany.MovieCaptureBug   I  💬️ (VideoRecorder.cpp:314) VideoRecorder::createVideoCodec   - Slice height:     240
2023-03-03 16:02:09.305  5461-8848  AVProMovieCapture       com.DefaultCompany.MovieCaptureBug   I  💬️ (VideoRecorderAPI28.cpp:228) VideoRecorderAPI28::createVideoCodecPostConfigure - codec name is: OMX.Exynos.AVC.Encoder
2023-03-03 16:02:09.344  5461-8848  AVProMovieCapture       com.DefaultCompany.MovieCaptureBug   I  💬️ (VideoRecorder.cpp:402) VideoRecorder::createVideoCodec - plane 0 row stride: 320
2023-03-03 16:02:09.344  5461-8848  AVProMovieCapture       com.DefaultCompany.MovieCaptureBug   I  💬️ (VideoRecorder.cpp:403) VideoRecorder::createVideoCodec - plane 1 row stride: 160
2023-03-03 16:02:09.344  5461-8848  AVProMovieCapture       com.DefaultCompany.MovieCaptureBug   I  💬️ (VideoRecorder.cpp:404) VideoRecorder::createVideoCodec - slice height:       240
2023-03-03 16:02:09.344  5461-8848  AVProMovieCapture       com.DefaultCompany.MovieCaptureBug   I  💬️ (VideoRecorder.cpp:405) VideoRecorder::createVideoCodec - pixel format:       YUV8_420
2023-03-03 16:02:09.345  5461-8848  AVProMovieCapture       com.DefaultCompany.MovieCaptureBug   I  💬️ (PluginState.cpp:71) PluginState::RegisterRecorder - Registered handle 37248
2023-03-03 16:02:09.345  5461-8848  AVProMovieCapture       com.DefaultCompany.MovieCaptureBug   I  💬️ (PluginInterface.cpp:211) AVPMC_CreateRecorderVideo: newRecorderHandle = 37248
2023-03-03 16:02:09.802  5461-9266  AVProMovieCapture       com.DefaultCompany.MovieCaptureBug   I  💬️ (VideoRecorder.cpp:493) VideoRecorder::videoCaptureThread - got input buffer of size: 115200
2023-03-03 16:02:11.324  5461-5461  ViewRootIm...rActivity] com.DefaultCompany.MovieCaptureBug   I  ViewPostIme pointer 0
2023-03-03 16:02:11.423  5461-5461  ViewRootIm...rActivity] com.DefaultCompany.MovieCaptureBug   I  ViewPostIme pointer 1
2023-03-03 16:02:11.453  5461-8848  Unity                   com.DefaultCompany.MovieCaptureBug   I  [AVProMovieCapture] Canceling capture 37248
2023-03-03 16:02:11.485  5461-8848  AVProMovieCapture       com.DefaultCompany.MovieCaptureBug   I  💬️ (PluginState.cpp:82) Deregistered handle 37248

...

2023-03-03 16:03:00.373  5461-5461  ViewRootIm...rActivity] com.DefaultCompany.MovieCaptureBug   I  ViewPostIme pointer 0
2023-03-03 16:03:00.455  5461-5461  ViewRootIm...rActivity] com.DefaultCompany.MovieCaptureBug   I  ViewPostIme pointer 1
2023-03-03 16:03:00.516  5461-8848  Unity                   com.DefaultCompany.MovieCaptureBug   W  [AVProMovieCapture] 'OutputPath.RelativeToProject' is not supported on Android, defaulting to 'OutputPath.RelativeToPeristentData'
2023-03-03 16:03:00.519  5461-8848  Unity                   com.DefaultCompany.MovieCaptureBug   I  [AVProMovieCapture]: finalDirectory = /storage/emulated/0/Android/data/com.DefaultCompany.MovieCaptureBug/files/Captures
2023-03-03 16:03:00.523  5461-8848  Unity                   com.DefaultCompany.MovieCaptureBug   I  [AVProMovieCapture] Start File Capture: 320x240 @ 30.00fps [RGBA32] vcodec:'H264' to file: '/storage/emulated/0/Android/data/com.DefaultCompany.MovieCaptureBug/files/Captures/MovieCapture_2023-03-03_16-03-00_320x240.mp4'
2023-03-03 16:03:00.523  5461-8848  AVProMovieCapture       com.DefaultCompany.MovieCaptureBug   I  💬️ (PluginInterface.cpp:70) AVPMC_CreateRecorderVideo - 5.1.2-full
2023-03-03 16:03:00.523  5461-8848  AVProMovieCapture       com.DefaultCompany.MovieCaptureBug   I  💬️ (VideoRecorder.cpp:40) IVideoRecorder::newVideoRecorder - android api level is 30
2023-03-03 16:03:00.523  5461-8848  AVProMovieCapture       com.DefaultCompany.MovieCaptureBug   I  💬️ (VideoRecorder.cpp:47) IVideoRecorder::newVideoRecorder - creating video recorder for API 28
2023-03-03 16:03:00.523  5461-8848  AVProMovieCapture       com.DefaultCompany.MovieCaptureBug   I  💬️ (VideoRecorder.cpp:880) VideoRecorder::createMuxer - creating file at: /storage/emulated/0/Android/data/com.DefaultCompany.MovieCaptureBug/files/Captures/MovieCapture_2023-03-03_16-03-00_320x240.mp4
2023-03-03 16:03:00.524  5461-8848  AVProMovieCapture       com.DefaultCompany.MovieCaptureBug   I  💬️ Manager.GetFormatAdjustmentForEncode - media codec name: OMX.Exynos.AVC.Encoder
2023-03-03 16:03:00.525  5461-8848  AVProMovieCapture       com.DefaultCompany.MovieCaptureBug   I  💬️ Manager.GetFormatAdjustmentForEncode - supported bitrates: [1-40,000,000]
2023-03-03 16:03:00.525  5461-8848  AVProMovieCapture       com.DefaultCompany.MovieCaptureBug   I  💬️ Manager.GetFormatAdjustmentForEncode - supported widths: [32-1,920]
2023-03-03 16:03:00.526  5461-8848  AVProMovieCapture       com.DefaultCompany.MovieCaptureBug   I  💬️ Manager.GetFormatAdjustmentForEncode - supported heights: [32-1,088]
2023-03-03 16:03:00.526  5461-8848  AVProMovieCapture       com.DefaultCompany.MovieCaptureBug   I  💬️ Manager.GetFormatAdjustmentForEncode - width alignment: 2
2023-03-03 16:03:00.526  5461-8848  AVProMovieCapture       com.DefaultCompany.MovieCaptureBug   I  💬️ Manager.GetFormatAdjustmentForEncode - height alignment: 2
2023-03-03 16:03:00.566  5461-8848  AVProMovieCapture       com.DefaultCompany.MovieCaptureBug   E  ❌️ Manager.GetVideoCodecImageCapabilities - Failed to create media codec, error: android.media.MediaCodec$CodecException: Failed to initialize OMX.Exynos.AVC.Encoder, error 0xfffffff4
2023-03-03 16:03:00.566  5461-8848  AVProMovieCapture       com.DefaultCompany.MovieCaptureBug   I  💬️ (VideoRecorder.cpp:306) VideoRecorder::createVideoCodec - Media format:
2023-03-03 16:03:00.566  5461-8848  AVProMovieCapture       com.DefaultCompany.MovieCaptureBug   I  💬️ (VideoRecorder.cpp:307) VideoRecorder::createVideoCodec   - MIME type:        video/avc
2023-03-03 16:03:00.566  5461-8848  AVProMovieCapture       com.DefaultCompany.MovieCaptureBug   I  💬️ (VideoRecorder.cpp:308) VideoRecorder::createVideoCodec   - Width:            320
2023-03-03 16:03:00.566  5461-8848  AVProMovieCapture       com.DefaultCompany.MovieCaptureBug   I  💬️ (VideoRecorder.cpp:309) VideoRecorder::createVideoCodec   - Height:           240
2023-03-03 16:03:00.566  5461-8848  AVProMovieCapture       com.DefaultCompany.MovieCaptureBug   I  💬️ (VideoRecorder.cpp:310) VideoRecorder::createVideoCodec   - Frame rate:       30.000000
2023-03-03 16:03:00.566  5461-8848  AVProMovieCapture       com.DefaultCompany.MovieCaptureBug   I  💬️ (VideoRecorder.cpp:311) VideoRecorder::createVideoCodec   - Bitrate:          1250000
2023-03-03 16:03:00.566  5461-8848  AVProMovieCapture       com.DefaultCompany.MovieCaptureBug   I  💬️ (VideoRecorder.cpp:312) VideoRecorder::createVideoCodec   - I-Frame interval: 1.000000
2023-03-03 16:03:00.566  5461-8848  AVProMovieCapture       com.DefaultCompany.MovieCaptureBug   I  💬️ (VideoRecorder.cpp:313) VideoRecorder::createVideoCodec   - Stride:           320
2023-03-03 16:03:00.566  5461-8848  AVProMovieCapture       com.DefaultCompany.MovieCaptureBug   I  💬️ (VideoRecorder.cpp:314) VideoRecorder::createVideoCodec   - Slice height:     240
2023-03-03 16:03:00.610  5461-8848  AVProMovieCapture       com.DefaultCompany.MovieCaptureBug   I  ❌ (VideoRecorder.cpp:319) VideoRecorder::createVideoCodec - failed to create video codec
2023-03-03 16:03:00.611  5461-8848  Unity                   com.DefaultCompany.MovieCaptureBug   E  [AVProMovieCapture] Failed to create recorder

ResourceManagerService log
NOTE: Two resources are reserved in one capture, but only one is released at the end

2023-03-03 15:58:11.593  4150-24921 ResourceManagerService  mediaserver                          I  ResourceManagerService checkCodecCapacity pid 4483 clientId 2884280416 useExtended 0 
2023-03-03 15:58:11.593  4150-24921 ResourceManagerService  mediaserver                          I  checked remotedisplay:0,  wfdConnected: 0
2023-03-03 15:58:11.602  4150-24921 ResourceManagerService  mediaserver                          I  ResourceManagerService checkCodecCapacity pid 4483 clientId 2884280416 useExtended 0 
2023-03-03 15:58:11.602  4150-24921 ResourceManagerService  mediaserver                          I  checked remotedisplay:0,  wfdConnected: 0
2023-03-03 15:58:11.642  4150-24921 ResourceManagerService  mediaserver                          W  Ignoring request to add new resource entry with value <= 0
2023-03-03 15:58:11.643  4150-24921 ResourceManagerService  mediaserver                          I  addMediaInfo pid 4483, add 76800 (width 320 height 240) remained 4101120, lowPriority 0, allocated hw codec count, 1
2023-03-03 15:58:11.643  4150-24921 ResourceManagerService  mediaserver                          I  getMediaResourceInfo (PID : 4483, clientID : 2884280416, non-secure-codec/video-codec:[]:1, 320x240 (fps:30) - sw codec : no, encoder : yes)
2023-03-03 15:58:11.688  4150-24921 ResourceManagerService  mediaserver                          I  ResourceManagerService checkCodecCapacity pid 4483 clientId 2884282656 useExtended 0 
2023-03-03 15:58:11.688  4150-24921 ResourceManagerService  mediaserver                          I  checked remotedisplay:0,  wfdConnected: 0
2023-03-03 15:58:11.700  4150-24921 ResourceManagerService  mediaserver                          I  ResourceManagerService checkCodecCapacity pid 4483 clientId 2884282656 useExtended 0 
2023-03-03 15:58:11.700  4150-24921 ResourceManagerService  mediaserver                          I  checked remotedisplay:0,  wfdConnected: 0
2023-03-03 15:58:11.741  4150-24921 ResourceManagerService  mediaserver                          W  Ignoring request to add new resource entry with value <= 0
2023-03-03 15:58:11.741  4150-24921 ResourceManagerService  mediaserver                          I  addMediaInfo pid 4483, add 76800 (width 320 height 240) remained 4024320, lowPriority 0, allocated hw codec count, 2
2023-03-03 15:58:11.742  4150-24921 ResourceManagerService  mediaserver                          I  getMediaResourceInfo (PID : 4483, clientID : 2884280416, non-secure-codec/video-codec:[]:1, 320x240 (fps:30) - sw codec : no, encoder : yes)
2023-03-03 15:58:11.742  4150-24921 ResourceManagerService  mediaserver                          I  getMediaResourceInfo (PID : 4483, clientID : 2884282656, non-secure-codec/video-codec:[]:1, 320x240 (fps:30) - sw codec : no, encoder : yes)
2023-03-03 15:58:16.008  4150-5535  ResourceManagerService  mediaserver                          I  removeResourceInfo pid 4483, removed 76800 (width 320 height 240) remained 4101120, isLowPriority 0, remained hw codec count 1
2023-03-03 15:58:16.008  4150-5535  ResourceManagerService  mediaserver                          I  getMediaResourceInfo (PID : 4483, clientID : 2884280416, non-secure-codec/video-codec:[]:1, 320x240 (fps:30) - sw codec : no, encoder : yes)
2023-03-03 15:58:20.739  4150-5535  ResourceManagerService  mediaserver                          I  ResourceManagerService checkCodecCapacity pid 4483 clientId 2884282912 useExtended 0 
2023-03-03 15:58:20.739  4150-5535  ResourceManagerService  mediaserver                          I  checked remotedisplay:0,  wfdConnected: 0
2023-03-03 15:58:20.748  4150-5535  ResourceManagerService  mediaserver                          I  ResourceManagerService checkCodecCapacity pid 4483 clientId 2884282912 useExtended 0 
2023-03-03 15:58:20.748  4150-5535  ResourceManagerService  mediaserver                          I  checked remotedisplay:0,  wfdConnected: 0
2023-03-03 15:58:20.785  4150-5535  ResourceManagerService  mediaserver                          W  Ignoring request to add new resource entry with value <= 0
2023-03-03 15:58:20.785  4150-24921 ResourceManagerService  mediaserver                          I  addMediaInfo pid 4483, add 76800 (width 320 height 240) remained 4024320, lowPriority 0, allocated hw codec count, 2
2023-03-03 15:58:20.786  4150-24921 ResourceManagerService  mediaserver                          I  getMediaResourceInfo (PID : 4483, clientID : 2884280416, non-secure-codec/video-codec:[]:1, 320x240 (fps:30) - sw codec : no, encoder : yes)
2023-03-03 15:58:20.786  4150-24921 ResourceManagerService  mediaserver                          I  getMediaResourceInfo (PID : 4483, clientID : 2884282912, non-secure-codec/video-codec:[]:1, 320x240 (fps:30) - sw codec : no, encoder : yes)
2023-03-03 15:58:20.833  4150-5535  ResourceManagerService  mediaserver                          I  ResourceManagerService checkCodecCapacity pid 4483 clientId 2877592352 useExtended 0 
2023-03-03 15:58:20.833  4150-5535  ResourceManagerService  mediaserver                          I  checked remotedisplay:0,  wfdConnected: 0
2023-03-03 15:58:20.844  4150-5535  ResourceManagerService  mediaserver                          I  ResourceManagerService checkCodecCapacity pid 4483 clientId 2877592352 useExtended 0 
2023-03-03 15:58:20.844  4150-5535  ResourceManagerService  mediaserver                          I  checked remotedisplay:0,  wfdConnected: 0
2023-03-03 15:58:20.881  4150-5535  ResourceManagerService  mediaserver                          W  Ignoring request to add new resource entry with value <= 0
2023-03-03 15:58:20.882  4150-24921 ResourceManagerService  mediaserver                          I  addMediaInfo pid 4483, add 76800 (width 320 height 240) remained 3947520, lowPriority 0, allocated hw codec count, 3
2023-03-03 15:58:20.882  4150-24921 ResourceManagerService  mediaserver                          I  getMediaResourceInfo (PID : 4483, clientID : 2877592352, non-secure-codec/video-codec:[]:1, 320x240 (fps:30) - sw codec : no, encoder : yes)
2023-03-03 15:58:20.882  4150-24921 ResourceManagerService  mediaserver                          I  getMediaResourceInfo (PID : 4483, clientID : 2884280416, non-secure-codec/video-codec:[]:1, 320x240 (fps:30) - sw codec : no, encoder : yes)
2023-03-03 15:58:20.882  4150-24921 ResourceManagerService  mediaserver                          I  getMediaResourceInfo (PID : 4483, clientID : 2884282912, non-secure-codec/video-codec:[]:1, 320x240 (fps:30) - sw codec : no, encoder : yes)
2023-03-03 15:58:24.694  4150-24921 ResourceManagerService  mediaserver                          I  removeResourceInfo pid 4483, removed 76800 (width 320 height 240) remained 4024320, isLowPriority 0, remained hw codec count 2
2023-03-03 15:58:24.694  4150-24921 ResourceManagerService  mediaserver                          I  getMediaResourceInfo (PID : 4483, clientID : 2884280416, non-secure-codec/video-codec:[]:1, 320x240 (fps:30) - sw codec : no, encoder : yes)
2023-03-03 15:58:24.695  4150-24921 ResourceManagerService  mediaserver                          I  getMediaResourceInfo (PID : 4483, clientID : 2884282912, non-secure-codec/video-codec:[]:1, 320x240 (fps:30) - sw codec : no, encoder : yes)

...

Others

On Galaxy A21, when executing the following code, an exception is thrown at the time of creating the fourth encoder.

val videoFormat = MediaFormat.createVideoFormat("video/avc", 1560, 720).also {
    it.setFloat(MediaFormat.KEY_FRAME_RATE, 30.0f)
    it.setInteger(MediaFormat.KEY_BIT_RATE, 500000)
    it.setInteger(MediaFormat.KEY_COLOR_FORMAT, MediaCodecInfo.CodecCapabilities.COLOR_FormatYUV420Flexible)
    it.setFloat(MediaFormat.KEY_I_FRAME_INTERVAL, 1.0f)
}
for (i in 0..10) {
    Log.d("test", "create encoder" + (i+1))
    val videoEncoder = MediaCodec.createEncoderByType("video/avc")
    videoEncoder.configure(videoFormat, null, null, MediaCodec.CONFIGURE_FLAG_ENCODE)
    videoEncoder.start()
}
D/test: create encoder1
I/ACodec:  [] Now uninitialized
I/ACodec: [] onAllocateComponent
I/OMXClient: IOmx service obtained
I/ACodec: [OMX.Exynos.AVC.Encoder] Now Loaded
I/ACodec: app-pid(4779)
I/ACodec: [OMX.Exynos.AVC.Encoder] using color format 0x13 in place of 0x7f420888
I/ACodec: app-name : com.example.codeccreatesample
I/ACodec: Enable drop control
I/ACodec: setupAVCEncoderParameters with [profile: Baseline] [level: Level32]
I/ACodec: Enable Perceptual Video Coding
I/ACodec: Success set VideoMinQP(5/5/5) VideoMaxQP(50/50/50)
I/ACodec: reconfigEncoder4OtherApps
I/ACodec: [OMX.Exynos.AVC.Encoder] cannot encode HDR static metadata. Ignoring.
I/ACodec: setupVideoEncoder succeeded
I/ACodec: [OMX.Exynos.AVC.Encoder] configure, AMessage : AMessage(what = 'conf', target = 1) = {
      int32_t color-format = 2135033992
      float i-frame-interval = 1.000000
      string mime = "video/avc"
      int32_t width = 1560
      int32_t bitrate = 500000
      float frame-rate = 30.000000
      int32_t height = 720
      int32_t flags = 1
      int32_t encoder = 1
    }
I/ACodec: [OMX.Exynos.AVC.Encoder] Now Loaded->Idle
I/ACodec: [OMX.Exynos.AVC.Encoder] Now Idle->Executing
I/MediaCodec: setCodecState state : 0
I/ACodec: [OMX.Exynos.AVC.Encoder] Now Executing
D/test: create encoder2
I/ACodec:  [] Now uninitialized
I/ACodec: [] onAllocateComponent
I/OMXClient: IOmx service obtained
I/ACodec: [OMX.Exynos.AVC.Encoder] Now Loaded
I/ACodec: app-pid(4779)
I/ACodec: [OMX.Exynos.AVC.Encoder] using color format 0x13 in place of 0x7f420888
I/ACodec: app-name : com.example.codeccreatesample
I/ACodec: Enable drop control
I/ACodec: setupAVCEncoderParameters with [profile: Baseline] [level: Level32]
I/ACodec: Enable Perceptual Video Coding
I/ACodec: Success set VideoMinQP(5/5/5) VideoMaxQP(50/50/50)
I/ACodec: reconfigEncoder4OtherApps
I/ACodec: [OMX.Exynos.AVC.Encoder] cannot encode HDR static metadata. Ignoring.
I/ACodec: setupVideoEncoder succeeded
I/ACodec: [OMX.Exynos.AVC.Encoder] configure, AMessage : AMessage(what = 'conf', target = 4) = {
      int32_t color-format = 2135033992
      float i-frame-interval = 1.000000
      string mime = "video/avc"
      int32_t width = 1560
      int32_t bitrate = 500000
      float frame-rate = 30.000000
      int32_t height = 720
      int32_t flags = 1
      int32_t encoder = 1
    }
I/ACodec: [OMX.Exynos.AVC.Encoder] Now Loaded->Idle
I/MediaCodec: setCodecState state : 0
D/test: create encoder3
I/ACodec: [OMX.Exynos.AVC.Encoder] Now Idle->Executing
I/ACodec: [OMX.Exynos.AVC.Encoder] Now Executing
I/ACodec:  [] Now uninitialized
I/ACodec: [] onAllocateComponent
I/OMXClient: IOmx service obtained
I/ACodec: [OMX.Exynos.AVC.Encoder] Now Loaded
I/ACodec: app-pid(4779)
I/ACodec: [OMX.Exynos.AVC.Encoder] using color format 0x13 in place of 0x7f420888
I/ACodec: app-name : com.example.codeccreatesample
I/ACodec: Enable drop control
I/ACodec: setupAVCEncoderParameters with [profile: Baseline] [level: Level32]
I/ACodec: Enable Perceptual Video Coding
I/ACodec: Success set VideoMinQP(5/5/5) VideoMaxQP(50/50/50)
I/ACodec: reconfigEncoder4OtherApps
I/ACodec: [OMX.Exynos.AVC.Encoder] cannot encode HDR static metadata. Ignoring.
I/ACodec: setupVideoEncoder succeeded
I/ACodec: [OMX.Exynos.AVC.Encoder] configure, AMessage : AMessage(what = 'conf', target = 7) = {
      int32_t color-format = 2135033992
      float i-frame-interval = 1.000000
      string mime = "video/avc"
      int32_t width = 1560
      int32_t bitrate = 500000
      float frame-rate = 30.000000
      int32_t height = 720
      int32_t flags = 1
      int32_t encoder = 1
    }
I/ACodec: [OMX.Exynos.AVC.Encoder] Now Loaded->Idle
I/ACodec: [OMX.Exynos.AVC.Encoder] Now Idle->Executing
I/MediaCodec: setCodecState state : 0
D/test: create encoder4
I/ACodec: [OMX.Exynos.AVC.Encoder] Now Executing
I/ACodec:  [] Now uninitialized
I/ACodec: [] onAllocateComponent
I/OMXClient: IOmx service obtained
I/ACodec: [OMX.Exynos.AVC.Encoder] Now Loaded
I/MediaCodec: failed to configure codec bacause of codec capacity
E/MediaCodec: Codec reported err 0xffffec77, actionCode 0, while in state 3
E/MediaCodec: configure failed with err 0xffffec77, resetting...
I/ACodec:  [OMX.Exynos.AVC.Encoder] Now uninitialized
I/ACodec:  [] Now kWhatShutdownCompleted event : 8312
I/MediaCodec: Codec shutdown complete
I/ACodec:  [] Now uninitialized
I/ACodec: [] onAllocateComponent
I/OMXClient: IOmx service obtained
I/ACodec: [OMX.Exynos.AVC.Encoder] Now Loaded
D/AndroidRuntime: Shutting down VM
E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.codeccreatesample, PID: 4779
    android.media.MediaCodec$CodecException: Error 0xffffec77
        at android.media.MediaCodec.native_configure(Native Method)
        at android.media.MediaCodec.configure(MediaCodec.java:2127)
        at android.media.MediaCodec.configure(MediaCodec.java:2043)
        at com.example.codeccreatesample.MainActivity.onCreate$lambda$1(MainActivity.kt:51)
        at com.example.codeccreatesample.MainActivity.$r8$lambda$KzeL3UXKdhgbJUE4jGWZfZunxpc(Unknown Source:0)
        at com.example.codeccreatesample.MainActivity$$ExternalSyntheticLambda0.onClick(Unknown Source:0)
        at android.view.View.performClick(View.java:8160)
        at android.view.View.performClickInternal(View.java:8137)
        at android.view.View.access$3700(View.java:888)
        at android.view.View$PerformClick.run(View.java:30236)
        at android.os.Handler.handleCallback(Handler.java:938)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:246)
        at android.app.ActivityThread.main(ActivityThread.java:8653)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:602)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1130)
I/MediaCodec: setCodecState state : 0
I/MediaCodec: setCodecState state : 0
I/MediaCodec: setCodecState state : 0

Screenshots
If applicable, add screenshots to help explain your problem.

Videos
If applicable, add a copy of your video or the URL

Please DO NOT LINK / ATTACH YOUR PROJECT FILES HERE
Instead email the link to us unitysupport@renderheads.com

@MorrisRH MorrisRH added Bug 🐛 Something isn't working Android labels Mar 3, 2023
@MorrisRH MorrisRH modified the milestones: 0 - Next Release, 5.1.3 Mar 3, 2023
@MorrisRH MorrisRH self-assigned this Mar 3, 2023
@MorrisRH MorrisRH modified the milestones: 5.1.3, 0 - Next Release Mar 3, 2023
@MorrisRH MorrisRH added the fixed The issue has been fixed and will be available in the next release label Mar 3, 2023
@MorrisRH
Copy link
Collaborator

MorrisRH commented Mar 3, 2023

A fix for this will make it into the next release.

@Chris-RH Chris-RH modified the milestones: 0 - Next Release, 5.1.4 Mar 3, 2023
@Chris-RH
Copy link
Collaborator

Chris-RH commented Mar 3, 2023

The latest version has been released. Please let us know if it has not fixed the issue for you.

@kkmiy
Copy link
Author

kkmiy commented Mar 3, 2023

I confirmed bug fix.
Thanks for the quick fix! ❤️

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Android Bug 🐛 Something isn't working fixed The issue has been fixed and will be available in the next release
Projects
None yet
Development

No branches or pull requests

3 participants