annotate libmpdemux/asf.h @ 8763:19e96e60a3d0

Speed optimizations (runs twise as fast) and bugfix (wrong cutoff frequency buffer over run noise and garbeled output when wrong input format)
author anders
date Sat, 04 Jan 2003 06:19:25 +0000
parents a957cc0b89a4
children 36a5cdca733b
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1000
40b11384693b Modified functions prototype.
bertrand
parents: 904
diff changeset
1 #ifndef __ASF_H
40b11384693b Modified functions prototype.
bertrand
parents: 904
diff changeset
2 #define __ASF_H
833
b8cecdc0c67f Starting implementation of ASF network streaming.
bertrand
parents:
diff changeset
3
2555
66837325b929 config.h cleanup, few things added to steram/demuxer headers
arpi
parents: 2489
diff changeset
4 //#include "config.h" /* for WORDS_BIGENDIAN */
833
b8cecdc0c67f Starting implementation of ASF network streaming.
bertrand
parents:
diff changeset
5 #include <inttypes.h>
1342
baf646413408 ASF support for non-x86 cpus
jkeil
parents: 1000
diff changeset
6 #include "bswap.h"
904
11879db9d4cc Added some functions prototypes.
bertrand
parents: 871
diff changeset
7
871
ab94c4cf96d8 Continue implementation of ASF streaming.
bertrand
parents: 833
diff changeset
8 #ifndef MIN
ab94c4cf96d8 Continue implementation of ASF streaming.
bertrand
parents: 833
diff changeset
9 #define MIN(a,b) ((a<b)?a:b)
ab94c4cf96d8 Continue implementation of ASF streaming.
bertrand
parents: 833
diff changeset
10 #endif
ab94c4cf96d8 Continue implementation of ASF streaming.
bertrand
parents: 833
diff changeset
11
833
b8cecdc0c67f Starting implementation of ASF network streaming.
bertrand
parents:
diff changeset
12 ///////////////////////
b8cecdc0c67f Starting implementation of ASF network streaming.
bertrand
parents:
diff changeset
13 // MS GUID definition
b8cecdc0c67f Starting implementation of ASF network streaming.
bertrand
parents:
diff changeset
14 ///////////////////////
b8cecdc0c67f Starting implementation of ASF network streaming.
bertrand
parents:
diff changeset
15 #ifndef GUID_DEFINED
b8cecdc0c67f Starting implementation of ASF network streaming.
bertrand
parents:
diff changeset
16 #define GUID_DEFINED
b8cecdc0c67f Starting implementation of ASF network streaming.
bertrand
parents:
diff changeset
17 // Size of GUID is 16 bytes!
b8cecdc0c67f Starting implementation of ASF network streaming.
bertrand
parents:
diff changeset
18 typedef struct __attribute__((packed)) {
b8cecdc0c67f Starting implementation of ASF network streaming.
bertrand
parents:
diff changeset
19 uint32_t Data1; // 4 bytes
b8cecdc0c67f Starting implementation of ASF network streaming.
bertrand
parents:
diff changeset
20 uint16_t Data2; // 2 bytes
b8cecdc0c67f Starting implementation of ASF network streaming.
bertrand
parents:
diff changeset
21 uint16_t Data3; // 2 bytes
b8cecdc0c67f Starting implementation of ASF network streaming.
bertrand
parents:
diff changeset
22 uint8_t Data4[8]; // 8 bytes
b8cecdc0c67f Starting implementation of ASF network streaming.
bertrand
parents:
diff changeset
23 } GUID_t;
b8cecdc0c67f Starting implementation of ASF network streaming.
bertrand
parents:
diff changeset
24 #endif
b8cecdc0c67f Starting implementation of ASF network streaming.
bertrand
parents:
diff changeset
25
b8cecdc0c67f Starting implementation of ASF network streaming.
bertrand
parents:
diff changeset
26 ///////////////////////
b8cecdc0c67f Starting implementation of ASF network streaming.
bertrand
parents:
diff changeset
27 // ASF Object Header
b8cecdc0c67f Starting implementation of ASF network streaming.
bertrand
parents:
diff changeset
28 ///////////////////////
b8cecdc0c67f Starting implementation of ASF network streaming.
bertrand
parents:
diff changeset
29 typedef struct __attribute__((packed)) {
b8cecdc0c67f Starting implementation of ASF network streaming.
bertrand
parents:
diff changeset
30 uint8_t guid[16];
b8cecdc0c67f Starting implementation of ASF network streaming.
bertrand
parents:
diff changeset
31 uint64_t size;
b8cecdc0c67f Starting implementation of ASF network streaming.
bertrand
parents:
diff changeset
32 } ASF_obj_header_t;
b8cecdc0c67f Starting implementation of ASF network streaming.
bertrand
parents:
diff changeset
33
b8cecdc0c67f Starting implementation of ASF network streaming.
bertrand
parents:
diff changeset
34 ////////////////
b8cecdc0c67f Starting implementation of ASF network streaming.
bertrand
parents:
diff changeset
35 // ASF Header
b8cecdc0c67f Starting implementation of ASF network streaming.
bertrand
parents:
diff changeset
36 ////////////////
b8cecdc0c67f Starting implementation of ASF network streaming.
bertrand
parents:
diff changeset
37 typedef struct __attribute__((packed)) {
b8cecdc0c67f Starting implementation of ASF network streaming.
bertrand
parents:
diff changeset
38 ASF_obj_header_t objh;
b8cecdc0c67f Starting implementation of ASF network streaming.
bertrand
parents:
diff changeset
39 uint32_t cno; // number of subchunks
b8cecdc0c67f Starting implementation of ASF network streaming.
bertrand
parents:
diff changeset
40 uint8_t v1; // unknown (0x01)
b8cecdc0c67f Starting implementation of ASF network streaming.
bertrand
parents:
diff changeset
41 uint8_t v2; // unknown (0x02)
b8cecdc0c67f Starting implementation of ASF network streaming.
bertrand
parents:
diff changeset
42 } ASF_header_t;
b8cecdc0c67f Starting implementation of ASF network streaming.
bertrand
parents:
diff changeset
43
b8cecdc0c67f Starting implementation of ASF network streaming.
bertrand
parents:
diff changeset
44 /////////////////////
b8cecdc0c67f Starting implementation of ASF network streaming.
bertrand
parents:
diff changeset
45 // ASF File Header
b8cecdc0c67f Starting implementation of ASF network streaming.
bertrand
parents:
diff changeset
46 /////////////////////
4288
b84e9861461c Changed the asf_file_header_t struct to read all the fields properly.
bertrand
parents: 3719
diff changeset
47 typedef struct __attribute__((packed)) {
b84e9861461c Changed the asf_file_header_t struct to read all the fields properly.
bertrand
parents: 3719
diff changeset
48 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
49 uint64_t file_size;
b84e9861461c Changed the asf_file_header_t struct to read all the fields properly.
bertrand
parents: 3719
diff changeset
50 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
51 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
52 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
53 uint64_t send_duration; //Duration of the playback UINT64 8
b84e9861461c Changed the asf_file_header_t struct to read all the fields properly.
bertrand
parents: 3719
diff changeset
54 uint64_t preroll; //Time to bufferize before playing UINT32 4
b84e9861461c Changed the asf_file_header_t struct to read all the fields properly.
bertrand
parents: 3719
diff changeset
55 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
56 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
57 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
58 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
59 } ASF_file_header_t;
833
b8cecdc0c67f Starting implementation of ASF network streaming.
bertrand
parents:
diff changeset
60
b8cecdc0c67f Starting implementation of ASF network streaming.
bertrand
parents:
diff changeset
61 ///////////////////////
b8cecdc0c67f Starting implementation of ASF network streaming.
bertrand
parents:
diff changeset
62 // ASF Stream Header
b8cecdc0c67f Starting implementation of ASF network streaming.
bertrand
parents:
diff changeset
63 ///////////////////////
b8cecdc0c67f Starting implementation of ASF network streaming.
bertrand
parents:
diff changeset
64 typedef struct __attribute__((packed)) {
b8cecdc0c67f Starting implementation of ASF network streaming.
bertrand
parents:
diff changeset
65 uint8_t type[16]; // Stream type (audio/video) GUID 16
b8cecdc0c67f Starting implementation of ASF network streaming.
bertrand
parents:
diff changeset
66 uint8_t concealment[16]; // Audio error concealment type GUID 16
b8cecdc0c67f Starting implementation of ASF network streaming.
bertrand
parents:
diff changeset
67 uint64_t unk1; // Unknown, maybe reserved ( usually contains 0 ) UINT64 8
b8cecdc0c67f Starting implementation of ASF network streaming.
bertrand
parents:
diff changeset
68 uint32_t type_size; //Total size of type-specific data UINT32 4
b8cecdc0c67f Starting implementation of ASF network streaming.
bertrand
parents:
diff changeset
69 uint32_t stream_size; //Size of stream-specific data UINT32 4
b8cecdc0c67f Starting implementation of ASF network streaming.
bertrand
parents:
diff changeset
70 uint16_t stream_no; //Stream number UINT16 2
b8cecdc0c67f Starting implementation of ASF network streaming.
bertrand
parents:
diff changeset
71 uint32_t unk2; //Unknown UINT32 4
b8cecdc0c67f Starting implementation of ASF network streaming.
bertrand
parents:
diff changeset
72 } ASF_stream_header_t;
b8cecdc0c67f Starting implementation of ASF network streaming.
bertrand
parents:
diff changeset
73
b8cecdc0c67f Starting implementation of ASF network streaming.
bertrand
parents:
diff changeset
74 ///////////////////////////
b8cecdc0c67f Starting implementation of ASF network streaming.
bertrand
parents:
diff changeset
75 // ASF Content Description
b8cecdc0c67f Starting implementation of ASF network streaming.
bertrand
parents:
diff changeset
76 ///////////////////////////
b8cecdc0c67f Starting implementation of ASF network streaming.
bertrand
parents:
diff changeset
77 typedef struct __attribute__((packed)) {
b8cecdc0c67f Starting implementation of ASF network streaming.
bertrand
parents:
diff changeset
78 uint16_t title_size;
b8cecdc0c67f Starting implementation of ASF network streaming.
bertrand
parents:
diff changeset
79 uint16_t author_size;
b8cecdc0c67f Starting implementation of ASF network streaming.
bertrand
parents:
diff changeset
80 uint16_t copyright_size;
b8cecdc0c67f Starting implementation of ASF network streaming.
bertrand
parents:
diff changeset
81 uint16_t comment_size;
b8cecdc0c67f Starting implementation of ASF network streaming.
bertrand
parents:
diff changeset
82 uint16_t rating_size;
b8cecdc0c67f Starting implementation of ASF network streaming.
bertrand
parents:
diff changeset
83 } ASF_content_description_t;
b8cecdc0c67f Starting implementation of ASF network streaming.
bertrand
parents:
diff changeset
84
b8cecdc0c67f Starting implementation of ASF network streaming.
bertrand
parents:
diff changeset
85 ////////////////////////
b8cecdc0c67f Starting implementation of ASF network streaming.
bertrand
parents:
diff changeset
86 // ASF Segment Header
b8cecdc0c67f Starting implementation of ASF network streaming.
bertrand
parents:
diff changeset
87 ////////////////////////
b8cecdc0c67f Starting implementation of ASF network streaming.
bertrand
parents:
diff changeset
88 typedef struct __attribute__((packed)) {
b8cecdc0c67f Starting implementation of ASF network streaming.
bertrand
parents:
diff changeset
89 uint8_t streamno;
b8cecdc0c67f Starting implementation of ASF network streaming.
bertrand
parents:
diff changeset
90 uint8_t seq;
b8cecdc0c67f Starting implementation of ASF network streaming.
bertrand
parents:
diff changeset
91 uint32_t x;
b8cecdc0c67f Starting implementation of ASF network streaming.
bertrand
parents:
diff changeset
92 uint8_t flag;
b8cecdc0c67f Starting implementation of ASF network streaming.
bertrand
parents:
diff changeset
93 } ASF_segmhdr_t;
b8cecdc0c67f Starting implementation of ASF network streaming.
bertrand
parents:
diff changeset
94
b8cecdc0c67f Starting implementation of ASF network streaming.
bertrand
parents:
diff changeset
95 //////////////////////
b8cecdc0c67f Starting implementation of ASF network streaming.
bertrand
parents:
diff changeset
96 // ASF Stream Chunck
b8cecdc0c67f Starting implementation of ASF network streaming.
bertrand
parents:
diff changeset
97 //////////////////////
b8cecdc0c67f Starting implementation of ASF network streaming.
bertrand
parents:
diff changeset
98 typedef struct __attribute__((packed)) {
b8cecdc0c67f Starting implementation of ASF network streaming.
bertrand
parents:
diff changeset
99 uint16_t type;
871
ab94c4cf96d8 Continue implementation of ASF streaming.
bertrand
parents: 833
diff changeset
100 uint16_t size;
833
b8cecdc0c67f Starting implementation of ASF network streaming.
bertrand
parents:
diff changeset
101 uint32_t sequence_number;
b8cecdc0c67f Starting implementation of ASF network streaming.
bertrand
parents:
diff changeset
102 uint16_t unknown;
871
ab94c4cf96d8 Continue implementation of ASF streaming.
bertrand
parents: 833
diff changeset
103 uint16_t size_confirm;
833
b8cecdc0c67f Starting implementation of ASF network streaming.
bertrand
parents:
diff changeset
104 } ASF_stream_chunck_t;
b8cecdc0c67f Starting implementation of ASF network streaming.
bertrand
parents:
diff changeset
105
5616
8cfce21c6013 Added big endian macro for asf_chunk_t and added defines for the ASF chunk type.
bertrand
parents: 4310
diff changeset
106 // Definition of the stream type
8cfce21c6013 Added big endian macro for asf_chunk_t and added defines for the ASF chunk type.
bertrand
parents: 4310
diff changeset
107 #ifdef WORDS_BIGENDIAN
8cfce21c6013 Added big endian macro for asf_chunk_t and added defines for the ASF chunk type.
bertrand
parents: 4310
diff changeset
108 #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
109 #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
110 #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
111 #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
112 #else
8cfce21c6013 Added big endian macro for asf_chunk_t and added defines for the ASF chunk type.
bertrand
parents: 4310
diff changeset
113 #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
114 #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
115 #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
116 #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
117 #endif
833
b8cecdc0c67f Starting implementation of ASF network streaming.
bertrand
parents:
diff changeset
118
b8cecdc0c67f Starting implementation of ASF network streaming.
bertrand
parents:
diff changeset
119 // Definition of the differents type of ASF streaming
b8cecdc0c67f Starting implementation of ASF network streaming.
bertrand
parents:
diff changeset
120 typedef enum {
b8cecdc0c67f Starting implementation of ASF network streaming.
bertrand
parents:
diff changeset
121 ASF_Unknown_e,
b8cecdc0c67f Starting implementation of ASF network streaming.
bertrand
parents:
diff changeset
122 ASF_Live_e,
b8cecdc0c67f Starting implementation of ASF network streaming.
bertrand
parents:
diff changeset
123 ASF_Prerecorded_e,
2489
0ecc1b4f7cf8 Added ASF http server streaming (Not mms streaming).
bertrand
parents: 2310
diff changeset
124 ASF_Redirector_e,
6676
a957cc0b89a4 Added ASF_Authenticate as an asf stream type.
bertrand
parents: 6644
diff changeset
125 ASF_PlainText_e,
a957cc0b89a4 Added ASF_Authenticate as an asf stream type.
bertrand
parents: 6644
diff changeset
126 ASF_Authenticate_e
833
b8cecdc0c67f Starting implementation of ASF network streaming.
bertrand
parents:
diff changeset
127 } ASF_StreamType_e;
b8cecdc0c67f Starting implementation of ASF network streaming.
bertrand
parents:
diff changeset
128
6644
f3153f8d4fbe Moved the asf_http_streaming_ctrl_t struct from asf_streaming.c
bertrand
parents: 5616
diff changeset
129 typedef struct {
f3153f8d4fbe Moved the asf_http_streaming_ctrl_t struct from asf_streaming.c
bertrand
parents: 5616
diff changeset
130 ASF_StreamType_e streaming_type;
f3153f8d4fbe Moved the asf_http_streaming_ctrl_t struct from asf_streaming.c
bertrand
parents: 5616
diff changeset
131 int request;
f3153f8d4fbe Moved the asf_http_streaming_ctrl_t struct from asf_streaming.c
bertrand
parents: 5616
diff changeset
132 int packet_size;
f3153f8d4fbe Moved the asf_http_streaming_ctrl_t struct from asf_streaming.c
bertrand
parents: 5616
diff changeset
133 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
134 int audio_id, video_id;
f3153f8d4fbe Moved the asf_http_streaming_ctrl_t struct from asf_streaming.c
bertrand
parents: 5616
diff changeset
135 } asf_http_streaming_ctrl_t;
f3153f8d4fbe Moved the asf_http_streaming_ctrl_t struct from asf_streaming.c
bertrand
parents: 5616
diff changeset
136
904
11879db9d4cc Added some functions prototypes.
bertrand
parents: 871
diff changeset
137
1342
baf646413408 ASF support for non-x86 cpus
jkeil
parents: 1000
diff changeset
138 /*
baf646413408 ASF support for non-x86 cpus
jkeil
parents: 1000
diff changeset
139 * Some macros to swap little endian structures read from an ASF file
baf646413408 ASF support for non-x86 cpus
jkeil
parents: 1000
diff changeset
140 * into machine endian format
baf646413408 ASF support for non-x86 cpus
jkeil
parents: 1000
diff changeset
141 */
baf646413408 ASF support for non-x86 cpus
jkeil
parents: 1000
diff changeset
142 #ifdef WORDS_BIGENDIAN
baf646413408 ASF support for non-x86 cpus
jkeil
parents: 1000
diff changeset
143 #define le2me_ASF_obj_header_t(h) { \
baf646413408 ASF support for non-x86 cpus
jkeil
parents: 1000
diff changeset
144 (h)->size = le2me_64((h)->size); \
baf646413408 ASF support for non-x86 cpus
jkeil
parents: 1000
diff changeset
145 }
baf646413408 ASF support for non-x86 cpus
jkeil
parents: 1000
diff changeset
146 #define le2me_ASF_header_t(h) { \
baf646413408 ASF support for non-x86 cpus
jkeil
parents: 1000
diff changeset
147 le2me_ASF_obj_header_t(&(h)->objh); \
baf646413408 ASF support for non-x86 cpus
jkeil
parents: 1000
diff changeset
148 (h)->cno = le2me_32((h)->cno); \
baf646413408 ASF support for non-x86 cpus
jkeil
parents: 1000
diff changeset
149 }
baf646413408 ASF support for non-x86 cpus
jkeil
parents: 1000
diff changeset
150 #define le2me_ASF_stream_header_t(h) { \
baf646413408 ASF support for non-x86 cpus
jkeil
parents: 1000
diff changeset
151 (h)->unk1 = le2me_64((h)->unk1); \
baf646413408 ASF support for non-x86 cpus
jkeil
parents: 1000
diff changeset
152 (h)->type_size = le2me_32((h)->type_size); \
baf646413408 ASF support for non-x86 cpus
jkeil
parents: 1000
diff changeset
153 (h)->stream_size = le2me_32((h)->stream_size); \
baf646413408 ASF support for non-x86 cpus
jkeil
parents: 1000
diff changeset
154 (h)->stream_no = le2me_16((h)->stream_no); \
baf646413408 ASF support for non-x86 cpus
jkeil
parents: 1000
diff changeset
155 (h)->unk2 = le2me_32((h)->unk2); \
baf646413408 ASF support for non-x86 cpus
jkeil
parents: 1000
diff changeset
156 }
4288
b84e9861461c Changed the asf_file_header_t struct to read all the fields properly.
bertrand
parents: 3719
diff changeset
157 #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
158 (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
159 (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
160 (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
161 (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
162 (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
163 (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
164 (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
165 (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
166 (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
167 (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
168 }
1342
baf646413408 ASF support for non-x86 cpus
jkeil
parents: 1000
diff changeset
169 #define le2me_ASF_content_description_t(h) { \
baf646413408 ASF support for non-x86 cpus
jkeil
parents: 1000
diff changeset
170 (h)->title_size = le2me_16((h)->title_size); \
baf646413408 ASF support for non-x86 cpus
jkeil
parents: 1000
diff changeset
171 (h)->author_size = le2me_16((h)->author_size); \
baf646413408 ASF support for non-x86 cpus
jkeil
parents: 1000
diff changeset
172 (h)->copyright_size = le2me_16((h)->copyright_size); \
baf646413408 ASF support for non-x86 cpus
jkeil
parents: 1000
diff changeset
173 (h)->comment_size = le2me_16((h)->comment_size); \
baf646413408 ASF support for non-x86 cpus
jkeil
parents: 1000
diff changeset
174 (h)->rating_size = le2me_16((h)->rating_size); \
baf646413408 ASF support for non-x86 cpus
jkeil
parents: 1000
diff changeset
175 }
1485
b895f95e7657 AVI demuxer cleanups, fileformat-dependent stuff moved to priv_t
arpi
parents: 1342
diff changeset
176 #define le2me_BITMAPINFOHEADER(h) { \
b895f95e7657 AVI demuxer cleanups, fileformat-dependent stuff moved to priv_t
arpi
parents: 1342
diff changeset
177 (h)->biSize = le2me_32((h)->biSize); \
b895f95e7657 AVI demuxer cleanups, fileformat-dependent stuff moved to priv_t
arpi
parents: 1342
diff changeset
178 (h)->biWidth = le2me_32((h)->biWidth); \
b895f95e7657 AVI demuxer cleanups, fileformat-dependent stuff moved to priv_t
arpi
parents: 1342
diff changeset
179 (h)->biHeight = le2me_32((h)->biHeight); \
b895f95e7657 AVI demuxer cleanups, fileformat-dependent stuff moved to priv_t
arpi
parents: 1342
diff changeset
180 (h)->biPlanes = le2me_16((h)->biPlanes); \
b895f95e7657 AVI demuxer cleanups, fileformat-dependent stuff moved to priv_t
arpi
parents: 1342
diff changeset
181 (h)->biBitCount = le2me_16((h)->biBitCount); \
b895f95e7657 AVI demuxer cleanups, fileformat-dependent stuff moved to priv_t
arpi
parents: 1342
diff changeset
182 (h)->biCompression = le2me_32((h)->biCompression); \
b895f95e7657 AVI demuxer cleanups, fileformat-dependent stuff moved to priv_t
arpi
parents: 1342
diff changeset
183 (h)->biSizeImage = le2me_32((h)->biSizeImage); \
b895f95e7657 AVI demuxer cleanups, fileformat-dependent stuff moved to priv_t
arpi
parents: 1342
diff changeset
184 (h)->biXPelsPerMeter = le2me_32((h)->biXPelsPerMeter); \
b895f95e7657 AVI demuxer cleanups, fileformat-dependent stuff moved to priv_t
arpi
parents: 1342
diff changeset
185 (h)->biYPelsPerMeter = le2me_32((h)->biYPelsPerMeter); \
b895f95e7657 AVI demuxer cleanups, fileformat-dependent stuff moved to priv_t
arpi
parents: 1342
diff changeset
186 (h)->biClrUsed = le2me_32((h)->biClrUsed); \
b895f95e7657 AVI demuxer cleanups, fileformat-dependent stuff moved to priv_t
arpi
parents: 1342
diff changeset
187 (h)->biClrImportant = le2me_32((h)->biClrImportant); \
b895f95e7657 AVI demuxer cleanups, fileformat-dependent stuff moved to priv_t
arpi
parents: 1342
diff changeset
188 }
b895f95e7657 AVI demuxer cleanups, fileformat-dependent stuff moved to priv_t
arpi
parents: 1342
diff changeset
189 #define le2me_WAVEFORMATEX(h) { \
b895f95e7657 AVI demuxer cleanups, fileformat-dependent stuff moved to priv_t
arpi
parents: 1342
diff changeset
190 (h)->wFormatTag = le2me_16((h)->wFormatTag); \
b895f95e7657 AVI demuxer cleanups, fileformat-dependent stuff moved to priv_t
arpi
parents: 1342
diff changeset
191 (h)->nChannels = le2me_16((h)->nChannels); \
b895f95e7657 AVI demuxer cleanups, fileformat-dependent stuff moved to priv_t
arpi
parents: 1342
diff changeset
192 (h)->nSamplesPerSec = le2me_32((h)->nSamplesPerSec); \
b895f95e7657 AVI demuxer cleanups, fileformat-dependent stuff moved to priv_t
arpi
parents: 1342
diff changeset
193 (h)->nAvgBytesPerSec = le2me_32((h)->nAvgBytesPerSec); \
b895f95e7657 AVI demuxer cleanups, fileformat-dependent stuff moved to priv_t
arpi
parents: 1342
diff changeset
194 (h)->nBlockAlign = le2me_16((h)->nBlockAlign); \
b895f95e7657 AVI demuxer cleanups, fileformat-dependent stuff moved to priv_t
arpi
parents: 1342
diff changeset
195 (h)->wBitsPerSample = le2me_16((h)->wBitsPerSample); \
b895f95e7657 AVI demuxer cleanups, fileformat-dependent stuff moved to priv_t
arpi
parents: 1342
diff changeset
196 (h)->cbSize = le2me_16((h)->cbSize); \
b895f95e7657 AVI demuxer cleanups, fileformat-dependent stuff moved to priv_t
arpi
parents: 1342
diff changeset
197 }
5616
8cfce21c6013 Added big endian macro for asf_chunk_t and added defines for the ASF chunk type.
bertrand
parents: 4310
diff changeset
198 #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
199 (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
200 (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
201 (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
202 (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
203 }
1342
baf646413408 ASF support for non-x86 cpus
jkeil
parents: 1000
diff changeset
204 #else
baf646413408 ASF support for non-x86 cpus
jkeil
parents: 1000
diff changeset
205 #define le2me_ASF_obj_header_t(h) /**/
baf646413408 ASF support for non-x86 cpus
jkeil
parents: 1000
diff changeset
206 #define le2me_ASF_header_t(h) /**/
baf646413408 ASF support for non-x86 cpus
jkeil
parents: 1000
diff changeset
207 #define le2me_ASF_stream_header_t(h) /**/
baf646413408 ASF support for non-x86 cpus
jkeil
parents: 1000
diff changeset
208 #define le2me_ASF_file_header_t(h) /**/
baf646413408 ASF support for non-x86 cpus
jkeil
parents: 1000
diff changeset
209 #define le2me_ASF_content_description_t(h) /**/
1485
b895f95e7657 AVI demuxer cleanups, fileformat-dependent stuff moved to priv_t
arpi
parents: 1342
diff changeset
210 #define le2me_BITMAPINFOHEADER(h) /**/
b895f95e7657 AVI demuxer cleanups, fileformat-dependent stuff moved to priv_t
arpi
parents: 1342
diff changeset
211 #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
212 #define le2me_ASF_stream_chunck_t(h) /**/
1342
baf646413408 ASF support for non-x86 cpus
jkeil
parents: 1000
diff changeset
213 #endif
baf646413408 ASF support for non-x86 cpus
jkeil
parents: 1000
diff changeset
214
baf646413408 ASF support for non-x86 cpus
jkeil
parents: 1000
diff changeset
215 #endif