[Bug]: Using frame rate conversion causes problems on Xe/Arc GPUs
- Dominant language
- C++
- Stars
- 157
- Forks
- 104
- PR merge metrics
- No merged PRs in 30d
Description
### Which component impacted?
Video Processing
### Is it regression? Good in old configuration?
Yes, it's good in old version
### What happened?
Enabling the filter causes memory allocation errors. The problem is reproduced only on Xe/Arc GPUs, on older GPUs everything functions without failures. Usually, from several tens of minutes to several hours pass before the crash. Tested on ffmpeg versions 6.1 and 7.1. In case of 6.1, the process terminates with the error:
```
[Parsed_vpp_qsv_0 @ 0x56aeb8ce9040] Can't allocate a surface
[Parsed_vpp_qsv_0 @ 0x56aeb8ce9040] Failed to query an output frame
[fc#0 @ 0x56aeb82034c0] Error while filtering: Cannot allocate memory
```
In case of using version 7.1, the process starts to allocate memory very quickly, after which it is killed by OOM Killer.
```
ffmpeg \
-hide_banner -y -hwaccel qsv -hwaccel_output_format qsv -qsv_device /dev/dri/card1 -copyts \
-i \
-filter_complex "[v:0]vpp_qsv=deinterlace=1:framerate=25,split=2[v1][v2]; [v1]scale_qsv=w=-1:h=720[v1out]; [v2]scale_qsv=w=-1:h=480[v2out]" \
-map [v1out] -c:v:0 h264_qsv -profile:v:0 main -level:v:0 4 -b:v:0 2000k -maxrate:v:0 2000k -g:v:0 100 -keyint_min:v:0 100 -flags:v:0 +cgop -refs:v:0 1 -bf:v:0 0 -preset:v:0 faster \
-map [v2out] -c:v:1 h264_qsv -profile:v:1 main -level:v:1 4 -b:v:1 1000k -maxrate:v:1 1000k -g:v:1 100 -keyint_min:v:1 100 -flags:v:1 +cgop -refs:v:1 1 -bf:v:1 0 -preset:v:1 faster \
-map a:0 -c:a:0 aac -b:a:0 64k -pes_payload_size 0 \
-f mpegts "udp://239.0.0.1:8998?localaddr=127.0.0.1&pkt_size=1316"
```
### What's the usage scenario when you are seeing the problem?
Transcode for media delivery
### What impacted?
_No response_
### Debug Information
_No response_
### Do you want to contribute a patch to fix the issue?
None
Contributor guide
Assessment
This issue has not been assessed yet.