From e4005f0699c8db562a57a1c528415d67e5274e8f Mon Sep 17 00:00:00 2001 From: Keith Marshall Date: Thu, 29 Jun 2023 19:23:59 +0100 Subject: [PATCH] Make header effectively self-contained. --- w32api/ChangeLog | 9 +++ w32api/include/vptype.h | 142 +++++++++++++++++++++++++++++++----------------- 2 files changed, 100 insertions(+), 51 deletions(-) diff --git a/w32api/ChangeLog b/w32api/ChangeLog index d69e63e..46c6abe 100644 --- a/w32api/ChangeLog +++ b/w32api/ChangeLog @@ -1,3 +1,12 @@ +2023-06-29 Keith Marshall + + Make header effectively self-contained. + + * include/vptype.h: Tidy layout; assert copyright. + (GCC system_header) [__GNUC__ >= 3]: Remove prerequisite condition. + (windef.h): Include this, to support stand-alone use. + (_BEGIN_C_DECLS, _END_C_DECLS): Use them. + 2023-06-23 Keith Marshall Make header effectively self-contained. diff --git a/w32api/include/vptype.h b/w32api/include/vptype.h index d90d614..a197f25 100644 --- a/w32api/include/vptype.h +++ b/w32api/include/vptype.h @@ -1,55 +1,95 @@ +/* + * vptype.h + * + * Windows Direct Show Video Port data type definitions. + * + * $Id$ + * + * Written by Dimitri Papadopoulos + * Copyright (C) 2006, 2023, MinGW.org Project + * + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + */ #ifndef _VPTYPE_H -#define _VPTYPE_H -#if __GNUC__ >= 3 #pragma GCC system_header -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -/*--- DirectShow Reference - DirectShow Enumerated Types */ -typedef enum _AMVP_MODE { - AMVP_MODE_WEAVE, - AMVP_MODE_BOBINTERLEAVED, - AMVP_MODE_BOBNONINTERLEAVED, - AMVP_MODE_SKIPEVEN, - AMVP_MODE_SKIPODD +#define _VPTYPE_H + +#include + +_BEGIN_C_DECLS + +/* DirectShow Reference: DirectShow Enumerated Types + */ +typedef +enum _AMVP_MODE +{ AMVP_MODE_WEAVE, + AMVP_MODE_BOBINTERLEAVED, + AMVP_MODE_BOBNONINTERLEAVED, + AMVP_MODE_SKIPEVEN, + AMVP_MODE_SKIPODD } AMVP_MODE; -typedef enum _AMVP_SELECT_FORMAT_BY { - AMVP_DO_NOT_CARE, - AMVP_BEST_BANDWIDTH, - AMVP_INPUT_SAME_AS_OUTPUT + +typedef +enum _AMVP_SELECT_FORMAT_BY +{ AMVP_DO_NOT_CARE, + AMVP_BEST_BANDWIDTH, + AMVP_INPUT_SAME_AS_OUTPUT } AMVP_SELECT_FORMAT_BY; -/*--- DirectShow Reference - DirectShow Structures */ -typedef struct _AMVPDIMINFO{ - DWORD dwFieldWidth; - DWORD dwFieldHeight; - DWORD dwVBIWidth; - DWORD dwVBIHeight; - RECT rcValidRegion; -} AMVPDIMINFO,*LPAMVPDIMINFO; -typedef struct _AMVPDATAINFO{ - DWORD dwSize; - DWORD dwMicrosecondsPerField; - AMVPDIMINFO amvpDimInfo; - DWORD dwPictAspectRatioX; - DWORD dwPictAspectRatioY; - BOOL bEnableDoubleClock; - BOOL bEnableVACT; - BOOL bDataIsInterlaced; - LONG lHalfLinesOdd; - BOOL bFieldPolarityInverted; - DWORD dwNumLinesInVREF; - LONG lHalfLinesEven; - DWORD dwReserved1; -} AMVPDATAINFO,*LPAMVPDATAINFO; -typedef struct _AMVPSIZE{ - DWORD dwWidth; - DWORD dwHeight; -} AMVPSIZE,*LPAMVPSIZE; - -#ifdef __cplusplus -} -#endif -#endif + +/* DirectShow Reference: DirectShow Structures + */ +typedef +struct _AMVPDIMINFO +{ DWORD dwFieldWidth; + DWORD dwFieldHeight; + DWORD dwVBIWidth; + DWORD dwVBIHeight; + RECT rcValidRegion; +} AMVPDIMINFO, *LPAMVPDIMINFO; + +typedef +struct _AMVPDATAINFO +{ + DWORD dwSize; + DWORD dwMicrosecondsPerField; + AMVPDIMINFO amvpDimInfo; + DWORD dwPictAspectRatioX; + DWORD dwPictAspectRatioY; + BOOL bEnableDoubleClock; + BOOL bEnableVACT; + BOOL bDataIsInterlaced; + LONG lHalfLinesOdd; + BOOL bFieldPolarityInverted; + DWORD dwNumLinesInVREF; + LONG lHalfLinesEven; + DWORD dwReserved1; +} AMVPDATAINFO, *LPAMVPDATAINFO; + +typedef +struct _AMVPSIZE +{ DWORD dwWidth; + DWORD dwHeight; +} AMVPSIZE, *LPAMVPSIZE; + +_END_C_DECLS + +#endif /* !_VPTYPE_H: $RCSfile$: end of file */ -- 2.11.0