[FFmpeg-cvslog] avfilter/vsrc_ddagrab: dynamically load SetThreadDpiAwarenessContext

2022-07-18 Thread Timo Rothenpieler
ffmpeg | branch: master | Timo Rothenpieler  | Tue Jul 
19 00:51:18 2022 +0200| [61c151a09892d7f70c51c18110a1edf8796d7568] | committer: 
Timo Rothenpieler

avfilter/vsrc_ddagrab: dynamically load SetThreadDpiAwarenessContext

It's a Windows 10 only function, and its presence alone prevents the
binary from loading on older Windows versions.

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=61c151a09892d7f70c51c18110a1edf8796d7568
---

 configure  |  2 --
 libavfilter/vsrc_ddagrab.c | 41 +
 2 files changed, 33 insertions(+), 10 deletions(-)

diff --git a/configure b/configure
index 18d9b61a99..91444cdc53 100755
--- a/configure
+++ b/configure
@@ -2309,7 +2309,6 @@ SYSTEM_FUNCS="
 SetDllDirectory
 setmode
 setrlimit
-SetThreadDpiAwarenessContext
 Sleep
 strerror_r
 sysconf
@@ -6401,7 +6400,6 @@ check_type "windows.h d3d11.h" "ID3D11VideoDecoder"
 check_type "windows.h d3d11.h" "ID3D11VideoContext"
 check_type "d3d9.h dxva2api.h" DXVA2_ConfigPictureDecode -D_WIN32_WINNT=0x0602
 check_func_headers mfapi.h MFCreateAlignedMemoryBuffer -lmfplat
-check_func_headers windows.h SetThreadDpiAwarenessContext -D_WIN32_WINNT=0x0A00
 
 check_type "vdpau/vdpau.h" "VdpPictureInfoHEVC"
 check_type "vdpau/vdpau.h" "VdpPictureInfoVP9"
diff --git a/libavfilter/vsrc_ddagrab.c b/libavfilter/vsrc_ddagrab.c
index 4a90ad7a02..5668eda051 100644
--- a/libavfilter/vsrc_ddagrab.c
+++ b/libavfilter/vsrc_ddagrab.c
@@ -18,9 +18,9 @@
 
 #include "config.h"
 
-#if !defined(_WIN32_WINNT) || _WIN32_WINNT < 0x0A00
+#if !defined(_WIN32_WINNT) || _WIN32_WINNT < 0x0602
 #undef _WIN32_WINNT
-#define _WIN32_WINNT 0x0A00
+#define _WIN32_WINNT 0x0602
 #endif
 #define WIN32_LEAN_AND_MEAN
 
@@ -41,6 +41,7 @@
 #include "libavutil/avassert.h"
 #include "libavutil/hwcontext.h"
 #include "libavutil/hwcontext_d3d11va.h"
+#include "compat/w32dlfcn.h"
 #include "avfilter.h"
 #include "internal.h"
 #include "formats.h"
@@ -150,8 +151,12 @@ static av_cold int init_dxgi_dda(AVFilterContext *avctx)
 IDXGIAdapter *dxgi_adapter = NULL;
 IDXGIOutput *dxgi_output = NULL;
 IDXGIOutput1 *dxgi_output1 = NULL;
-#if HAVE_IDXGIOUTPUT5 && HAVE_SETTHREADDPIAWARENESSCONTEXT
+#if HAVE_IDXGIOUTPUT5
 IDXGIOutput5 *dxgi_output5 = NULL;
+
+typedef DPI_AWARENESS_CONTEXT (*set_thread_dpi_t)(DPI_AWARENESS_CONTEXT);
+set_thread_dpi_t set_thread_dpi;
+HMODULE user32_module;
 #endif
 int w, h;
 HRESULT hr;
@@ -185,9 +190,19 @@ static av_cold int init_dxgi_dda(AVFilterContext *avctx)
 return AVERROR_EXTERNAL;
 }
 
-#if HAVE_IDXGIOUTPUT5 && HAVE_SETTHREADDPIAWARENESSCONTEXT
-hr = IDXGIOutput_QueryInterface(dxgi_output, &IID_IDXGIOutput5, 
(void**)&dxgi_output5);
-if (SUCCEEDED(hr)) {
+#if HAVE_IDXGIOUTPUT5
+user32_module = dlopen("user32.dll", 0);
+if (!user32_module) {
+av_log(avctx, AV_LOG_ERROR, "Failed loading user32.dll\n");
+return AVERROR_EXTERNAL;
+}
+
+set_thread_dpi = (set_thread_dpi_t)dlsym(user32_module, 
"SetThreadDpiAwarenessContext");
+
+if (set_thread_dpi)
+hr = IDXGIOutput_QueryInterface(dxgi_output, &IID_IDXGIOutput5, 
(void**)&dxgi_output5);
+
+if (set_thread_dpi && SUCCEEDED(hr)) {
 DPI_AWARENESS_CONTEXT prev_dpi_ctx;
 DXGI_FORMAT formats[] = {
 DXGI_FORMAT_R10G10B10A2_UNORM,
@@ -197,7 +212,7 @@ static av_cold int init_dxgi_dda(AVFilterContext *avctx)
 IDXGIOutput_Release(dxgi_output);
 dxgi_output = NULL;
 
-prev_dpi_ctx = 
SetThreadDpiAwarenessContext(DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE_V2);
+prev_dpi_ctx = 
set_thread_dpi(DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE_V2);
 if (!prev_dpi_ctx)
 av_log(avctx, AV_LOG_WARNING, "Failed enabling DPI awareness for 
DDA\n");
 
@@ -211,8 +226,18 @@ static av_cold int init_dxgi_dda(AVFilterContext *avctx)
 dxgi_output5 = NULL;
 
 if (prev_dpi_ctx)
-SetThreadDpiAwarenessContext(prev_dpi_ctx);
+set_thread_dpi(prev_dpi_ctx);
+
+dlclose(user32_module);
+user32_module = NULL;
+set_thread_dpi = NULL;
+
+av_log(avctx, AV_LOG_DEBUG, "Using IDXGIOutput5 interface\n");
 } else {
+dlclose(user32_module);
+user32_module = NULL;
+set_thread_dpi = NULL;
+
 av_log(avctx, AV_LOG_DEBUG, "Falling back to IDXGIOutput1\n");
 #else
 {

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog

To unsubscribe, visit link above, or email
ffmpeg-cvslog-requ...@ffmpeg.org with subject "unsubscribe".


[FFmpeg-cvslog] avcodec/wrapped_avframe: Don't presume AVPacket to be writable

2022-07-18 Thread Andreas Rheinhardt
ffmpeg | branch: master | Andreas Rheinhardt  | 
Mon Jul 18 19:26:58 2022 +0200| [d72a671c601ae1c7969ab17e2f931b6807add3b9] | 
committer: Andreas Rheinhardt

avcodec/wrapped_avframe: Don't presume AVPacket to be writable

It need not be writable; in fact, it is often not writable even if
the packet sent to the decoder was writable, because the generic code
calls av_packet_ref() on it. It is never writable if a user
drains the decoder after every packet, because in this case the decode
callback is called from avcodec_send_packet().

Signed-off-by: Andreas Rheinhardt 

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=d72a671c601ae1c7969ab17e2f931b6807add3b9
---

 libavcodec/wrapped_avframe.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/libavcodec/wrapped_avframe.c b/libavcodec/wrapped_avframe.c
index 3d2137ccbf..def29a9060 100644
--- a/libavcodec/wrapped_avframe.c
+++ b/libavcodec/wrapped_avframe.c
@@ -92,7 +92,9 @@ static int wrapped_avframe_decode(AVCodecContext *avctx, 
AVFrame *out,
 
 in  = (AVFrame*)pkt->data;
 
-av_frame_move_ref(out, in);
+err = av_frame_ref(out, in);
+if (err < 0)
+return err;
 
 err = ff_decode_frame_props(avctx, out);
 if (err < 0)

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog

To unsubscribe, visit link above, or email
ffmpeg-cvslog-requ...@ffmpeg.org with subject "unsubscribe".


[FFmpeg-cvslog] avcodec/wrapped_avframe: Don't leak frame metadata, side-data

2022-07-18 Thread Andreas Rheinhardt
ffmpeg | branch: master | Andreas Rheinhardt  | 
Mon Jul 18 18:48:15 2022 +0200| [425b309fa43236f4b7c098c7829b70a421fc1dd7] | 
committer: Andreas Rheinhardt

avcodec/wrapped_avframe: Don't leak frame metadata, side-data

wrapped_avframe_decode() uses an AVFrame as dst in av_frame_move_ref()
after having called ff_decode_frame_props() to attach side-date
to this very frame. This leaks all the side-data and metadata
that ff_decode_frame_props() has attached.

This happens in various fate-filter-metadata tests since
6ca43a9675d651d7ea47c7ba2fafb1bf831c4d0b.

These particular leaks (which affect metadata-only)
could be fixed by not adding metadata side-data to AVPackets
in libavdevice if they are also available from the AVFrames.
Yet this would break users that extract the metadata from
AVPackets.

The changes to FATE happen because of the way av_dict_set()
works when it overwrites an already existing entry:
It overwrites the entry to be overwritten with the last entry
and adds the new entry at the end. The end result is that
the first entry of the dict is the second-to-last-entry of
the original dict, the last entry of the dict is the last
entry of the old dict and the first count - 2 entries
of the original dict are at positions 1..count - 2 in their
original order.

Reviewed-by: Timo Rothenpieler 
Signed-off-by: Andreas Rheinhardt 

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=425b309fa43236f4b7c098c7829b70a421fc1dd7
---

 libavcodec/wrapped_avframe.c   |  4 +-
 tests/ref/fate/filter-metadata-cropdetect  | 60 +++---
 tests/ref/fate/filter-metadata-freezedetect|  4 +-
 tests/ref/fate/filter-metadata-scdet   | 22 
 tests/ref/fate/filter-metadata-signalstats-yuv420p |  2 +-
 .../ref/fate/filter-metadata-signalstats-yuv420p10 |  2 +-
 6 files changed, 47 insertions(+), 47 deletions(-)

diff --git a/libavcodec/wrapped_avframe.c b/libavcodec/wrapped_avframe.c
index 4e4fd06816..3d2137ccbf 100644
--- a/libavcodec/wrapped_avframe.c
+++ b/libavcodec/wrapped_avframe.c
@@ -92,12 +92,12 @@ static int wrapped_avframe_decode(AVCodecContext *avctx, 
AVFrame *out,
 
 in  = (AVFrame*)pkt->data;
 
+av_frame_move_ref(out, in);
+
 err = ff_decode_frame_props(avctx, out);
 if (err < 0)
 return err;
 
-av_frame_move_ref(out, in);
-
 *got_frame = 1;
 return 0;
 }
diff --git a/tests/ref/fate/filter-metadata-cropdetect 
b/tests/ref/fate/filter-metadata-cropdetect
index 104acdd77f..f3e1865abd 100644
--- a/tests/ref/fate/filter-metadata-cropdetect
+++ b/tests/ref/fate/filter-metadata-cropdetect
@@ -1,33 +1,33 @@
 pts=0|
 
 pts=400
-pts=800|tag:lavfi.cropdetect.x1=0|tag:lavfi.cropdetect.x2=719|tag:lavfi.cropdetect.y1=61|tag:lavfi.cropdetect.y2=424|tag:lavfi.cropdetect.w=720|tag:lavfi.cropdetect.h=352|tag:lavfi.cropdetect.x=0|tag:lavfi.cropdetect.y=68
-pts=1200|tag:lavfi.cropdetect.x1=0|tag:lavfi.cropdetect.x2=719|tag:lavfi.cropdetect.y1=61|tag:lavfi.cropdetect.y2=424|tag:lavfi.cropdetect.w=720|tag:lavfi.cropdetect.h=352|tag:lavfi.cropdetect.x=0|tag:lavfi.cropdetect.y=68
-pts=1600|tag:lavfi.cropdetect.x1=0|tag:lavfi.cropdetect.x2=719|tag:lavfi.cropdetect.y1=61|tag:lavfi.cropdetect.y2=424|tag:lavfi.cropdetect.w=720|tag:lavfi.cropdetect.h=352|tag:lavfi.cropdetect.x=0|tag:lavfi.cropdetect.y=68
-pts=2000|tag:lavfi.cropdetect.x1=0|tag:lavfi.cropdetect.x2=719|tag:lavfi.cropdetect.y1=61|tag:lavfi.cropdetect.y2=424|tag:lavfi.cropdetect.w=720|tag:lavfi.cropdetect.h=352|tag:lavfi.cropdetect.x=0|tag:lavfi.cropdetect.y=68
-pts=2400|tag:lavfi.cropdetect.x1=0|tag:lavfi.cropdetect.x2=719|tag:lavfi.cropdetect.y1=61|tag:lavfi.cropdetect.y2=424|tag:lavfi.cropdetect.w=720|tag:lavfi.cropdetect.h=352|tag:lavfi.cropdetect.x=0|tag:lavfi.cropdetect.y=68
-pts=2800|tag:lavfi.cropdetect.x1=0|tag:lavfi.cropdetect.x2=719|tag:lavfi.cropdetect.y1=61|tag:lavfi.cropdetect.y2=424|tag:lavfi.cropdetect.w=720|tag:lavfi.cropdetect.h=352|tag:lavfi.cropdetect.x=0|tag:lavfi.cropdetect.y=68
-pts=3200|tag:lavfi.cropdetect.x1=0|tag:lavfi.cropdetect.x2=719|tag:lavfi.cropdetect.y1=61|tag:lavfi.cropdetect.y2=424|tag:lavfi.cropdetect.w=720|tag:lavfi.cropdetect.h=352|tag:lavfi.cropdetect.x=0|tag:lavfi.cropdetect.y=68
-pts=3600|tag:lavfi.cropdetect.x1=0|tag:lavfi.cropdetect.x2=719|tag:lavfi.cropdetect.y1=61|tag:lavfi.cropdetect.y2=424|tag:lavfi.cropdetect.w=720|tag:lavfi.cropdetect.h=352|tag:lavfi.cropdetect.x=0|tag:lavfi.cropdetect.y=68
-pts=4000|tag:lavfi.cropdetect.x1=0|tag:lavfi.cropdetect.x2=719|tag:lavfi.cropdetect.y1=61|tag:lavfi.cropdetect.y2=424|tag:lavfi.cropdetect.w=720|tag:lavfi.cropdetect.h=352|tag:lavfi.cropdetect.x=0|tag:lavfi.cropdetect.y=68
-pts=4400|tag:lavfi.cropdetect.x1=0|tag:lavfi.cropdetect.x2=719|tag:lavfi.cropdetect.y1=61|tag:lavfi.cropdetect.y2=424|tag:lavfi.cropdetect.w=720|tag:lavfi.cropdetect.h=352|tag:lavfi.cropdetect.x=0|tag:lavfi.cropdetect.y=68
-pts=4800|tag:lavfi.cropdetect.x1=0|tag:lavfi.cropdetect.x2=719|tag:lavfi.cropdetect.y1=6

[FFmpeg-cvslog] avcodec: Add FF_CODEC_CAP_NOT_INIT_THREADSAFE

2022-07-18 Thread Andreas Rheinhardt
ffmpeg | branch: master | Andreas Rheinhardt  | 
Sat Jul  9 22:25:41 2022 +0200| [6aad1204ccea90113d19a8b829c8b81891f9474e] | 
committer: Andreas Rheinhardt

avcodec: Add FF_CODEC_CAP_NOT_INIT_THREADSAFE

This is in preparation of switching the default init-thread-safety
to a codec being init-thread-safe.

Signed-off-by: Andreas Rheinhardt 

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=6aad1204ccea90113d19a8b829c8b81891f9474e
---

 libavcodec/amfenc_h264.c| 3 ++-
 libavcodec/amfenc_hevc.c| 3 ++-
 libavcodec/codec_internal.h | 7 +++
 libavcodec/crystalhd.c  | 3 ++-
 libavcodec/cuviddec.c   | 3 ++-
 libavcodec/libaomdec.c  | 3 ++-
 libavcodec/libaomenc.c  | 3 ++-
 libavcodec/libaribb24.c | 1 +
 libavcodec/libcelt_dec.c| 1 +
 libavcodec/libcodec2.c  | 2 ++
 libavcodec/libdavs2.c   | 3 ++-
 libavcodec/libfdk-aacenc.c  | 1 +
 libavcodec/libgsmdec.c  | 2 ++
 libavcodec/libgsmenc.c  | 2 ++
 libavcodec/libilbc.c| 2 ++
 libavcodec/libjxldec.c  | 3 ++-
 libavcodec/libjxlenc.c  | 3 ++-
 libavcodec/libmp3lame.c | 1 +
 libavcodec/libopencore-amr.c| 3 +++
 libavcodec/libopenjpegdec.c | 1 +
 libavcodec/libopenjpegenc.c | 1 +
 libavcodec/libopusdec.c | 3 ++-
 libavcodec/libopusenc.c | 1 +
 libavcodec/librav1e.c   | 3 ++-
 libavcodec/libshine.c   | 1 +
 libavcodec/libspeexdec.c| 1 +
 libavcodec/libspeexenc.c| 1 +
 libavcodec/libsvtav1.c  | 3 ++-
 libavcodec/libtheoraenc.c   | 1 +
 libavcodec/libtwolame.c | 1 +
 libavcodec/libuavs3d.c  | 3 ++-
 libavcodec/libvo-amrwbenc.c | 1 +
 libavcodec/libvorbisdec.c   | 1 +
 libavcodec/libvorbisenc.c   | 1 +
 libavcodec/libvpxdec.c  | 6 --
 libavcodec/libvpxenc.c  | 6 --
 libavcodec/libwebpenc.c | 1 +
 libavcodec/libwebpenc_animencoder.c | 1 +
 libavcodec/libx264.c| 7 ++-
 libavcodec/libx265.c| 3 ++-
 libavcodec/libxavs.c| 3 ++-
 libavcodec/libxavs2.c   | 3 ++-
 libavcodec/libzvbi-teletextdec.c| 1 +
 libavcodec/mediacodecdec.c  | 3 ++-
 libavcodec/mmaldec.c| 3 ++-
 libavcodec/nvenc_h264.c | 3 ++-
 libavcodec/nvenc_hevc.c | 3 ++-
 libavcodec/qsvdec.c | 1 +
 libavcodec/qsvenc_h264.c| 3 ++-
 libavcodec/qsvenc_hevc.c| 3 ++-
 libavcodec/qsvenc_jpeg.c| 1 +
 libavcodec/qsvenc_mpeg2.c   | 3 ++-
 libavcodec/qsvenc_vp9.c | 3 ++-
 libavcodec/rkmppdec.c   | 1 +
 libavcodec/v4l2_m2m_dec.c   | 3 ++-
 libavcodec/v4l2_m2m_enc.c   | 3 ++-
 libavcodec/vaapi_encode_h264.c  | 3 ++-
 libavcodec/vaapi_encode_h265.c  | 3 ++-
 libavcodec/vaapi_encode_mjpeg.c | 3 ++-
 libavcodec/vaapi_encode_mpeg2.c | 3 ++-
 libavcodec/vaapi_encode_vp8.c   | 3 ++-
 libavcodec/vaapi_encode_vp9.c   | 3 ++-
 62 files changed, 117 insertions(+), 37 deletions(-)

diff --git a/libavcodec/amfenc_h264.c b/libavcodec/amfenc_h264.c
index efb04589f6..eba8c23cdd 100644
--- a/libavcodec/amfenc_h264.c
+++ b/libavcodec/amfenc_h264.c
@@ -391,7 +391,8 @@ const FFCodec ff_h264_amf_encoder = {
 .defaults   = defaults,
 .p.capabilities = AV_CODEC_CAP_DELAY | AV_CODEC_CAP_HARDWARE |
   AV_CODEC_CAP_DR1,
-.caps_internal  = FF_CODEC_CAP_INIT_CLEANUP,
+.caps_internal  = FF_CODEC_CAP_NOT_INIT_THREADSAFE |
+  FF_CODEC_CAP_INIT_CLEANUP,
 .p.pix_fmts = ff_amf_pix_fmts,
 .p.wrapper_name = "amf",
 .hw_configs = ff_amfenc_hw_configs,
diff --git a/libavcodec/amfenc_hevc.c b/libavcodec/amfenc_hevc.c
index 8ab9330730..583e39 100644
--- a/libavcodec/amfenc_hevc.c
+++ b/libavcodec/amfenc_hevc.c
@@ -323,7 +323,8 @@ const FFCodec ff_hevc_amf_encoder = {
 .defaults   = defaults,
 .p.capabilities = AV_CODEC_CAP_DELAY | AV_CODEC_CAP_HARDWARE |
   AV_CODEC_CAP_DR1,
-.caps_internal  = FF_CODEC_CAP_INIT_CLEANUP,
+.caps_internal  = FF_CODEC_CAP_NOT_INIT_THREADSAFE |
+  FF_CODEC_CAP_INIT_CLEANUP,
 .p.pix_fmts = ff_amf_pix_fmts,
 .p.wrapper_name = "amf",
 .hw_configs = ff_amfenc_hw_configs,
diff --git a/libavcodec/codec_internal.h b/libavcodec/codec_internal.h
index 5df286ce52..a90c19d61a 100644
--- a/libavcodec/codec_internal.h
+++ b/libavcodec/codec_internal.h
@@ -29,6 +29,13 @@
  * allowing to call the init function without locking any global mutexes.
  */
 #define FF_CODEC_CAP_INIT_THREADSAFE(1 << 0)
+/**
+ * The codec is not known to be init-threadsafe (i.e. it might be unsafe
+ * to initialize this codec and another codec concurrent

[FFmpeg-cvslog] avcodec/pnmdec: Mark PHM decoder as init-threadsafe

2022-07-18 Thread Andreas Rheinhardt
ffmpeg | branch: master | Andreas Rheinhardt  | 
Sat Jul  9 21:12:49 2022 +0200| [c597510434f2950df09d218106279c880bdc146c] | 
committer: Andreas Rheinhardt

avcodec/pnmdec: Mark PHM decoder as init-threadsafe

Signed-off-by: Andreas Rheinhardt 

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=c597510434f2950df09d218106279c880bdc146c
---

 libavcodec/pnmdec.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/libavcodec/pnmdec.c b/libavcodec/pnmdec.c
index bb2ce53496..f012ed288b 100644
--- a/libavcodec/pnmdec.c
+++ b/libavcodec/pnmdec.c
@@ -513,5 +513,6 @@ const FFCodec ff_phm_decoder = {
 .priv_data_size = sizeof(PNMContext),
 .init   = phm_dec_init,
 FF_CODEC_DECODE_CB(pnm_decode_frame),
+.caps_internal  = FF_CODEC_CAP_INIT_THREADSAFE,
 };
 #endif

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog

To unsubscribe, visit link above, or email
ffmpeg-cvslog-requ...@ffmpeg.org with subject "unsubscribe".


[FFmpeg-cvslog] Changelog: move ddagrab addition to correct version

2022-07-18 Thread Timo Rothenpieler
ffmpeg | branch: master | Timo Rothenpieler  | Mon Jul 
18 13:52:48 2022 +0200| [90810bb37cf7076074acf5a9c5a24feaaaf87bc9] | committer: 
Timo Rothenpieler

Changelog: move ddagrab addition to correct version

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=90810bb37cf7076074acf5a9c5a24feaaaf87bc9
---

 Changelog | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/Changelog b/Changelog
index 0ceb878bee..f9cd44f184 100644
--- a/Changelog
+++ b/Changelog
@@ -3,6 +3,7 @@ releases are sorted from youngest to oldest.
 
 version :
 - Radiance HDR image support
+- ddagrab (Desktop Duplication) video capture filter
 
 
 version 5.1:
@@ -29,7 +30,6 @@ version 5.1:
 - PHM image format support
 - remap_opencl filter
 - added chromakey_cuda filter
-- ddagrab (Desktop Duplication) video capture filter
 
 
 version 5.0:

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog

To unsubscribe, visit link above, or email
ffmpeg-cvslog-requ...@ffmpeg.org with subject "unsubscribe".


[FFmpeg-cvslog] avfilter/vsrc_ddagrab: fix checkheaders error

2022-07-18 Thread Timo Rothenpieler
ffmpeg | branch: master | Timo Rothenpieler  | Mon Jul 
18 13:08:39 2022 +0200| [cb22d5ea3c30194ac35cd16639dbb572ca30f8d3] | committer: 
Timo Rothenpieler

avfilter/vsrc_ddagrab: fix checkheaders error

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=cb22d5ea3c30194ac35cd16639dbb572ca30f8d3
---

 libavfilter/vsrc_ddagrab_shaders.h | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/libavfilter/vsrc_ddagrab_shaders.h 
b/libavfilter/vsrc_ddagrab_shaders.h
index 0305f8de1c..894cba88b4 100644
--- a/libavfilter/vsrc_ddagrab_shaders.h
+++ b/libavfilter/vsrc_ddagrab_shaders.h
@@ -19,6 +19,8 @@
 #ifndef AVFILTER_VSRC_DDAGRAB_SHADERS_H
 #define AVFILTER_VSRC_DDAGRAB_SHADERS_H
 
+#include 
+
 #if 0
 
 cbuffer PARAMS : register ( b0 )

___
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog

To unsubscribe, visit link above, or email
ffmpeg-cvslog-requ...@ffmpeg.org with subject "unsubscribe".