[FFmpeg-devel] Help Needed - D3D11 Scaling Filter

Dash Santosh Sathyanarayanan dash.sathyanarayanan at multicorewareinc.com
Thu Jan 2 08:40:17 EET 2025


Any thoughts on this?

________________________________
From: Dash Santosh <dash.sathyanarayanan at multicorewareinc.com>
Sent: 30 December 2024 12:48
To: FFmpeg development discussions and patches <ffmpeg-devel at ffmpeg.org>
Cc: Santhoshini Sekar <santhoshini at multicorewareinc.com>; Sachin Prakash Kumar <sachin.prakash at multicorewareinc.com>
Subject: Help Needed - D3D11 Scaling Filter

Hi,

I'm trying to implement a scaling filter (vf_scale_d3d11) using the VideoProcessBlt D3D11 DDI, and also add PIX_FMT_D3D11 support for the MediaFoundation Encoder (mfenc).

Initially, there were a lot of "Static surface pool size exceeded".
```
decode_receive_frame_internal failed = Invalid data found when processing input
Static surface pool size exceeded
get_buffer() failed
thread_get_buffer() failed
decode_slice_headec error
no frame!
```

This got fixed by incrementing initial_pool_size by 3. Now the following two flows works as expected:
    1) ./ffmpeg.exe -hwaccel d3d11va -hwaccel_output_format d3d11 -hide_banner -i bbb_sunflower_2160p_30fps_normal.mp4 -hw_encoding 1 -c:v h264_mf -vframes 100 -loglevel verbose sample.mp4 -y
    2) ./ffmpeg.exe -hwaccel d3d11va -hwaccel_output_format d3d11 -hide_banner -i bbb_sunflower_2160p_30fps_normal.mp4 -hw_encoding 1 -c:v h264_mf -vf "scale_d3d11=width=1920:height=1080" -vframes 100 -loglevel verbose sample.mp4 -y

When I try to call av_hwframe_transfer_data() within the `if(encoder_requires_software_frame)` block for the following flow, "Static surface pool size exceeded" occurs once again.
    3) ./ffmpeg.exe -hwaccel d3d11va -hwaccel_output_format d3d11 -hide_banner -i bbb_sunflower_2160p_30fps_normal.mp4 -c:v rawvideo -vframes 10 -loglevel verbose sample.yuv -y

Increasing the pool_size to any higher value doesn't seem to resolve this issue. The same error can be observed when the changes are integrated in HandBrake application, even for use cases (1) and (2). Any insights on why this would occur and how to fix this would be appreciated. Attaching the patch FYI.

Thanks,
Dash

--
[https://ci3.googleusercontent.com/mail-sig/AIorK4xJVw2ouL-7kSIsC53GaQNdgsrl9bgcOifC08GwaQJPu1JnKnqfZTU30s7zxLJ1jTg-UY85QJ4KXpg5]<https://multicorewareinc.com/>
 [https://ci3.googleusercontent.com/mail-sig/AIorK4ypKpdFAdtD5ghJ8ZhhSvThTPpbqhR7s_V5Wtz3SVRR9MQSPtYqiB4r6Q8gFg0JBX8_pEAxYqx8IcDP] <https://www.linkedin.com/company/multicoreware-inc/>   [https://ci3.googleusercontent.com/mail-sig/AIorK4ywduRorDK_UGiphRmWW7yAHbFQFYtBNfKTy3tMcr7MVSt1kfuKUkrOUHYuQU7m3aFao_fcyhp3tUxR] <https://twitter.com/MulticoreWare>   [https://ci3.googleusercontent.com/mail-sig/AIorK4wzBbm2U0HqcrA18mfNe5ZYnu_7R21iHbKJK9fpG2-E0XGI-2tYbO8d32UMcqxJWCQTCt8_6e83HoMT] <https://www.facebook.com/multicoreware>   [https://ci3.googleusercontent.com/mail-sig/AIorK4zux15kq6I5m66gDXz7UhzTaY8c72DXs-Vr3A6tehpEWsj_U7hcRzDAgzHHNql5Rj8jR62YBJLuOFYu] <https://www.youtube.com/channel/UCXZ1A1MzS5JwBqwBkNfsBBw?sub_confirmation=1>   [https://ci3.googleusercontent.com/mail-sig/AIorK4xCleID9p5NJ9j5vsPEQFpunbcFVzF_hieeJvA1HjLt5HLx6z9CT___VxTzWCrPzMXiojTcwionPe8F] <https://www.instagram.com/multicoreware.inc/>


Dash Santosh

Research Engineer, Video Engineering

Mobile: +91 78679 43737

IndiQube Echo Point, Avinashi Road

Coimbatore - 641 014


[https://ci3.googleusercontent.com/mail-sig/AIorK4yP_T0tZnWYAbKHbRi0Pt8l8koPJBmOijhmBRMYVotNrmftxEnTmN93Ac-sC2XTKbHwXR-SV97SisS9]


More information about the ffmpeg-devel mailing list