struct Foo * declares a new type (namely struct Foo) if there is no declaration of struct Foo already visible in the current scope; otherwise it is just a pointer to an element of the already declared type "struct Foo". There is a gotcha with the first case: struct Foo is only declared in its scope; a later declaration of struct Foo in an enclosing scope declares a different type.
This happens in hwcontext_vulkan.h if it is included before hwcontext.h, because some declarations of struct AVHWDeviceContext and struct AVHWFramesContext have function prototype scope. Compilers warn about this (during checkheaders): ‘struct AVHWDeviceContext’ declared inside parameter list will not be visible outside of this definition or declaration Fix this by including hwcontext.h. Signed-off-by: Andreas Rheinhardt <andreas.rheinha...@outlook.com> --- libavutil/hwcontext_vulkan.h | 1 + 1 file changed, 1 insertion(+) diff --git a/libavutil/hwcontext_vulkan.h b/libavutil/hwcontext_vulkan.h index 895794c867..cbbd2390c1 100644 --- a/libavutil/hwcontext_vulkan.h +++ b/libavutil/hwcontext_vulkan.h @@ -26,6 +26,7 @@ #include "pixfmt.h" #include "frame.h" +#include "hwcontext.h" typedef struct AVVkFrame AVVkFrame; -- 2.40.1 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".