X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=modules%2Faccess%2Fdshow%2Fcommon.h;h=a90d4b96900f618b0c64e495b7af0c8a781e134a;hb=f81980b46f1ff69644168873c93d83e91bab15c6;hp=3c2d9a6b5fcecfe162e16727a7c012d1fd2d8eca;hpb=fe087a38282e93addb25fa9598393e40ea233b09;p=vlc diff --git a/modules/access/dshow/common.h b/modules/access/dshow/common.h index 3c2d9a6b5f..a90d4b9690 100644 --- a/modules/access/dshow/common.h +++ b/modules/access/dshow/common.h @@ -18,7 +18,7 @@ * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA. + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. *****************************************************************************/ /***************************************************************************** @@ -34,11 +34,16 @@ using namespace std; # include # include # include +# ifdef _WINGDI_ +# undef _WINGDI_ +# endif # define _WINGDI_ 1 # define AM_NOVTABLE # define _OBJBASE_H_ # undef _X86_ -# define _I64_MAX LONG_LONG_MAX +# ifndef _I64_MAX +# define _I64_MAX LONG_LONG_MAX +# endif # define LONGLONG long long #endif @@ -90,4 +95,118 @@ struct access_sys_t int i_width; int i_height; int i_chroma; + bool b_chroma; /* Force a specific chroma on the dshow input */ }; + + +/**************************************************************************** + * The following should be in ks.h and ksmedia.h, but since they are not in + * the current version of Mingw, we will be defined here. + ****************************************************************************/ + +/* http://msdn.microsoft.com/en-us/library/ff567297%28VS.85%29.aspx */ +typedef enum { + KS_AnalogVideo_None = 0x00000000, + KS_AnalogVideo_NTSC_M = 0x00000001, + KS_AnalogVideo_NTSC_M_J = 0x00000002, + KS_AnalogVideo_NTSC_433 = 0x00000004, + KS_AnalogVideo_PAL_B = 0x00000010, + KS_AnalogVideo_PAL_D = 0x00000020, + KS_AnalogVideo_PAL_G = 0x00000040, + KS_AnalogVideo_PAL_H = 0x00000080, + KS_AnalogVideo_PAL_I = 0x00000100, + KS_AnalogVideo_PAL_M = 0x00000200, + KS_AnalogVideo_PAL_N = 0x00000400, + KS_AnalogVideo_PAL_60 = 0x00000800, + KS_AnalogVideo_SECAM_B = 0x00001000, + KS_AnalogVideo_SECAM_D = 0x00002000, + KS_AnalogVideo_SECAM_G = 0x00004000, + KS_AnalogVideo_SECAM_H = 0x00008000, + KS_AnalogVideo_SECAM_K = 0x00010000, + KS_AnalogVideo_SECAM_K1 = 0x00020000, + KS_AnalogVideo_SECAM_L = 0x00040000, + KS_AnalogVideo_SECAM_L1 = 0x00080000, + KS_AnalogVideo_PAL_N_COMBO = 0x00100000 +} KS_AnalogVideoStandard; + +/* http://msdn.microsoft.com/en-us/library/ff567800%28VS.85%29.aspx and following */ +typedef enum { + KSPROPERTY_TUNER_CAPS, // R -overall device capabilities + KSPROPERTY_TUNER_MODE_CAPS, // R -capabilities in this mode + KSPROPERTY_TUNER_MODE, // RW -set a mode (TV, FM, AM, DSS) + KSPROPERTY_TUNER_STANDARD, // R -get TV standard (only if TV mode) + KSPROPERTY_TUNER_FREQUENCY, // RW -set/get frequency + KSPROPERTY_TUNER_INPUT, // RW -select an input + KSPROPERTY_TUNER_STATUS, // R -tuning status + + /* Optional */ + KSPROPERTY_TUNER_IF_MEDIUM, // R O-Medium for IF or Transport Pin + + /* Mandatory for Vista and + */ + KSPROPERTY_TUNER_SCAN_CAPS, // R -overall device capabilities for scanning + + /* Optional ones */ + KSPROPERTY_TUNER_SCAN_STATUS, // R -status of scan + KSPROPERTY_TUNER_STANDARD_MODE, // RW -autodetect mode for signal standard + KSPROPERTY_TUNER_NETWORKTYPE_SCAN_CAPS // R -network type specific tuner capabilities +} KSPROPERTY_TUNER; + +/* http://msdn.microsoft.com/en-us/library/ff567689%28v=VS.85%29.aspx */ +typedef enum { + KS_TUNER_TUNING_EXACT = 1, // Tunes directly to the right freq + KS_TUNER_TUNING_FINE, // Comprehensive search to the right freq + KS_TUNER_TUNING_COARSE, // Fast search +}KS_TUNER_TUNING_FLAGS; + +/* http://msdn.microsoft.com/en-us/library/ff567687%28v=VS.85%29.aspx */ +typedef enum { + KS_TUNER_STRATEGY_PLL = 0X01, // Phase locked loop (PLL) offset tuning + KS_TUNER_STRATEGY_SIGNAL_STRENGTH = 0X02, // Signal strength tuning + KS_TUNER_STRATEGY_DRIVER_TUNES = 0X04, // Driver tunes +}KS_TUNER_STRATEGY; + +/* http://msdn.microsoft.com/en-us/library/ff562676%28VS.85%29.aspx */ +typedef struct { + union { + struct { + GUID Set; + ULONG Id; + ULONG Flags; + }; + LONGLONG Alignment; + }; +} KSIDENTIFIER, *PKSIDENTIFIER; + +typedef KSIDENTIFIER KSPROPERTY, *PKSPROPERTY; + +/* http://msdn.microsoft.com/en-us/library/ff565872%28v=VS.85%29.aspx */ +typedef struct { + KSPROPERTY Property; + ULONG Mode; // KSPROPERTY_TUNER_MODE_* + ULONG StandardsSupported; // KS_AnalogVideo_* (if Mode is TV or DSS) + ULONG MinFrequency; // Hz + ULONG MaxFrequency; // Hz + ULONG TuningGranularity; // Hz + ULONG NumberOfInputs; // number of inputs + ULONG SettlingTime; // milliSeconds + ULONG Strategy; // KS_TUNER_STRATEGY +} KSPROPERTY_TUNER_MODE_CAPS_S, *PKSPROPERTY_TUNER_MODE_CAPS_S; + +/* http://msdn.microsoft.com/en-us/library/ff565839%28v=VS.85%29.aspx */ +typedef struct { + KSPROPERTY Property; + ULONG Frequency; // Hz + ULONG LastFrequency; // Hz (last tuned) + ULONG TuningFlags; // KS_TUNER_TUNING_FLAGS + ULONG VideoSubChannel; // DSS + ULONG AudioSubChannel; // DSS + ULONG Channel; // VBI decoders + ULONG Country; // VBI decoders +} KSPROPERTY_TUNER_FREQUENCY_S, *PKSPROPERTY_TUNER_FREQUENCY_S; + +/* http://msdn.microsoft.com/en-us/library/ff565918%28v=VS.85%29.aspx */ +typedef struct { + KSPROPERTY Property; + ULONG Standard; // KS_AnalogVideo_* +} KSPROPERTY_TUNER_STANDARD_S, *PKSPROPERTY_TUNER_STANDARD_S; +