This is an automated email from the git hooks/post-receive script.

Git pushed a commit to branch master
in repository ffmpeg.

commit f736784a52eeab4bdf7a8c2ed645a4b8e27dfeca
Author:     Julius Bairaktaris <[email protected]>
AuthorDate: Sun Aug 30 15:30:45 2026 +0200
Commit:     ArazIusubov <[email protected]>
CommitDate: Wed Sep 16 22:05:28 2026 +0000

    avfilter/amf: make the input format lists describe what AMF accepts
    
    amf_setup_input_output_formats() builds both negotiated lists from
    output_pix_fmts and ignores its input_pix_fmts argument, so the input
    lists have never been used and have drifted from what the filters handle.
    
    None of them lists AV_PIX_FMT_D3D11 or AV_PIX_FMT_DXVA2_VLD even though
    amf_avframe_to_amfsurface() wraps both. sr_amf and vpp_amf carry the two
    in their output lists, so they accept such input today only because the
    input list is dead; vqe_amf and frc_amf carry them nowhere and gain the
    input here. vpp_amf meanwhile lists three formats AMF will not take:
    YUV420P10 and 0RGB have no format_map[] entry at all, and the video
    converter rejects GRAY8 with AMF_NOT_SUPPORTED. Those three only appear
    to work today because the dead input list leaves libavfilter converting
    them in software first.
    
    vpp_amf also loses BGR0, RGB0 and YUYV422. The converter takes them as
    input, but with the default format=same the output frames context is
    created in the input format, and hwcontext_amf cannot back an AMF frames
    context with RGB0 or YUYV422, nor download BGR0. Once the list is live,
    each of the three would fail at configuration or at hwdownload where
    libavfilter converts it in software today, so they stay out until
    hwcontext_amf supports them.
    
    Correct the lists in both directions so they describe reality before the
    helper is made to use them. No functional change on its own.
    
    Assisted-by: Claude Opus 5
    Assisted-by: Claude Fable 5.1
    Signed-off-by: Julius Bairaktaris <[email protected]>
---
 libavfilter/vf_frc_amf.c | 2 ++
 libavfilter/vf_sr_amf.c  | 4 ++++
 libavfilter/vf_vpp_amf.c | 8 ++------
 libavfilter/vf_vqe_amf.c | 2 ++
 4 files changed, 10 insertions(+), 6 deletions(-)

diff --git a/libavfilter/vf_frc_amf.c b/libavfilter/vf_frc_amf.c
index 1b914908a0..5b93f65ad1 100644
--- a/libavfilter/vf_frc_amf.c
+++ b/libavfilter/vf_frc_amf.c
@@ -70,6 +70,8 @@ static int amf_filter_query_formats(AVFilterContext *avctx)
     const enum AVPixelFormat *output_pix_fmts;
     static const enum AVPixelFormat input_pix_fmts[] = {
         AV_PIX_FMT_AMF_SURFACE,
+        AV_PIX_FMT_D3D11,
+        AV_PIX_FMT_DXVA2_VLD,
         AV_PIX_FMT_NV12,
         AV_PIX_FMT_P010,
         AV_PIX_FMT_BGRA,
diff --git a/libavfilter/vf_sr_amf.c b/libavfilter/vf_sr_amf.c
index deb020809d..d9ed1dcd8a 100644
--- a/libavfilter/vf_sr_amf.c
+++ b/libavfilter/vf_sr_amf.c
@@ -84,6 +84,8 @@ static int amf_filter_query_formats(AVFilterContext *avctx)
         AV_PIX_FMT_BGRA,
         AV_PIX_FMT_RGBA,
         AV_PIX_FMT_AMF_SURFACE,
+        AV_PIX_FMT_D3D11,
+        AV_PIX_FMT_DXVA2_VLD,
         AV_PIX_FMT_RGBAF16,
         AV_PIX_FMT_NONE,
     };
@@ -105,6 +107,8 @@ static int amf_filter_query_formats(AVFilterContext *avctx)
         AV_PIX_FMT_X2BGR10,
         AV_PIX_FMT_RGBAF16,
         AV_PIX_FMT_AMF_SURFACE,
+        AV_PIX_FMT_D3D11,
+        AV_PIX_FMT_DXVA2_VLD,
         AV_PIX_FMT_NONE,
     };
 
diff --git a/libavfilter/vf_vpp_amf.c b/libavfilter/vf_vpp_amf.c
index 839a075ea7..9ccc667a94 100644
--- a/libavfilter/vf_vpp_amf.c
+++ b/libavfilter/vf_vpp_amf.c
@@ -49,17 +49,13 @@ static int amf_filter_query_formats(AVFilterContext *avctx)
     const enum AVPixelFormat *output_pix_fmts;
     static const enum AVPixelFormat input_pix_fmts[] = {
         AV_PIX_FMT_AMF_SURFACE,
+        AV_PIX_FMT_D3D11,
+        AV_PIX_FMT_DXVA2_VLD,
         AV_PIX_FMT_NV12,
         AV_PIX_FMT_P010,
-        AV_PIX_FMT_0RGB,
-        AV_PIX_FMT_BGR0,
         AV_PIX_FMT_BGRA,
-        AV_PIX_FMT_RGB0,
         AV_PIX_FMT_RGBA,
-        AV_PIX_FMT_GRAY8,
         AV_PIX_FMT_YUV420P,
-        AV_PIX_FMT_YUV420P10,
-        AV_PIX_FMT_YUYV422,
         AV_PIX_FMT_NONE,
     };
     static const enum AVPixelFormat output_pix_fmts_default[] = {
diff --git a/libavfilter/vf_vqe_amf.c b/libavfilter/vf_vqe_amf.c
index 70b533e475..d53703ee58 100644
--- a/libavfilter/vf_vqe_amf.c
+++ b/libavfilter/vf_vqe_amf.c
@@ -63,6 +63,8 @@ static int amf_filter_query_formats(AVFilterContext *avctx)
     const enum AVPixelFormat *output_pix_fmts;
     static const enum AVPixelFormat input_pix_fmts[] = {
         AV_PIX_FMT_AMF_SURFACE,
+        AV_PIX_FMT_D3D11,
+        AV_PIX_FMT_DXVA2_VLD,
         AV_PIX_FMT_NV12,
         AV_PIX_FMT_P010,
         AV_PIX_FMT_BGRA,

-- 
To stop receiving notification emails like this one, please contact
[email protected].
_______________________________________________
ffmpeg-cvslog mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to