OSDN Git Service

* NEWS: Add and adjust release notes for 4.0.
[mingw/mingw-org-wsl.git] / include / dvdmedia.h
1 /**
2  * @file dvdmedia.h
3  * Copyright 2012, 2013 MinGW.org project
4  *
5  * Permission is hereby granted, free of charge, to any person obtaining a
6  * copy of this software and associated documentation files (the "Software"),
7  * to deal in the Software without restriction, including without limitation
8  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
9  * and/or sell copies of the Software, and to permit persons to whom the
10  * Software is furnished to do so, subject to the following conditions:
11  * 
12  * The above copyright notice and this permission notice (including the next
13  * paragraph) shall be included in all copies or substantial portions of the
14  * Software.
15  * 
16  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
22  * DEALINGS IN THE SOFTWARE.
23  */
24 #ifndef _DVDMEDIA_H
25 #define _DVDMEDIA_H
26 #pragma GCC system_header
27 #include <_mingw.h>
28
29 #include <strmif.h>
30
31 #ifdef __cplusplus
32 extern "C" {
33 #endif
34
35 /*--- DirectShow Reference - DirectShow Structures - AM_SAMPLE2_PROPERTIES Structure */
36 #define AM_VIDEO_FLAG_FIELD_MASK 0x0003
37 #define AM_VIDEO_FLAG_INTERLEAVED_FRAME 0x0000
38 #define AM_VIDEO_FLAG_FIELD1 0x0001
39 #define AM_VIDEO_FLAG_FIELD2 0x0002
40 #define AM_VIDEO_FLAG_FIELD1FIRST 0x0004
41 #define AM_VIDEO_FLAG_WEAVE 0x0008
42 #define AM_VIDEO_FLAG_REPEAT_FIELD 0x0040
43 /*--- DirectShow Reference - DirectShow Enumerated Types */
44 enum AM_MPEG2Level {
45         AM_MPEG2Level_Low = 1,
46         AM_MPEG2Level_Main,
47         AM_MPEG2Level_High1440,
48         AM_MPEG2Level_High
49 };
50 enum AM_MPEG2Profile {
51         AM_MPEG2Profile_Simple = 1,
52         AM_MPEG2Profile_Main,
53         AM_MPEG2Profile_SNRScalable,
54         AM_MPEG2Profile_SpatiallyScalable,
55         AM_MPEG2Profile_High
56 };
57 typedef enum {
58         AM_RATE_ChangeRate = 1,
59         AM_RATE_FullDataRateMax = 2,
60         AM_RATE_ReverseDecode = 3,
61         AM_RATE_DecoderPosition = 4,
62         AM_RATE_DecoderVersion = 5
63 } AM_PROPERTY_DVD_RATE_CHANGE;
64 /*--- DirectShow Reference - DirectShow Structures */
65 typedef struct tagVIDEOINFOHEADER2 {
66         RECT rcSource;
67         RECT rcTarget;
68         DWORD dwBitRate;
69         DWORD dwBitErrorRate;
70         REFERENCE_TIME AvgTimePerFrame;
71         DWORD dwInterlaceFlags;
72         DWORD dwCopyProtectFlags;
73         DWORD dwPictAspectRatioX; 
74         DWORD dwPictAspectRatioY; 
75         union {
76                 DWORD dwControlFlags;
77                 DWORD dwReserved1;
78         };
79         DWORD dwReserved2;
80         BITMAPINFOHEADER bmiHeader;
81 } VIDEOINFOHEADER2;
82 #define AMINTERLACE_IsInterlaced 0x00000001
83 #define AMINTERLACE_1FieldPerSample 0x00000002
84 #define AMINTERLACE_Field1First 0x00000004
85 #define AMINTERLACE_FieldPatField1Only 0x00000000
86 #define AMINTERLACE_FieldPatField2Only 0x00000010
87 #define AMINTERLACE_FieldPatBothRegular 0x00000020
88 #define AMINTERLACE_FieldPatBothIrregular 0x00000030
89 #define AMINTERLACE_DisplayModeBobOnly 0x00000000
90 #define AMINTERLACE_DisplayModeWeaveOnly 0x00000040
91 #define AMINTERLACE_DisplayModeBobOrWeave 0x00000080
92 #define AMINTERLACE_FieldPatternMask 0x00000030
93 #define AMINTERLACE_DisplayModeMask 0x000000C0
94 #define AMCONTROL_USED 0x00000001
95 #define AMCONTROL_PAD_TO_4x3 0x00000002
96 #define AMCONTROL_PAD_TO_16x9 0x00000004
97 #define AMCONTROL_COLORINFO_PRESENT 0x00000008
98 typedef struct tagMPEG2VIDEOINFO {
99         VIDEOINFOHEADER2 hdr;
100         DWORD dwStartTimeCode;
101         DWORD cbSequenceHeader;
102         DWORD dwProfile;
103         DWORD dwLevel;
104         DWORD dwFlags;
105         DWORD dwSequenceHeader[1];
106 } MPEG2VIDEOINFO;
107 #define AMMPEG2_DoPanScan 0x00000001
108 #define AMMPEG2_DVDLine21Field1 0x00000002
109 #define AMMPEG2_DVDLine21Field2 0x00000004
110 #define AMMPEG2_SourceIsLetterboxed 0x00000008
111 #define AMMPEG2_FilmCameraMode 0x00000010
112 #define AMMPEG2_LetterboxAnalogOut 0x00000020
113 #define AMMPEG2_DSS_UserData 0x00000040
114 #define AMMPEG2_DVB_UserData 0x00000080
115 #define AMMPEG2_27MhzTimebase 0x00000100
116 #define AMMPEG2_WidescreenAnalogOut 0x00000200
117
118 #ifdef __cplusplus
119 }
120 #endif
121 #endif