PR #22363 opened by Steven Xiao (younengxiao)
URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/22363
Patch URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/22363.patch

Add documentation for the filter "deinterlace_d3d12" to the filters 
documentation.

This is the follow-up for commit 
https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/21778/commits

Signed-off-by: younengxiao <[email protected]>


>From 43cb33ecc417710d62146490491828a5ca317126 Mon Sep 17 00:00:00 2001
From: stevxiao <[email protected]>
Date: Tue, 3 Mar 2026 11:38:50 -0500
Subject: [PATCH] doc/filters: add entry for deinterlace_d3d12

wqAdd documentation for the filter "deinterlace_d3d12" to the filters 
documentation.

This is the follow-up for commit 
https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/21778/commits

Signed-off-by: younengxiao <[email protected]>
---
 doc/filters.texi | 92 ++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 92 insertions(+)

diff --git a/doc/filters.texi b/doc/filters.texi
index e49dd9ef0d..80107a71d4 100644
--- a/doc/filters.texi
+++ b/doc/filters.texi
@@ -11652,6 +11652,98 @@ Median
 Do not actually modify frame. Useful when one only wants metadata.
 @end table
 
+@section deinterlace_d3d12
+
+Deinterlace the input video using D3D12 hardware-accelerated video processing.
+
+This filter uses the DirectX 12 Video Processor to perform deinterlacing on
+GPU, supporting both simple bob and driver-defined advanced (motion-adaptive)
+algorithms. It requires the input to be in @code{d3d12} hardware pixel format.
+
+The filter automatically queries the hardware for the required number of
+temporal reference frames (if needed) and manages a frame queue to supply them.
+
+It accepts the following options:
+
+@table @option
+
+@item mode
+The deinterlacing mode. It accepts one of the following values:
+
+@table @samp
+@item default
+Select the best deinterlacing mode available on the hardware.
+If the driver supports @code{custom}, that mode is used; otherwise
+falls back to @code{bob}. This is the default.
+
+@item bob
+Bob deinterlacing. Each field is independently scaled to full
+frame height. Simple and fast, but may produce visible bob artifacts
+on moving content.
+
+@item custom
+Driver-defined advanced deinterlacing. The exact algorithm is
+hardware-specific and typically employs motion-adaptive techniques
+with temporal reference frames for higher quality.
+@end table
+
+The default value is @code{default}.
+
+@item rate
+Set the output frame rate. It accepts one of the following values:
+
+@table @samp
+@item frame
+Output one frame for each input frame (field-pair). The output frame
+rate equals the input frame rate.
+
+@item field
+Output one frame for each field. The output frame rate is double the
+input frame rate.
+@end table
+
+The default value is @code{frame}.
+
+@item auto
+If set to @code{1}, only deinterlace frames that are flagged as
+interlaced; progressive frames are passed through unchanged.
+If set to @code{0}, all frames are deinterlaced regardless of flags.
+
+The default value is @code{0}.
+@end table
+
+@subsection Examples
+
+@itemize
+
+@item
+Deinterlace an interlaced video using software decoding and the best
+available hardware deinterlacing mode:
+@example
+ffmpeg -init_hw_device d3d12va=d3d12 -filter_hw_device d3d12 -i input.ts \
+       -vf 
"format=nv12,hwupload,deinterlace_d3d12=mode=default,hwdownload,format=nv12" \
+       -c:v libx264 -crf 18 output.mp4
+@end example
+
+@item
+Deinterlace at field rate (double the frame rate) using bob mode with
+hardware decoding (full d3d12 pipeline):
+@example
+ffmpeg -hwaccel d3d12va -hwaccel_output_format d3d12 -i input.ts \
+       -vf "deinterlace_d3d12=mode=bob:rate=field" \
+       -c:v h264_d3d12va output.mp4
+@end example
+
+@item
+Deinterlace only interlaced frames, passing progressive frames through:
+@example
+ffmpeg -init_hw_device d3d12va=d3d12 -filter_hw_device d3d12 -i input.ts \
+       -vf 
"format=nv12,hwupload,deinterlace_d3d12=auto=1,hwdownload,format=nv12" \
+       -c:v libx264 -crf 18 output.mp4
+@end example
+
+@end itemize
+
 @section dejudder
 
 Remove judder produced by partially interlaced telecined content.
-- 
2.52.0

_______________________________________________
ffmpeg-devel mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to