Mercurial > mplayer.hg
annotate libmpdemux/asf.h @ 34338:4a507d3a039a
Add highly experimental support for OpenGL ES.
It only supports EGL/X11, uses/supports only ES v1,
will crash if certain features are used, compiling
without desktop GL installed is not tested and
possibly more caveats.
However it is close enough to be able to display
a video on a BeagleBoard via OpenGL.
Performance could not be tested properly since I do
not have a display that is compatible with the
BeagleBoard output...
author | reimar |
---|---|
date | Sat, 10 Dec 2011 20:55:31 +0000 |
parents | 580141f51e13 |
children |
rev | line source |
---|---|
29238
d643e4643313
Add standard license header to all files in libmpdemux.
diego
parents:
27468
diff
changeset
|
1 /* |
d643e4643313
Add standard license header to all files in libmpdemux.
diego
parents:
27468
diff
changeset
|
2 * This file is part of MPlayer. |
d643e4643313
Add standard license header to all files in libmpdemux.
diego
parents:
27468
diff
changeset
|
3 * |
d643e4643313
Add standard license header to all files in libmpdemux.
diego
parents:
27468
diff
changeset
|
4 * MPlayer is free software; you can redistribute it and/or modify |
d643e4643313
Add standard license header to all files in libmpdemux.
diego
parents:
27468
diff
changeset
|
5 * it under the terms of the GNU General Public License as published by |
d643e4643313
Add standard license header to all files in libmpdemux.
diego
parents:
27468
diff
changeset
|
6 * the Free Software Foundation; either version 2 of the License, or |
d643e4643313
Add standard license header to all files in libmpdemux.
diego
parents:
27468
diff
changeset
|
7 * (at your option) any later version. |
d643e4643313
Add standard license header to all files in libmpdemux.
diego
parents:
27468
diff
changeset
|
8 * |
d643e4643313
Add standard license header to all files in libmpdemux.
diego
parents:
27468
diff
changeset
|
9 * MPlayer is distributed in the hope that it will be useful, |
d643e4643313
Add standard license header to all files in libmpdemux.
diego
parents:
27468
diff
changeset
|
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
d643e4643313
Add standard license header to all files in libmpdemux.
diego
parents:
27468
diff
changeset
|
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
d643e4643313
Add standard license header to all files in libmpdemux.
diego
parents:
27468
diff
changeset
|
12 * GNU General Public License for more details. |
d643e4643313
Add standard license header to all files in libmpdemux.
diego
parents:
27468
diff
changeset
|
13 * |
d643e4643313
Add standard license header to all files in libmpdemux.
diego
parents:
27468
diff
changeset
|
14 * You should have received a copy of the GNU General Public License along |
d643e4643313
Add standard license header to all files in libmpdemux.
diego
parents:
27468
diff
changeset
|
15 * with MPlayer; if not, write to the Free Software Foundation, Inc., |
d643e4643313
Add standard license header to all files in libmpdemux.
diego
parents:
27468
diff
changeset
|
16 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. |
d643e4643313
Add standard license header to all files in libmpdemux.
diego
parents:
27468
diff
changeset
|
17 */ |
d643e4643313
Add standard license header to all files in libmpdemux.
diego
parents:
27468
diff
changeset
|
18 |
26029 | 19 #ifndef MPLAYER_ASF_H |
20 #define MPLAYER_ASF_H | |
833 | 21 |
29401
f01023c524c3
Replace WORDS_BIGENDIAN by HAVE_BIGENDIAN in all internal code.
diego
parents:
29263
diff
changeset
|
22 //#include "config.h" /* for HAVE_BIGENDIAN */ |
833 | 23 #include <inttypes.h> |
21372 | 24 #include "libavutil/common.h" |
21507
fa99b3d31d13
Hack around libavutil/bswap.h compilation problems due to always_inline undefined.
reimar
parents:
21372
diff
changeset
|
25 #include "mpbswap.h" |
904 | 26 |
833 | 27 /////////////////////// |
29263
0f1b5b68af32
whitespace cosmetics: Remove all trailing whitespace.
diego
parents:
29238
diff
changeset
|
28 // ASF Object Header |
833 | 29 /////////////////////// |
30 typedef struct __attribute__((packed)) { | |
31 uint8_t guid[16]; | |
32 uint64_t size; | |
33 } ASF_obj_header_t; | |
34 | |
35 //////////////// | |
29263
0f1b5b68af32
whitespace cosmetics: Remove all trailing whitespace.
diego
parents:
29238
diff
changeset
|
36 // ASF Header |
833 | 37 //////////////// |
38 typedef struct __attribute__((packed)) { | |
39 ASF_obj_header_t objh; | |
40 uint32_t cno; // number of subchunks | |
41 uint8_t v1; // unknown (0x01) | |
42 uint8_t v2; // unknown (0x02) | |
43 } ASF_header_t; | |
44 | |
45 ///////////////////// | |
29263
0f1b5b68af32
whitespace cosmetics: Remove all trailing whitespace.
diego
parents:
29238
diff
changeset
|
46 // ASF File Header |
833 | 47 ///////////////////// |
4288
b84e9861461c
Changed the asf_file_header_t struct to read all the fields properly.
bertrand
parents:
3719
diff
changeset
|
48 typedef struct __attribute__((packed)) { |
b84e9861461c
Changed the asf_file_header_t struct to read all the fields properly.
bertrand
parents:
3719
diff
changeset
|
49 uint8_t stream_id[16]; // stream GUID |
b84e9861461c
Changed the asf_file_header_t struct to read all the fields properly.
bertrand
parents:
3719
diff
changeset
|
50 uint64_t file_size; |
b84e9861461c
Changed the asf_file_header_t struct to read all the fields properly.
bertrand
parents:
3719
diff
changeset
|
51 uint64_t creation_time; //File creation time FILETIME 8 |
b84e9861461c
Changed the asf_file_header_t struct to read all the fields properly.
bertrand
parents:
3719
diff
changeset
|
52 uint64_t num_packets; //Number of packets UINT64 8 |
b84e9861461c
Changed the asf_file_header_t struct to read all the fields properly.
bertrand
parents:
3719
diff
changeset
|
53 uint64_t play_duration; //Timestamp of the end position UINT64 8 |
b84e9861461c
Changed the asf_file_header_t struct to read all the fields properly.
bertrand
parents:
3719
diff
changeset
|
54 uint64_t send_duration; //Duration of the playback UINT64 8 |
33396 | 55 uint64_t preroll; //Time to bufferize before playing UINT64 8 |
4288
b84e9861461c
Changed the asf_file_header_t struct to read all the fields properly.
bertrand
parents:
3719
diff
changeset
|
56 uint32_t flags; //Unknown, maybe flags ( usually contains 2 ) UINT32 4 |
b84e9861461c
Changed the asf_file_header_t struct to read all the fields properly.
bertrand
parents:
3719
diff
changeset
|
57 uint32_t min_packet_size; //Min size of the packet, in bytes UINT32 4 |
b84e9861461c
Changed the asf_file_header_t struct to read all the fields properly.
bertrand
parents:
3719
diff
changeset
|
58 uint32_t max_packet_size; //Max size of the packet UINT32 4 |
b84e9861461c
Changed the asf_file_header_t struct to read all the fields properly.
bertrand
parents:
3719
diff
changeset
|
59 uint32_t max_bitrate; //Maximum bitrate of the media (sum of all the stream) |
b84e9861461c
Changed the asf_file_header_t struct to read all the fields properly.
bertrand
parents:
3719
diff
changeset
|
60 } ASF_file_header_t; |
833 | 61 |
62 /////////////////////// | |
63 // ASF Stream Header | |
64 /////////////////////// | |
65 typedef struct __attribute__((packed)) { | |
66 uint8_t type[16]; // Stream type (audio/video) GUID 16 | |
67 uint8_t concealment[16]; // Audio error concealment type GUID 16 | |
68 uint64_t unk1; // Unknown, maybe reserved ( usually contains 0 ) UINT64 8 | |
69 uint32_t type_size; //Total size of type-specific data UINT32 4 | |
70 uint32_t stream_size; //Size of stream-specific data UINT32 4 | |
71 uint16_t stream_no; //Stream number UINT16 2 | |
72 uint32_t unk2; //Unknown UINT32 4 | |
73 } ASF_stream_header_t; | |
74 | |
75 /////////////////////////// | |
76 // ASF Content Description | |
77 /////////////////////////// | |
78 typedef struct __attribute__((packed)) { | |
79 uint16_t title_size; | |
80 uint16_t author_size; | |
81 uint16_t copyright_size; | |
82 uint16_t comment_size; | |
83 uint16_t rating_size; | |
84 } ASF_content_description_t; | |
85 | |
86 //////////////////////// | |
29263
0f1b5b68af32
whitespace cosmetics: Remove all trailing whitespace.
diego
parents:
29238
diff
changeset
|
87 // ASF Segment Header |
833 | 88 //////////////////////// |
89 typedef struct __attribute__((packed)) { | |
90 uint8_t streamno; | |
91 uint8_t seq; | |
92 uint32_t x; | |
93 uint8_t flag; | |
94 } ASF_segmhdr_t; | |
95 | |
96 ////////////////////// | |
97 // ASF Stream Chunck | |
98 ////////////////////// | |
99 typedef struct __attribute__((packed)) { | |
100 uint16_t type; | |
871 | 101 uint16_t size; |
833 | 102 uint32_t sequence_number; |
103 uint16_t unknown; | |
871 | 104 uint16_t size_confirm; |
833 | 105 } ASF_stream_chunck_t; |
106 | |
5616
8cfce21c6013
Added big endian macro for asf_chunk_t and added defines for the ASF chunk type.
bertrand
parents:
4310
diff
changeset
|
107 // Definition of the stream type |
29401
f01023c524c3
Replace WORDS_BIGENDIAN by HAVE_BIGENDIAN in all internal code.
diego
parents:
29263
diff
changeset
|
108 #if HAVE_BIGENDIAN |
5616
8cfce21c6013
Added big endian macro for asf_chunk_t and added defines for the ASF chunk type.
bertrand
parents:
4310
diff
changeset
|
109 #define ASF_STREAMING_CLEAR 0x2443 // $C |
8cfce21c6013
Added big endian macro for asf_chunk_t and added defines for the ASF chunk type.
bertrand
parents:
4310
diff
changeset
|
110 #define ASF_STREAMING_DATA 0x2444 // $D |
8cfce21c6013
Added big endian macro for asf_chunk_t and added defines for the ASF chunk type.
bertrand
parents:
4310
diff
changeset
|
111 #define ASF_STREAMING_END_TRANS 0x2445 // $E |
8cfce21c6013
Added big endian macro for asf_chunk_t and added defines for the ASF chunk type.
bertrand
parents:
4310
diff
changeset
|
112 #define ASF_STREAMING_HEADER 0x2448 // $H |
8cfce21c6013
Added big endian macro for asf_chunk_t and added defines for the ASF chunk type.
bertrand
parents:
4310
diff
changeset
|
113 #else |
8cfce21c6013
Added big endian macro for asf_chunk_t and added defines for the ASF chunk type.
bertrand
parents:
4310
diff
changeset
|
114 #define ASF_STREAMING_CLEAR 0x4324 // $C |
8cfce21c6013
Added big endian macro for asf_chunk_t and added defines for the ASF chunk type.
bertrand
parents:
4310
diff
changeset
|
115 #define ASF_STREAMING_DATA 0x4424 // $D |
8cfce21c6013
Added big endian macro for asf_chunk_t and added defines for the ASF chunk type.
bertrand
parents:
4310
diff
changeset
|
116 #define ASF_STREAMING_END_TRANS 0x4524 // $E |
8cfce21c6013
Added big endian macro for asf_chunk_t and added defines for the ASF chunk type.
bertrand
parents:
4310
diff
changeset
|
117 #define ASF_STREAMING_HEADER 0x4824 // $H |
8cfce21c6013
Added big endian macro for asf_chunk_t and added defines for the ASF chunk type.
bertrand
parents:
4310
diff
changeset
|
118 #endif |
833 | 119 |
120 // Definition of the differents type of ASF streaming | |
121 typedef enum { | |
122 ASF_Unknown_e, | |
123 ASF_Live_e, | |
124 ASF_Prerecorded_e, | |
2489
0ecc1b4f7cf8
Added ASF http server streaming (Not mms streaming).
bertrand
parents:
2310
diff
changeset
|
125 ASF_Redirector_e, |
6676 | 126 ASF_PlainText_e, |
127 ASF_Authenticate_e | |
833 | 128 } ASF_StreamType_e; |
129 | |
6644
f3153f8d4fbe
Moved the asf_http_streaming_ctrl_t struct from asf_streaming.c
bertrand
parents:
5616
diff
changeset
|
130 typedef struct { |
f3153f8d4fbe
Moved the asf_http_streaming_ctrl_t struct from asf_streaming.c
bertrand
parents:
5616
diff
changeset
|
131 ASF_StreamType_e streaming_type; |
f3153f8d4fbe
Moved the asf_http_streaming_ctrl_t struct from asf_streaming.c
bertrand
parents:
5616
diff
changeset
|
132 int request; |
f3153f8d4fbe
Moved the asf_http_streaming_ctrl_t struct from asf_streaming.c
bertrand
parents:
5616
diff
changeset
|
133 int packet_size; |
f3153f8d4fbe
Moved the asf_http_streaming_ctrl_t struct from asf_streaming.c
bertrand
parents:
5616
diff
changeset
|
134 int *audio_streams,n_audio,*video_streams,n_video; |
f3153f8d4fbe
Moved the asf_http_streaming_ctrl_t struct from asf_streaming.c
bertrand
parents:
5616
diff
changeset
|
135 int audio_id, video_id; |
f3153f8d4fbe
Moved the asf_http_streaming_ctrl_t struct from asf_streaming.c
bertrand
parents:
5616
diff
changeset
|
136 } asf_http_streaming_ctrl_t; |
f3153f8d4fbe
Moved the asf_http_streaming_ctrl_t struct from asf_streaming.c
bertrand
parents:
5616
diff
changeset
|
137 |
904 | 138 |
1342 | 139 /* |
140 * Some macros to swap little endian structures read from an ASF file | |
141 * into machine endian format | |
142 */ | |
29401
f01023c524c3
Replace WORDS_BIGENDIAN by HAVE_BIGENDIAN in all internal code.
diego
parents:
29263
diff
changeset
|
143 #if HAVE_BIGENDIAN |
1342 | 144 #define le2me_ASF_obj_header_t(h) { \ |
145 (h)->size = le2me_64((h)->size); \ | |
146 } | |
147 #define le2me_ASF_header_t(h) { \ | |
148 le2me_ASF_obj_header_t(&(h)->objh); \ | |
149 (h)->cno = le2me_32((h)->cno); \ | |
150 } | |
151 #define le2me_ASF_stream_header_t(h) { \ | |
152 (h)->unk1 = le2me_64((h)->unk1); \ | |
153 (h)->type_size = le2me_32((h)->type_size); \ | |
154 (h)->stream_size = le2me_32((h)->stream_size); \ | |
155 (h)->stream_no = le2me_16((h)->stream_no); \ | |
156 (h)->unk2 = le2me_32((h)->unk2); \ | |
157 } | |
4288
b84e9861461c
Changed the asf_file_header_t struct to read all the fields properly.
bertrand
parents:
3719
diff
changeset
|
158 #define le2me_ASF_file_header_t(h) { \ |
b84e9861461c
Changed the asf_file_header_t struct to read all the fields properly.
bertrand
parents:
3719
diff
changeset
|
159 (h)->file_size = le2me_64((h)->file_size); \ |
b84e9861461c
Changed the asf_file_header_t struct to read all the fields properly.
bertrand
parents:
3719
diff
changeset
|
160 (h)->creation_time = le2me_64((h)->creation_time); \ |
b84e9861461c
Changed the asf_file_header_t struct to read all the fields properly.
bertrand
parents:
3719
diff
changeset
|
161 (h)->num_packets = le2me_64((h)->num_packets); \ |
b84e9861461c
Changed the asf_file_header_t struct to read all the fields properly.
bertrand
parents:
3719
diff
changeset
|
162 (h)->play_duration = le2me_64((h)->play_duration); \ |
b84e9861461c
Changed the asf_file_header_t struct to read all the fields properly.
bertrand
parents:
3719
diff
changeset
|
163 (h)->send_duration = le2me_64((h)->send_duration); \ |
b84e9861461c
Changed the asf_file_header_t struct to read all the fields properly.
bertrand
parents:
3719
diff
changeset
|
164 (h)->preroll = le2me_64((h)->preroll); \ |
b84e9861461c
Changed the asf_file_header_t struct to read all the fields properly.
bertrand
parents:
3719
diff
changeset
|
165 (h)->flags = le2me_32((h)->flags); \ |
b84e9861461c
Changed the asf_file_header_t struct to read all the fields properly.
bertrand
parents:
3719
diff
changeset
|
166 (h)->min_packet_size = le2me_32((h)->min_packet_size); \ |
b84e9861461c
Changed the asf_file_header_t struct to read all the fields properly.
bertrand
parents:
3719
diff
changeset
|
167 (h)->max_packet_size = le2me_32((h)->max_packet_size); \ |
b84e9861461c
Changed the asf_file_header_t struct to read all the fields properly.
bertrand
parents:
3719
diff
changeset
|
168 (h)->max_bitrate = le2me_32((h)->max_bitrate); \ |
b84e9861461c
Changed the asf_file_header_t struct to read all the fields properly.
bertrand
parents:
3719
diff
changeset
|
169 } |
1342 | 170 #define le2me_ASF_content_description_t(h) { \ |
171 (h)->title_size = le2me_16((h)->title_size); \ | |
172 (h)->author_size = le2me_16((h)->author_size); \ | |
173 (h)->copyright_size = le2me_16((h)->copyright_size); \ | |
174 (h)->comment_size = le2me_16((h)->comment_size); \ | |
175 (h)->rating_size = le2me_16((h)->rating_size); \ | |
176 } | |
1485
b895f95e7657
AVI demuxer cleanups, fileformat-dependent stuff moved to priv_t
arpi
parents:
1342
diff
changeset
|
177 #define le2me_BITMAPINFOHEADER(h) { \ |
b895f95e7657
AVI demuxer cleanups, fileformat-dependent stuff moved to priv_t
arpi
parents:
1342
diff
changeset
|
178 (h)->biSize = le2me_32((h)->biSize); \ |
b895f95e7657
AVI demuxer cleanups, fileformat-dependent stuff moved to priv_t
arpi
parents:
1342
diff
changeset
|
179 (h)->biWidth = le2me_32((h)->biWidth); \ |
b895f95e7657
AVI demuxer cleanups, fileformat-dependent stuff moved to priv_t
arpi
parents:
1342
diff
changeset
|
180 (h)->biHeight = le2me_32((h)->biHeight); \ |
b895f95e7657
AVI demuxer cleanups, fileformat-dependent stuff moved to priv_t
arpi
parents:
1342
diff
changeset
|
181 (h)->biPlanes = le2me_16((h)->biPlanes); \ |
b895f95e7657
AVI demuxer cleanups, fileformat-dependent stuff moved to priv_t
arpi
parents:
1342
diff
changeset
|
182 (h)->biBitCount = le2me_16((h)->biBitCount); \ |
b895f95e7657
AVI demuxer cleanups, fileformat-dependent stuff moved to priv_t
arpi
parents:
1342
diff
changeset
|
183 (h)->biCompression = le2me_32((h)->biCompression); \ |
b895f95e7657
AVI demuxer cleanups, fileformat-dependent stuff moved to priv_t
arpi
parents:
1342
diff
changeset
|
184 (h)->biSizeImage = le2me_32((h)->biSizeImage); \ |
b895f95e7657
AVI demuxer cleanups, fileformat-dependent stuff moved to priv_t
arpi
parents:
1342
diff
changeset
|
185 (h)->biXPelsPerMeter = le2me_32((h)->biXPelsPerMeter); \ |
b895f95e7657
AVI demuxer cleanups, fileformat-dependent stuff moved to priv_t
arpi
parents:
1342
diff
changeset
|
186 (h)->biYPelsPerMeter = le2me_32((h)->biYPelsPerMeter); \ |
b895f95e7657
AVI demuxer cleanups, fileformat-dependent stuff moved to priv_t
arpi
parents:
1342
diff
changeset
|
187 (h)->biClrUsed = le2me_32((h)->biClrUsed); \ |
b895f95e7657
AVI demuxer cleanups, fileformat-dependent stuff moved to priv_t
arpi
parents:
1342
diff
changeset
|
188 (h)->biClrImportant = le2me_32((h)->biClrImportant); \ |
b895f95e7657
AVI demuxer cleanups, fileformat-dependent stuff moved to priv_t
arpi
parents:
1342
diff
changeset
|
189 } |
b895f95e7657
AVI demuxer cleanups, fileformat-dependent stuff moved to priv_t
arpi
parents:
1342
diff
changeset
|
190 #define le2me_WAVEFORMATEX(h) { \ |
b895f95e7657
AVI demuxer cleanups, fileformat-dependent stuff moved to priv_t
arpi
parents:
1342
diff
changeset
|
191 (h)->wFormatTag = le2me_16((h)->wFormatTag); \ |
b895f95e7657
AVI demuxer cleanups, fileformat-dependent stuff moved to priv_t
arpi
parents:
1342
diff
changeset
|
192 (h)->nChannels = le2me_16((h)->nChannels); \ |
b895f95e7657
AVI demuxer cleanups, fileformat-dependent stuff moved to priv_t
arpi
parents:
1342
diff
changeset
|
193 (h)->nSamplesPerSec = le2me_32((h)->nSamplesPerSec); \ |
b895f95e7657
AVI demuxer cleanups, fileformat-dependent stuff moved to priv_t
arpi
parents:
1342
diff
changeset
|
194 (h)->nAvgBytesPerSec = le2me_32((h)->nAvgBytesPerSec); \ |
b895f95e7657
AVI demuxer cleanups, fileformat-dependent stuff moved to priv_t
arpi
parents:
1342
diff
changeset
|
195 (h)->nBlockAlign = le2me_16((h)->nBlockAlign); \ |
b895f95e7657
AVI demuxer cleanups, fileformat-dependent stuff moved to priv_t
arpi
parents:
1342
diff
changeset
|
196 (h)->wBitsPerSample = le2me_16((h)->wBitsPerSample); \ |
b895f95e7657
AVI demuxer cleanups, fileformat-dependent stuff moved to priv_t
arpi
parents:
1342
diff
changeset
|
197 (h)->cbSize = le2me_16((h)->cbSize); \ |
b895f95e7657
AVI demuxer cleanups, fileformat-dependent stuff moved to priv_t
arpi
parents:
1342
diff
changeset
|
198 } |
5616
8cfce21c6013
Added big endian macro for asf_chunk_t and added defines for the ASF chunk type.
bertrand
parents:
4310
diff
changeset
|
199 #define le2me_ASF_stream_chunck_t(h) { \ |
8cfce21c6013
Added big endian macro for asf_chunk_t and added defines for the ASF chunk type.
bertrand
parents:
4310
diff
changeset
|
200 (h)->size = le2me_16((h)->size); \ |
8cfce21c6013
Added big endian macro for asf_chunk_t and added defines for the ASF chunk type.
bertrand
parents:
4310
diff
changeset
|
201 (h)->sequence_number = le2me_32((h)->sequence_number); \ |
8cfce21c6013
Added big endian macro for asf_chunk_t and added defines for the ASF chunk type.
bertrand
parents:
4310
diff
changeset
|
202 (h)->unknown = le2me_16((h)->unknown); \ |
8cfce21c6013
Added big endian macro for asf_chunk_t and added defines for the ASF chunk type.
bertrand
parents:
4310
diff
changeset
|
203 (h)->size_confirm = le2me_16((h)->size_confirm); \ |
8cfce21c6013
Added big endian macro for asf_chunk_t and added defines for the ASF chunk type.
bertrand
parents:
4310
diff
changeset
|
204 } |
1342 | 205 #else |
206 #define le2me_ASF_obj_header_t(h) /**/ | |
207 #define le2me_ASF_header_t(h) /**/ | |
208 #define le2me_ASF_stream_header_t(h) /**/ | |
209 #define le2me_ASF_file_header_t(h) /**/ | |
210 #define le2me_ASF_content_description_t(h) /**/ | |
1485
b895f95e7657
AVI demuxer cleanups, fileformat-dependent stuff moved to priv_t
arpi
parents:
1342
diff
changeset
|
211 #define le2me_BITMAPINFOHEADER(h) /**/ |
b895f95e7657
AVI demuxer cleanups, fileformat-dependent stuff moved to priv_t
arpi
parents:
1342
diff
changeset
|
212 #define le2me_WAVEFORMATEX(h) /**/ |
5616
8cfce21c6013
Added big endian macro for asf_chunk_t and added defines for the ASF chunk type.
bertrand
parents:
4310
diff
changeset
|
213 #define le2me_ASF_stream_chunck_t(h) /**/ |
1342 | 214 #endif |
215 | |
17992
2545bbd91450
Move global vars used for header parsing, etc to dewux->priv as it should
albeu
parents:
8957
diff
changeset
|
216 // priv struct for the demuxer |
2545bbd91450
Move global vars used for header parsing, etc to dewux->priv as it should
albeu
parents:
8957
diff
changeset
|
217 struct asf_priv { |
2545bbd91450
Move global vars used for header parsing, etc to dewux->priv as it should
albeu
parents:
8957
diff
changeset
|
218 ASF_header_t header; |
2545bbd91450
Move global vars used for header parsing, etc to dewux->priv as it should
albeu
parents:
8957
diff
changeset
|
219 unsigned char* packet; |
18001 | 220 int scrambling_h; |
221 int scrambling_w; | |
222 int scrambling_b; | |
17992
2545bbd91450
Move global vars used for header parsing, etc to dewux->priv as it should
albeu
parents:
8957
diff
changeset
|
223 unsigned packetsize; |
2545bbd91450
Move global vars used for header parsing, etc to dewux->priv as it should
albeu
parents:
8957
diff
changeset
|
224 double packetrate; |
29839
a2a009b24502
Calculate length of ASF files with more than 1 second precision.
reimar
parents:
29401
diff
changeset
|
225 double movielength; |
18609
bb7042d74855
Patch from John Donaghy: "fix for audio and video in dvr-ms asf files"
pacman
parents:
18001
diff
changeset
|
226 int asf_is_dvr_ms; |
bb7042d74855
Patch from John Donaghy: "fix for audio and video in dvr-ms asf files"
pacman
parents:
18001
diff
changeset
|
227 uint32_t asf_frame_state; |
bb7042d74855
Patch from John Donaghy: "fix for audio and video in dvr-ms asf files"
pacman
parents:
18001
diff
changeset
|
228 int asf_frame_start_found; |
19961
9f011e6892e8
interpolate real fps of dvr-ms files using the extended stream properties.
nicodvb
parents:
18609
diff
changeset
|
229 double dvr_last_vid_pts; |
23239 | 230 uint64_t vid_frame_ct; |
231 uint64_t play_duration; | |
232 uint64_t num_packets; | |
233 int new_vid_frame_seg; | |
234 int *vid_repdata_sizes; | |
235 int *aud_repdata_sizes; | |
236 int vid_repdata_count; | |
237 int aud_repdata_count; | |
238 uint64_t avg_vid_frame_time; | |
239 uint64_t last_key_payload_time; | |
240 uint64_t last_aud_pts; | |
241 uint64_t last_aud_diff; | |
242 int found_first_key_frame; | |
243 uint32_t last_vid_seq; | |
244 int vid_ext_timing_index; | |
245 int aud_ext_timing_index; | |
246 int vid_ext_frame_index; | |
247 int know_frame_time; | |
23357
ab5ff1c5ccaa
Set i_bps for ASF video streams according to extended stream properties
zuxy
parents:
23239
diff
changeset
|
248 unsigned bps; |
17992
2545bbd91450
Move global vars used for header parsing, etc to dewux->priv as it should
albeu
parents:
8957
diff
changeset
|
249 }; |
2545bbd91450
Move global vars used for header parsing, etc to dewux->priv as it should
albeu
parents:
8957
diff
changeset
|
250 |
26029 | 251 #endif /* MPLAYER_ASF_H */ |