try fix FFmpeg amf encode hang (#10283)

* Possible Causes
  * GPU API Call Hangs: This could occur, though it's less likely.
  * Infinite Loop: If `QueryOutput` always fails and `hwsurfaces_in_queue_max` is zero, the loop will continue indefinitely.
* Proposed Solution
  * A query_timeout patch has been added to FFmpeg with a value of 1000ms, which exceeds the time required to encode a single frame. This allows us to remove the loop.
* Test
  * After removing the loop, no frame encoding failures were encountered during testing. A single call to QueryOutput is sufficient, as it typically consumes about 12ms on a 2K screen.

Signed-off-by: 21pages <sunboeasy@gmail.com>
This commit is contained in:
21pages
2024-12-16 19:40:48 +08:00
committed by GitHub
parent d025ca1d81
commit acae6d6558
2 changed files with 27 additions and 0 deletions

View File

@@ -23,6 +23,7 @@ vcpkg_from_github(
patch/0005-mediacodec-changing-bitrate.patch
patch/0006-dlopen-libva.patch
patch/0007-fix-linux-configure.patch
patch/0008-remove-amf-loop-query.patch
)
if(SOURCE_PATH MATCHES " ")