annotate asf.h @ 1687:39cafa2f6060 libavformat

simplify GUIDs
author michael
date Sun, 21 Jan 2007 20:06:19 +0000
parents de18846fa25c
children 90be497b752b
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
1 /*
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
2 * Copyright (c) 2000, 2001 Fabrice Bellard.
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
3 *
1358
0899bfe4105c Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 1266
diff changeset
4 * This file is part of FFmpeg.
0899bfe4105c Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 1266
diff changeset
5 *
0899bfe4105c Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 1266
diff changeset
6 * FFmpeg is free software; you can redistribute it and/or
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
7 * modify it under the terms of the GNU Lesser General Public
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
8 * License as published by the Free Software Foundation; either
1358
0899bfe4105c Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 1266
diff changeset
9 * version 2.1 of the License, or (at your option) any later version.
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
10 *
1358
0899bfe4105c Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 1266
diff changeset
11 * FFmpeg is distributed in the hope that it will be useful,
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
14 * Lesser General Public License for more details.
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
15 *
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
16 * You should have received a copy of the GNU Lesser General Public
1358
0899bfe4105c Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 1266
diff changeset
17 * License along with FFmpeg; if not, write to the Free Software
896
edbe5c3717f9 Update licensing information: The FSF changed postal address.
diego
parents: 887
diff changeset
18 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
19 */
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
20 #define PACKET_SIZE 3200
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
21
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
22 typedef struct {
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
23 int num;
373
e47d9c8e2054 asf patch by (Konstantin Andreyev <kandreyev at bcsii dot com>)
michael
parents: 372
diff changeset
24 unsigned char seq;
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
25 /* use for reading */
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
26 AVPacket pkt;
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
27 int frag_offset;
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
28 int timestamp;
65
a58a8a53eb46 * UINTX -> uintx_t INTX -> intx_t
kabi
parents: 14
diff changeset
29 int64_t duration;
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
30
887
d70e50f1495f COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 885
diff changeset
31 int ds_span; /* descrambling */
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
32 int ds_packet_size;
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
33 int ds_chunk_size;
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
34 int ds_data_size;
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
35 int ds_silence_data;
885
da1d5db0ce5c COSMETICS: Remove all trailing whitespace.
diego
parents: 831
diff changeset
36
1206
e60bf67d9bf8 The reader ignores the size of the ASF data object and keeps on
gpoirier
parents: 904
diff changeset
37 int64_t packet_pos;
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
38
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
39 } ASFStream;
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
40
1687
39cafa2f6060 simplify GUIDs
michael
parents: 1552
diff changeset
41 typedef uint8_t GUID[16];
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
42
188
6c9d6422a2f6 update duration and start_time - add av_new_stream() usage
bellard
parents: 136
diff changeset
43 typedef struct {
887
d70e50f1495f COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 885
diff changeset
44 GUID guid; // generated by client computer
d70e50f1495f COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 885
diff changeset
45 uint64_t file_size; // in bytes
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
46 // invalid if broadcasting
887
d70e50f1495f COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 885
diff changeset
47 uint64_t create_time; // time of creation, in 100-nanosecond units since 1.1.1601
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
48 // invalid if broadcasting
887
d70e50f1495f COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 885
diff changeset
49 uint64_t packets_count; // how many packets are there in the file
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
50 // invalid if broadcasting
887
d70e50f1495f COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 885
diff changeset
51 uint64_t play_time; // play time, in 100-nanosecond units
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
52 // invalid if broadcasting
887
d70e50f1495f COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 885
diff changeset
53 uint64_t send_time; // time to send file, in 100-nanosecond units
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
54 // invalid if broadcasting (could be ignored)
887
d70e50f1495f COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 885
diff changeset
55 uint32_t preroll; // timestamp of the first packet, in milliseconds
d70e50f1495f COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 885
diff changeset
56 // if nonzero - substract from time
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
57 uint32_t ignore; // preroll is 64bit - but let's just ignore it
887
d70e50f1495f COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 885
diff changeset
58 uint32_t flags; // 0x01 - broadcast
d70e50f1495f COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 885
diff changeset
59 // 0x02 - seekable
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
60 // rest is reserved should be 0
887
d70e50f1495f COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 885
diff changeset
61 uint32_t min_pktsize; // size of a data packet
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
62 // invalid if broadcasting
887
d70e50f1495f COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 885
diff changeset
63 uint32_t max_pktsize; // shall be the same as for min_pktsize
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
64 // invalid if broadcasting
887
d70e50f1495f COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 885
diff changeset
65 uint32_t max_bitrate; // bandwith of stream in bps
d70e50f1495f COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 885
diff changeset
66 // should be the sum of bitrates of the
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
67 // individual media streams
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
68 } ASFMainHeader;
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
69
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
70
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
71 typedef struct {
716
55081ada3aad 31_ASF_compatibility_with_WMP_and_add_index.patch by (Calcium | calcium nurs or jp)
michael
parents: 373
diff changeset
72 uint32_t packet_number;
55081ada3aad 31_ASF_compatibility_with_WMP_and_add_index.patch by (Calcium | calcium nurs or jp)
michael
parents: 373
diff changeset
73 uint16_t packet_count;
55081ada3aad 31_ASF_compatibility_with_WMP_and_add_index.patch by (Calcium | calcium nurs or jp)
michael
parents: 373
diff changeset
74 } ASFIndex;
55081ada3aad 31_ASF_compatibility_with_WMP_and_add_index.patch by (Calcium | calcium nurs or jp)
michael
parents: 373
diff changeset
75
55081ada3aad 31_ASF_compatibility_with_WMP_and_add_index.patch by (Calcium | calcium nurs or jp)
michael
parents: 373
diff changeset
76
55081ada3aad 31_ASF_compatibility_with_WMP_and_add_index.patch by (Calcium | calcium nurs or jp)
michael
parents: 373
diff changeset
77 typedef struct {
373
e47d9c8e2054 asf patch by (Konstantin Andreyev <kandreyev at bcsii dot com>)
michael
parents: 372
diff changeset
78 uint32_t seqno;
e47d9c8e2054 asf patch by (Konstantin Andreyev <kandreyev at bcsii dot com>)
michael
parents: 372
diff changeset
79 unsigned int packet_size;
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
80 int is_streamed;
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
81 int asfid2avid[128]; /* conversion table from asf ID 2 AVStream ID */
887
d70e50f1495f COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 885
diff changeset
82 ASFStream streams[128]; /* it's max number and it's not that big */
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
83 /* non streamed additonnal info */
1552
de18846fa25c Minor modifications to handle mms streaming.
takis
parents: 1358
diff changeset
84 uint64_t nb_packets;
65
a58a8a53eb46 * UINTX -> uintx_t INTX -> intx_t
kabi
parents: 14
diff changeset
85 int64_t duration; /* in 100ns units */
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
86 /* packet filling */
373
e47d9c8e2054 asf patch by (Konstantin Andreyev <kandreyev at bcsii dot com>)
michael
parents: 372
diff changeset
87 unsigned char multi_payloads_present;
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
88 int packet_size_left;
373
e47d9c8e2054 asf patch by (Konstantin Andreyev <kandreyev at bcsii dot com>)
michael
parents: 372
diff changeset
89 int prev_packet_sent_time;
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
90 int packet_timestamp_start;
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
91 int packet_timestamp_end;
373
e47d9c8e2054 asf patch by (Konstantin Andreyev <kandreyev at bcsii dot com>)
michael
parents: 372
diff changeset
92 unsigned int packet_nb_payloads;
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
93 int packet_nb_frames;
65
a58a8a53eb46 * UINTX -> uintx_t INTX -> intx_t
kabi
parents: 14
diff changeset
94 uint8_t packet_buf[PACKET_SIZE];
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
95 ByteIOContext pb;
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
96 /* only for reading */
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
97 uint64_t data_offset; /* begining of the first data packet */
1206
e60bf67d9bf8 The reader ignores the size of the ASF data object and keeps on
gpoirier
parents: 904
diff changeset
98 uint64_t data_object_offset; /* data object offset (excl. GUID & size)*/
e60bf67d9bf8 The reader ignores the size of the ASF data object and keeps on
gpoirier
parents: 904
diff changeset
99 uint64_t data_object_size; /* size of the data object */
1266
5b9729f5145c fix fallback if theres no index
michael
parents: 1206
diff changeset
100 int index_read;
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
101
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
102 ASFMainHeader hdr;
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
103
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
104 int packet_flags;
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
105 int packet_property;
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
106 int packet_timestamp;
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
107 int packet_segsizetype;
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
108 int packet_segments;
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
109 int packet_seq;
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
110 int packet_replic_size;
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
111 int packet_key_frame;
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
112 int packet_padsize;
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
113 int packet_frag_offset;
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
114 int packet_frag_size;
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
115 int packet_frag_timestamp;
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
116 int packet_multi_size;
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
117 int packet_obj_size;
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
118 int packet_time_delta;
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
119 int packet_time_start;
1206
e60bf67d9bf8 The reader ignores the size of the ASF data object and keeps on
gpoirier
parents: 904
diff changeset
120 int64_t packet_pos;
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
121
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
122 int stream_index;
716
55081ada3aad 31_ASF_compatibility_with_WMP_and_add_index.patch by (Calcium | calcium nurs or jp)
michael
parents: 373
diff changeset
123
55081ada3aad 31_ASF_compatibility_with_WMP_and_add_index.patch by (Calcium | calcium nurs or jp)
michael
parents: 373
diff changeset
124
55081ada3aad 31_ASF_compatibility_with_WMP_and_add_index.patch by (Calcium | calcium nurs or jp)
michael
parents: 373
diff changeset
125 int64_t last_indexed_pts;
55081ada3aad 31_ASF_compatibility_with_WMP_and_add_index.patch by (Calcium | calcium nurs or jp)
michael
parents: 373
diff changeset
126 ASFIndex* index_ptr;
55081ada3aad 31_ASF_compatibility_with_WMP_and_add_index.patch by (Calcium | calcium nurs or jp)
michael
parents: 373
diff changeset
127 uint32_t nb_index_count;
55081ada3aad 31_ASF_compatibility_with_WMP_and_add_index.patch by (Calcium | calcium nurs or jp)
michael
parents: 373
diff changeset
128 uint32_t nb_index_memory_alloc;
55081ada3aad 31_ASF_compatibility_with_WMP_and_add_index.patch by (Calcium | calcium nurs or jp)
michael
parents: 373
diff changeset
129 uint16_t maximum_packet;
55081ada3aad 31_ASF_compatibility_with_WMP_and_add_index.patch by (Calcium | calcium nurs or jp)
michael
parents: 373
diff changeset
130
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
131 ASFStream* asf_st; /* currently decoded stream */
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
132 } ASFContext;
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
133
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
134 static const GUID asf_header = {
1687
39cafa2f6060 simplify GUIDs
michael
parents: 1552
diff changeset
135 0x30, 0x26, 0xB2, 0x75, 0x8E, 0x66, 0xCF, 0x11, 0xA6, 0xD9, 0x00, 0xAA, 0x00, 0x62, 0xCE, 0x6C
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
136 };
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
137
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
138 static const GUID file_header = {
1687
39cafa2f6060 simplify GUIDs
michael
parents: 1552
diff changeset
139 0xA1, 0xDC, 0xAB, 0x8C, 0x47, 0xA9, 0xCF, 0x11, 0x8E, 0xE4, 0x00, 0xC0, 0x0C, 0x20, 0x53, 0x65
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
140 };
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
141
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
142 static const GUID stream_header = {
1687
39cafa2f6060 simplify GUIDs
michael
parents: 1552
diff changeset
143 0x91, 0x07, 0xDC, 0xB7, 0xB7, 0xA9, 0xCF, 0x11, 0x8E, 0xE6, 0x00, 0xC0, 0x0C, 0x20, 0x53, 0x65
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
144 };
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
145
904
5d3dc3a6bbe7 audio in dvr-ms demuxing support by (John Donaghy <johnfdonaghy gmail com<)
michael
parents: 896
diff changeset
146 static const GUID ext_stream_header = {
1687
39cafa2f6060 simplify GUIDs
michael
parents: 1552
diff changeset
147 0xCB, 0xA5, 0xE6, 0x14, 0x72, 0xC6, 0x32, 0x43, 0x83, 0x99, 0xA9, 0x69, 0x52, 0x06, 0x5B, 0x5A
904
5d3dc3a6bbe7 audio in dvr-ms demuxing support by (John Donaghy <johnfdonaghy gmail com<)
michael
parents: 896
diff changeset
148 };
5d3dc3a6bbe7 audio in dvr-ms demuxing support by (John Donaghy <johnfdonaghy gmail com<)
michael
parents: 896
diff changeset
149
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
150 static const GUID audio_stream = {
1687
39cafa2f6060 simplify GUIDs
michael
parents: 1552
diff changeset
151 0x40, 0x9E, 0x69, 0xF8, 0x4D, 0x5B, 0xCF, 0x11, 0xA8, 0xFD, 0x00, 0x80, 0x5F, 0x5C, 0x44, 0x2B
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
152 };
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
153
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
154 static const GUID audio_conceal_none = {
1687
39cafa2f6060 simplify GUIDs
michael
parents: 1552
diff changeset
155 // 0x40, 0xa4, 0xf1, 0x49, 0x4ece, 0x11d0, 0xa3, 0xac, 0x00, 0xa0, 0xc9, 0x03, 0x48, 0xf6
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
156 // New value lifted from avifile
1687
39cafa2f6060 simplify GUIDs
michael
parents: 1552
diff changeset
157 0x00, 0x57, 0xfb, 0x20, 0x55, 0x5B, 0xCF, 0x11, 0xa8, 0xfd, 0x00, 0x80, 0x5f, 0x5c, 0x44, 0x2b
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
158 };
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
159
716
55081ada3aad 31_ASF_compatibility_with_WMP_and_add_index.patch by (Calcium | calcium nurs or jp)
michael
parents: 373
diff changeset
160 static const GUID audio_conceal_spread = {
1687
39cafa2f6060 simplify GUIDs
michael
parents: 1552
diff changeset
161 0x50, 0xCD, 0xC3, 0xBF, 0x8F, 0x61, 0xCF, 0x11, 0x8B, 0xB2, 0x00, 0xAA, 0x00, 0xB4, 0xE2, 0x20
716
55081ada3aad 31_ASF_compatibility_with_WMP_and_add_index.patch by (Calcium | calcium nurs or jp)
michael
parents: 373
diff changeset
162 };
55081ada3aad 31_ASF_compatibility_with_WMP_and_add_index.patch by (Calcium | calcium nurs or jp)
michael
parents: 373
diff changeset
163
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
164 static const GUID video_stream = {
1687
39cafa2f6060 simplify GUIDs
michael
parents: 1552
diff changeset
165 0xC0, 0xEF, 0x19, 0xBC, 0x4D, 0x5B, 0xCF, 0x11, 0xA8, 0xFD, 0x00, 0x80, 0x5F, 0x5C, 0x44, 0x2B
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
166 };
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
167
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
168 static const GUID video_conceal_none = {
1687
39cafa2f6060 simplify GUIDs
michael
parents: 1552
diff changeset
169 0x00, 0x57, 0xFB, 0x20, 0x55, 0x5B, 0xCF, 0x11, 0xA8, 0xFD, 0x00, 0x80, 0x5F, 0x5C, 0x44, 0x2B
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
170 };
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
171
831
8e1b338096a0 changes to ignore command media embedded in MS WMV files patch by ("Brown, Mike": mikeb, vibephone com)
michael
parents: 716
diff changeset
172 static const GUID command_stream = {
1687
39cafa2f6060 simplify GUIDs
michael
parents: 1552
diff changeset
173 0xC0, 0xCF, 0xDA, 0x59, 0xE6, 0x59, 0xD0, 0x11, 0xA3, 0xAC, 0x00, 0xA0, 0xC9, 0x03, 0x48, 0xF6
831
8e1b338096a0 changes to ignore command media embedded in MS WMV files patch by ("Brown, Mike": mikeb, vibephone com)
michael
parents: 716
diff changeset
174 };
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
175
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
176 static const GUID comment_header = {
1687
39cafa2f6060 simplify GUIDs
michael
parents: 1552
diff changeset
177 0x33, 0x26, 0xb2, 0x75, 0x8E, 0x66, 0xCF, 0x11, 0xa6, 0xd9, 0x00, 0xaa, 0x00, 0x62, 0xce, 0x6c
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
178 };
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
179
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
180 static const GUID codec_comment_header = {
1687
39cafa2f6060 simplify GUIDs
michael
parents: 1552
diff changeset
181 0x40, 0x52, 0xD1, 0x86, 0x1D, 0x31, 0xD0, 0x11, 0xA3, 0xA4, 0x00, 0xA0, 0xC9, 0x03, 0x48, 0xF6
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
182 };
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
183 static const GUID codec_comment1_header = {
1687
39cafa2f6060 simplify GUIDs
michael
parents: 1552
diff changeset
184 0x41, 0x52, 0xd1, 0x86, 0x1D, 0x31, 0xD0, 0x11, 0xa3, 0xa4, 0x00, 0xa0, 0xc9, 0x03, 0x48, 0xf6
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
185 };
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
186
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
187 static const GUID data_header = {
1687
39cafa2f6060 simplify GUIDs
michael
parents: 1552
diff changeset
188 0x36, 0x26, 0xb2, 0x75, 0x8E, 0x66, 0xCF, 0x11, 0xa6, 0xd9, 0x00, 0xaa, 0x00, 0x62, 0xce, 0x6c
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
189 };
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
190
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
191 static const GUID head1_guid = {
1687
39cafa2f6060 simplify GUIDs
michael
parents: 1552
diff changeset
192 0xb5, 0x03, 0xbf, 0x5f, 0x2E, 0xA9, 0xCF, 0x11, 0x8e, 0xe3, 0x00, 0xc0, 0x0c, 0x20, 0x53, 0x65
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
193 };
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
194
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
195 static const GUID head2_guid = {
1687
39cafa2f6060 simplify GUIDs
michael
parents: 1552
diff changeset
196 0x11, 0xd2, 0xd3, 0xab, 0xBA, 0xA9, 0xCF, 0x11, 0x8e, 0xe6, 0x00, 0xc0, 0x0c, 0x20, 0x53, 0x65
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
197 };
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
198
341
ad2a57c5467a ASF extended header parsing patch by ("Kevin Kuphal" <kevin dot kuphal at sitecity dot net>)
michael
parents: 312
diff changeset
199 static const GUID extended_content_header = {
1687
39cafa2f6060 simplify GUIDs
michael
parents: 1552
diff changeset
200 0x40, 0xA4, 0xD0, 0xD2, 0x07, 0xE3, 0xD2, 0x11, 0x97, 0xF0, 0x00, 0xA0, 0xC9, 0x5E, 0xA8, 0x50
341
ad2a57c5467a ASF extended header parsing patch by ("Kevin Kuphal" <kevin dot kuphal at sitecity dot net>)
michael
parents: 312
diff changeset
201 };
ad2a57c5467a ASF extended header parsing patch by ("Kevin Kuphal" <kevin dot kuphal at sitecity dot net>)
michael
parents: 312
diff changeset
202
716
55081ada3aad 31_ASF_compatibility_with_WMP_and_add_index.patch by (Calcium | calcium nurs or jp)
michael
parents: 373
diff changeset
203 static const GUID simple_index_header = {
1687
39cafa2f6060 simplify GUIDs
michael
parents: 1552
diff changeset
204 0x90, 0x08, 0x00, 0x33, 0xB1, 0xE5, 0xCF, 0x11, 0x89, 0xF4, 0x00, 0xA0, 0xC9, 0x03, 0x49, 0xCB
716
55081ada3aad 31_ASF_compatibility_with_WMP_and_add_index.patch by (Calcium | calcium nurs or jp)
michael
parents: 373
diff changeset
205 };
55081ada3aad 31_ASF_compatibility_with_WMP_and_add_index.patch by (Calcium | calcium nurs or jp)
michael
parents: 373
diff changeset
206
904
5d3dc3a6bbe7 audio in dvr-ms demuxing support by (John Donaghy <johnfdonaghy gmail com<)
michael
parents: 896
diff changeset
207 static const GUID ext_stream_embed_stream_header = {
1687
39cafa2f6060 simplify GUIDs
michael
parents: 1552
diff changeset
208 0xe2, 0x65, 0xfb, 0x3a, 0xEF, 0x47, 0xF2, 0x40, 0xac, 0x2c, 0x70, 0xa9, 0x0d, 0x71, 0xd3, 0x43
904
5d3dc3a6bbe7 audio in dvr-ms demuxing support by (John Donaghy <johnfdonaghy gmail com<)
michael
parents: 896
diff changeset
209 };
5d3dc3a6bbe7 audio in dvr-ms demuxing support by (John Donaghy <johnfdonaghy gmail com<)
michael
parents: 896
diff changeset
210
5d3dc3a6bbe7 audio in dvr-ms demuxing support by (John Donaghy <johnfdonaghy gmail com<)
michael
parents: 896
diff changeset
211 static const GUID ext_stream_audio_stream = {
1687
39cafa2f6060 simplify GUIDs
michael
parents: 1552
diff changeset
212 0x9d, 0x8c, 0x17, 0x31, 0xE1, 0x03, 0x28, 0x45, 0xb5, 0x82, 0x3d, 0xf9, 0xdb, 0x22, 0xf5, 0x03
904
5d3dc3a6bbe7 audio in dvr-ms demuxing support by (John Donaghy <johnfdonaghy gmail com<)
michael
parents: 896
diff changeset
213 };
5d3dc3a6bbe7 audio in dvr-ms demuxing support by (John Donaghy <johnfdonaghy gmail com<)
michael
parents: 896
diff changeset
214
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
215 /* I am not a number !!! This GUID is the one found on the PC used to
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
216 generate the stream */
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
217 static const GUID my_guid = {
1687
39cafa2f6060 simplify GUIDs
michael
parents: 1552
diff changeset
218 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
219 };
373
e47d9c8e2054 asf patch by (Konstantin Andreyev <kandreyev at bcsii dot com>)
michael
parents: 372
diff changeset
220
e47d9c8e2054 asf patch by (Konstantin Andreyev <kandreyev at bcsii dot com>)
michael
parents: 372
diff changeset
221 #define ASF_PACKET_FLAG_ERROR_CORRECTION_PRESENT 0x80 //1000 0000
e47d9c8e2054 asf patch by (Konstantin Andreyev <kandreyev at bcsii dot com>)
michael
parents: 372
diff changeset
222
e47d9c8e2054 asf patch by (Konstantin Andreyev <kandreyev at bcsii dot com>)
michael
parents: 372
diff changeset
223
e47d9c8e2054 asf patch by (Konstantin Andreyev <kandreyev at bcsii dot com>)
michael
parents: 372
diff changeset
224 // ASF data packet structure
e47d9c8e2054 asf patch by (Konstantin Andreyev <kandreyev at bcsii dot com>)
michael
parents: 372
diff changeset
225 // =========================
e47d9c8e2054 asf patch by (Konstantin Andreyev <kandreyev at bcsii dot com>)
michael
parents: 372
diff changeset
226 //
e47d9c8e2054 asf patch by (Konstantin Andreyev <kandreyev at bcsii dot com>)
michael
parents: 372
diff changeset
227 //
e47d9c8e2054 asf patch by (Konstantin Andreyev <kandreyev at bcsii dot com>)
michael
parents: 372
diff changeset
228 // -----------------------------------
e47d9c8e2054 asf patch by (Konstantin Andreyev <kandreyev at bcsii dot com>)
michael
parents: 372
diff changeset
229 // | Error Correction Data | Optional
e47d9c8e2054 asf patch by (Konstantin Andreyev <kandreyev at bcsii dot com>)
michael
parents: 372
diff changeset
230 // -----------------------------------
e47d9c8e2054 asf patch by (Konstantin Andreyev <kandreyev at bcsii dot com>)
michael
parents: 372
diff changeset
231 // | Payload Parsing Information (PPI) |
e47d9c8e2054 asf patch by (Konstantin Andreyev <kandreyev at bcsii dot com>)
michael
parents: 372
diff changeset
232 // -----------------------------------
e47d9c8e2054 asf patch by (Konstantin Andreyev <kandreyev at bcsii dot com>)
michael
parents: 372
diff changeset
233 // | Payload Data |
e47d9c8e2054 asf patch by (Konstantin Andreyev <kandreyev at bcsii dot com>)
michael
parents: 372
diff changeset
234 // -----------------------------------
e47d9c8e2054 asf patch by (Konstantin Andreyev <kandreyev at bcsii dot com>)
michael
parents: 372
diff changeset
235 // | Padding Data |
e47d9c8e2054 asf patch by (Konstantin Andreyev <kandreyev at bcsii dot com>)
michael
parents: 372
diff changeset
236 // -----------------------------------
e47d9c8e2054 asf patch by (Konstantin Andreyev <kandreyev at bcsii dot com>)
michael
parents: 372
diff changeset
237
e47d9c8e2054 asf patch by (Konstantin Andreyev <kandreyev at bcsii dot com>)
michael
parents: 372
diff changeset
238
e47d9c8e2054 asf patch by (Konstantin Andreyev <kandreyev at bcsii dot com>)
michael
parents: 372
diff changeset
239 // PPI_FLAG - Payload parsing information flags
e47d9c8e2054 asf patch by (Konstantin Andreyev <kandreyev at bcsii dot com>)
michael
parents: 372
diff changeset
240 #define ASF_PPI_FLAG_MULTIPLE_PAYLOADS_PRESENT 1
e47d9c8e2054 asf patch by (Konstantin Andreyev <kandreyev at bcsii dot com>)
michael
parents: 372
diff changeset
241
e47d9c8e2054 asf patch by (Konstantin Andreyev <kandreyev at bcsii dot com>)
michael
parents: 372
diff changeset
242 #define ASF_PPI_FLAG_SEQUENCE_FIELD_IS_BYTE 0x02 //0000 0010
e47d9c8e2054 asf patch by (Konstantin Andreyev <kandreyev at bcsii dot com>)
michael
parents: 372
diff changeset
243 #define ASF_PPI_FLAG_SEQUENCE_FIELD_IS_WORD 0x04 //0000 0100
e47d9c8e2054 asf patch by (Konstantin Andreyev <kandreyev at bcsii dot com>)
michael
parents: 372
diff changeset
244 #define ASF_PPI_FLAG_SEQUENCE_FIELD_IS_DWORD 0x06 //0000 0110
e47d9c8e2054 asf patch by (Konstantin Andreyev <kandreyev at bcsii dot com>)
michael
parents: 372
diff changeset
245 #define ASF_PPI_MASK_SEQUENCE_FIELD_SIZE 0x06 //0000 0110
e47d9c8e2054 asf patch by (Konstantin Andreyev <kandreyev at bcsii dot com>)
michael
parents: 372
diff changeset
246
e47d9c8e2054 asf patch by (Konstantin Andreyev <kandreyev at bcsii dot com>)
michael
parents: 372
diff changeset
247 #define ASF_PPI_FLAG_PADDING_LENGTH_FIELD_IS_BYTE 0x08 //0000 1000
e47d9c8e2054 asf patch by (Konstantin Andreyev <kandreyev at bcsii dot com>)
michael
parents: 372
diff changeset
248 #define ASF_PPI_FLAG_PADDING_LENGTH_FIELD_IS_WORD 0x10 //0001 0000
e47d9c8e2054 asf patch by (Konstantin Andreyev <kandreyev at bcsii dot com>)
michael
parents: 372
diff changeset
249 #define ASF_PPI_FLAG_PADDING_LENGTH_FIELD_IS_DWORD 0x18 //0001 1000
e47d9c8e2054 asf patch by (Konstantin Andreyev <kandreyev at bcsii dot com>)
michael
parents: 372
diff changeset
250 #define ASF_PPI_MASK_PADDING_LENGTH_FIELD_SIZE 0x18 //0001 1000
e47d9c8e2054 asf patch by (Konstantin Andreyev <kandreyev at bcsii dot com>)
michael
parents: 372
diff changeset
251
e47d9c8e2054 asf patch by (Konstantin Andreyev <kandreyev at bcsii dot com>)
michael
parents: 372
diff changeset
252 #define ASF_PPI_FLAG_PACKET_LENGTH_FIELD_IS_BYTE 0x20 //0010 0000
e47d9c8e2054 asf patch by (Konstantin Andreyev <kandreyev at bcsii dot com>)
michael
parents: 372
diff changeset
253 #define ASF_PPI_FLAG_PACKET_LENGTH_FIELD_IS_WORD 0x40 //0100 0000
e47d9c8e2054 asf patch by (Konstantin Andreyev <kandreyev at bcsii dot com>)
michael
parents: 372
diff changeset
254 #define ASF_PPI_FLAG_PACKET_LENGTH_FIELD_IS_DWORD 0x60 //0110 0000
e47d9c8e2054 asf patch by (Konstantin Andreyev <kandreyev at bcsii dot com>)
michael
parents: 372
diff changeset
255 #define ASF_PPI_MASK_PACKET_LENGTH_FIELD_SIZE 0x60 //0110 0000
e47d9c8e2054 asf patch by (Konstantin Andreyev <kandreyev at bcsii dot com>)
michael
parents: 372
diff changeset
256
e47d9c8e2054 asf patch by (Konstantin Andreyev <kandreyev at bcsii dot com>)
michael
parents: 372
diff changeset
257 // PL_FLAG - Payload flags
e47d9c8e2054 asf patch by (Konstantin Andreyev <kandreyev at bcsii dot com>)
michael
parents: 372
diff changeset
258 #define ASF_PL_FLAG_REPLICATED_DATA_LENGTH_FIELD_IS_BYTE 0x01 //0000 0001
e47d9c8e2054 asf patch by (Konstantin Andreyev <kandreyev at bcsii dot com>)
michael
parents: 372
diff changeset
259 #define ASF_PL_FLAG_REPLICATED_DATA_LENGTH_FIELD_IS_WORD 0x02 //0000 0010
e47d9c8e2054 asf patch by (Konstantin Andreyev <kandreyev at bcsii dot com>)
michael
parents: 372
diff changeset
260 #define ASF_PL_FLAG_REPLICATED_DATA_LENGTH_FIELD_IS_DWORD 0x03 //0000 0011
e47d9c8e2054 asf patch by (Konstantin Andreyev <kandreyev at bcsii dot com>)
michael
parents: 372
diff changeset
261 #define ASF_PL_MASK_REPLICATED_DATA_LENGTH_FIELD_SIZE 0x03 //0000 0011
e47d9c8e2054 asf patch by (Konstantin Andreyev <kandreyev at bcsii dot com>)
michael
parents: 372
diff changeset
262
e47d9c8e2054 asf patch by (Konstantin Andreyev <kandreyev at bcsii dot com>)
michael
parents: 372
diff changeset
263 #define ASF_PL_FLAG_OFFSET_INTO_MEDIA_OBJECT_LENGTH_FIELD_IS_BYTE 0x04 //0000 0100
e47d9c8e2054 asf patch by (Konstantin Andreyev <kandreyev at bcsii dot com>)
michael
parents: 372
diff changeset
264 #define ASF_PL_FLAG_OFFSET_INTO_MEDIA_OBJECT_LENGTH_FIELD_IS_WORD 0x08 //0000 1000
e47d9c8e2054 asf patch by (Konstantin Andreyev <kandreyev at bcsii dot com>)
michael
parents: 372
diff changeset
265 #define ASF_PL_FLAG_OFFSET_INTO_MEDIA_OBJECT_LENGTH_FIELD_IS_DWORD 0x0c //0000 1100
e47d9c8e2054 asf patch by (Konstantin Andreyev <kandreyev at bcsii dot com>)
michael
parents: 372
diff changeset
266 #define ASF_PL_MASK_OFFSET_INTO_MEDIA_OBJECT_LENGTH_FIELD_SIZE 0x0c //0000 1100
e47d9c8e2054 asf patch by (Konstantin Andreyev <kandreyev at bcsii dot com>)
michael
parents: 372
diff changeset
267
e47d9c8e2054 asf patch by (Konstantin Andreyev <kandreyev at bcsii dot com>)
michael
parents: 372
diff changeset
268 #define ASF_PL_FLAG_MEDIA_OBJECT_NUMBER_LENGTH_FIELD_IS_BYTE 0x10 //0001 0000
e47d9c8e2054 asf patch by (Konstantin Andreyev <kandreyev at bcsii dot com>)
michael
parents: 372
diff changeset
269 #define ASF_PL_FLAG_MEDIA_OBJECT_NUMBER_LENGTH_FIELD_IS_WORD 0x20 //0010 0000
e47d9c8e2054 asf patch by (Konstantin Andreyev <kandreyev at bcsii dot com>)
michael
parents: 372
diff changeset
270 #define ASF_PL_FLAG_MEDIA_OBJECT_NUMBER_LENGTH_FIELD_IS_DWORD 0x30 //0011 0000
e47d9c8e2054 asf patch by (Konstantin Andreyev <kandreyev at bcsii dot com>)
michael
parents: 372
diff changeset
271 #define ASF_PL_MASK_MEDIA_OBJECT_NUMBER_LENGTH_FIELD_SIZE 0x30 //0011 0000
e47d9c8e2054 asf patch by (Konstantin Andreyev <kandreyev at bcsii dot com>)
michael
parents: 372
diff changeset
272
e47d9c8e2054 asf patch by (Konstantin Andreyev <kandreyev at bcsii dot com>)
michael
parents: 372
diff changeset
273 #define ASF_PL_FLAG_STREAM_NUMBER_LENGTH_FIELD_IS_BYTE 0x40 //0100 0000
e47d9c8e2054 asf patch by (Konstantin Andreyev <kandreyev at bcsii dot com>)
michael
parents: 372
diff changeset
274 #define ASF_PL_MASK_STREAM_NUMBER_LENGTH_FIELD_SIZE 0xc0 //1100 0000
e47d9c8e2054 asf patch by (Konstantin Andreyev <kandreyev at bcsii dot com>)
michael
parents: 372
diff changeset
275
e47d9c8e2054 asf patch by (Konstantin Andreyev <kandreyev at bcsii dot com>)
michael
parents: 372
diff changeset
276 #define ASF_PL_FLAG_PAYLOAD_LENGTH_FIELD_IS_BYTE 0x40 //0100 0000
e47d9c8e2054 asf patch by (Konstantin Andreyev <kandreyev at bcsii dot com>)
michael
parents: 372
diff changeset
277 #define ASF_PL_FLAG_PAYLOAD_LENGTH_FIELD_IS_WORD 0x80 //1000 0000
e47d9c8e2054 asf patch by (Konstantin Andreyev <kandreyev at bcsii dot com>)
michael
parents: 372
diff changeset
278 #define ASF_PL_MASK_PAYLOAD_LENGTH_FIELD_SIZE 0xc0 //1100 0000
e47d9c8e2054 asf patch by (Konstantin Andreyev <kandreyev at bcsii dot com>)
michael
parents: 372
diff changeset
279
e47d9c8e2054 asf patch by (Konstantin Andreyev <kandreyev at bcsii dot com>)
michael
parents: 372
diff changeset
280 #define ASF_PL_FLAG_KEY_FRAME 0x80 //1000 0000