master
 1/*
 2 * Copyright (C) 2008 Maarten Lankhorst
 3 *
 4 * This library is free software; you can redistribute it and/or
 5 * modify it under the terms of the GNU Lesser General Public
 6 * License as published by the Free Software Foundation; either
 7 * version 2.1 of the License, or (at your option) any later version.
 8 *
 9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12 * Lesser General Public License for more details.
13 *
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
17 */
18
19#ifndef __DVDMEDIA_H__
20#define __DVDMEDIA_H__
21
22#define AMCONTROL_USED 0x00000001
23#define AMCONTROL_PAD_TO_4x3 0x00000002
24#define AMCONTROL_PAD_TO_16x9 0x00000004
25#define AMCONTROL_COLORINFO_PRESENT 0x00000080
26
27typedef struct tagVIDEOINFOHEADER2 {
28    RECT rcSource;
29    RECT rcTarget;
30    DWORD dwBitRate;
31    DWORD dwBitErrorRate;
32    REFERENCE_TIME AvgTimePerFrame;
33    DWORD dwInterlaceFlags;
34    DWORD dwCopyProtectFlags;
35    DWORD dwPictAspectRatioX;
36    DWORD dwPictAspectRatioY;
37    union {
38        DWORD dwControlFlags;
39        DWORD dwReserved1;
40    } DUMMYUNIONNAME;
41    DWORD dwReserved2;
42    BITMAPINFOHEADER bmiHeader;
43} VIDEOINFOHEADER2;
44
45typedef struct tagMPEG2VIDEOINFO {
46    VIDEOINFOHEADER2 hdr;
47    DWORD dwStartTimeCode;
48    DWORD cbSequenceHeader;
49    DWORD dwProfile;
50    DWORD dwLevel;
51    DWORD dwFlags;
52    DWORD dwSequenceHeader[1];
53} MPEG2VIDEOINFO;
54
55#define AMINTERLACE_IsInterlaced          0x0001
56#define AMINTERLACE_1FieldPerSample       0x0002
57#define AMINTERLACE_Field1First           0x0004
58#define AMINTERLACE_UNUSED                0x0008
59#define AMINTERLACE_FieldPatField1Only    0x0000
60#define AMINTERLACE_FieldPatField2Only    0x0010
61#define AMINTERLACE_FieldPatBothRegular   0x0020
62#define AMINTERLACE_FieldPatBothIrregular 0x0030
63#define AMINTERLACE_FieldPatternMask      0x0030
64#define AMINTERLACE_DisplayModeBobOnly    0x0000
65#define AMINTERLACE_DisplayModeWeaveOnly  0x0040
66#define AMINTERLACE_DisplayModeBobOrWeave 0x0080
67#define AMINTERLACE_DisplayModeMask       0x00c0
68
69#endif /* __DVDMEDIA_H__ */