annotate asf.h @ 6455:3f50c7effad1 libavformat

rtsp: 10l, try to update the correct rtp stream This fixes a bug from rev 22917. Now RTSP streams where the individual RTCP sender reports aren't sent at the same time actually are synced properly.
author mstorsjo
date Fri, 03 Sep 2010 07:10:21 +0000
parents e4d729e25e97
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
1 /*
4251
77e0c7511d41 cosmetics: Remove pointless period after copyright statement non-sentences.
diego
parents: 4121
diff changeset
2 * Copyright (c) 2000, 2001 Fabrice Bellard
0
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 */
2171
a6d6b2b19341 include all prerequisites in header files
mru
parents: 1806
diff changeset
20
3852
1b6245500d8c Globally rename the header inclusion guard names.
stefano
parents: 2856
diff changeset
21 #ifndef AVFORMAT_ASF_H
1b6245500d8c Globally rename the header inclusion guard names.
stefano
parents: 2856
diff changeset
22 #define AVFORMAT_ASF_H
2172
92f61ed53965 add multiple inclusion guards to headers
mru
parents: 2171
diff changeset
23
2171
a6d6b2b19341 include all prerequisites in header files
mru
parents: 1806
diff changeset
24 #include <stdint.h>
a6d6b2b19341 include all prerequisites in header files
mru
parents: 1806
diff changeset
25 #include "avformat.h"
4618
5b9eddbee9c4 Add some basic metadata conversion tables for matroska and asf.
aurel
parents: 4593
diff changeset
26 #include "metadata.h"
2171
a6d6b2b19341 include all prerequisites in header files
mru
parents: 1806
diff changeset
27
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
28 #define PACKET_SIZE 3200
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
29
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
30 typedef struct {
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
31 int num;
373
e47d9c8e2054 asf patch by (Konstantin Andreyev <kandreyev at bcsii dot com>)
michael
parents: 372
diff changeset
32 unsigned char seq;
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
33 /* use for reading */
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
34 AVPacket pkt;
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
35 int frag_offset;
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
36 int timestamp;
65
a58a8a53eb46 * UINTX -> uintx_t INTX -> intx_t
kabi
parents: 14
diff changeset
37 int64_t duration;
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
38
887
d70e50f1495f COSMETICS: tabs --> spaces, some prettyprinting
diego
parents: 885
diff changeset
39 int ds_span; /* descrambling */
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
40 int ds_packet_size;
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
41 int ds_chunk_size;
885
da1d5db0ce5c COSMETICS: Remove all trailing whitespace.
diego
parents: 831
diff changeset
42
1206
e60bf67d9bf8 The reader ignores the size of the ASF data object and keeps on
gpoirier
parents: 904
diff changeset
43 int64_t packet_pos;
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
44
4924
c090f960fc8a Per-stream language-tags extraction in asfdec.
benoit
parents: 4748
diff changeset
45 uint16_t stream_language_index;
c090f960fc8a Per-stream language-tags extraction in asfdec.
benoit
parents: 4748
diff changeset
46
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
47 } ASFStream;
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
48
4748
86dd0cab30d3 Rename GUID typedef to ff_asf_guid to fix MinGW compilation failure
reimar
parents: 4618
diff changeset
49 typedef uint8_t ff_asf_guid[16];
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
50
188
6c9d6422a2f6 update duration and start_time - add av_new_stream() usage
bellard
parents: 136
diff changeset
51 typedef struct {
4748
86dd0cab30d3 Rename GUID typedef to ff_asf_guid to fix MinGW compilation failure
reimar
parents: 4618
diff changeset
52 ff_asf_guid guid; ///< generated by client computer
1705
48ab789094be doxygenize comments
michael
parents: 1701
diff changeset
53 uint64_t file_size; /**< in bytes
48ab789094be doxygenize comments
michael
parents: 1701
diff changeset
54 * invalid if broadcasting */
48ab789094be doxygenize comments
michael
parents: 1701
diff changeset
55 uint64_t create_time; /**< time of creation, in 100-nanosecond units since 1.1.1601
48ab789094be doxygenize comments
michael
parents: 1701
diff changeset
56 * invalid if broadcasting */
48ab789094be doxygenize comments
michael
parents: 1701
diff changeset
57 uint64_t play_time; /**< play time, in 100-nanosecond units
48ab789094be doxygenize comments
michael
parents: 1701
diff changeset
58 * invalid if broadcasting */
48ab789094be doxygenize comments
michael
parents: 1701
diff changeset
59 uint64_t send_time; /**< time to send file, in 100-nanosecond units
48ab789094be doxygenize comments
michael
parents: 1701
diff changeset
60 * invalid if broadcasting (could be ignored) */
48ab789094be doxygenize comments
michael
parents: 1701
diff changeset
61 uint32_t preroll; /**< timestamp of the first packet, in milliseconds
2789
6716e2fdc5cb spelling
vitor
parents: 2620
diff changeset
62 * if nonzero - subtract from time */
1705
48ab789094be doxygenize comments
michael
parents: 1701
diff changeset
63 uint32_t ignore; ///< preroll is 64bit - but let's just ignore it
48ab789094be doxygenize comments
michael
parents: 1701
diff changeset
64 uint32_t flags; /**< 0x01 - broadcast
48ab789094be doxygenize comments
michael
parents: 1701
diff changeset
65 * 0x02 - seekable
48ab789094be doxygenize comments
michael
parents: 1701
diff changeset
66 * rest is reserved should be 0 */
48ab789094be doxygenize comments
michael
parents: 1701
diff changeset
67 uint32_t min_pktsize; /**< size of a data packet
48ab789094be doxygenize comments
michael
parents: 1701
diff changeset
68 * invalid if broadcasting */
48ab789094be doxygenize comments
michael
parents: 1701
diff changeset
69 uint32_t max_pktsize; /**< shall be the same as for min_pktsize
48ab789094be doxygenize comments
michael
parents: 1701
diff changeset
70 * invalid if broadcasting */
4927
95f0d6b82c8f Fix bandwith vs. bandwiDth typo.
diego
parents: 4924
diff changeset
71 uint32_t max_bitrate; /**< bandwidth of stream in bps
1705
48ab789094be doxygenize comments
michael
parents: 1701
diff changeset
72 * should be the sum of bitrates of the
48ab789094be doxygenize comments
michael
parents: 1701
diff changeset
73 * individual media streams */
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
74 } ASFMainHeader;
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
75
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
76
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
77 typedef struct {
716
55081ada3aad 31_ASF_compatibility_with_WMP_and_add_index.patch by (Calcium | calcium nurs or jp)
michael
parents: 373
diff changeset
78 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
79 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
80 } ASFIndex;
55081ada3aad 31_ASF_compatibility_with_WMP_and_add_index.patch by (Calcium | calcium nurs or jp)
michael
parents: 373
diff changeset
81
55081ada3aad 31_ASF_compatibility_with_WMP_and_add_index.patch by (Calcium | calcium nurs or jp)
michael
parents: 373
diff changeset
82
55081ada3aad 31_ASF_compatibility_with_WMP_and_add_index.patch by (Calcium | calcium nurs or jp)
michael
parents: 373
diff changeset
83 typedef struct {
373
e47d9c8e2054 asf patch by (Konstantin Andreyev <kandreyev at bcsii dot com>)
michael
parents: 372
diff changeset
84 uint32_t seqno;
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
85 int is_streamed;
1705
48ab789094be doxygenize comments
michael
parents: 1701
diff changeset
86 int asfid2avid[128]; ///< conversion table from asf ID 2 AVStream ID
48ab789094be doxygenize comments
michael
parents: 1701
diff changeset
87 ASFStream streams[128]; ///< it's max number and it's not that big
1806
bf6a0dd6d7be Add the stream_bitrate GUID to the asf parsing code, and set stream bitrate
takis
parents: 1776
diff changeset
88 uint32_t stream_bitrates[128]; ///< max number of streams, bitrate for each (for streaming)
4924
c090f960fc8a Per-stream language-tags extraction in asfdec.
benoit
parents: 4748
diff changeset
89 char stream_languages[128][6]; ///< max number of streams, language for each (RFC1766, e.g. en-US)
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
90 /* non streamed additonnal info */
1701
90be497b752b remove a few unused and duplicated variables
michael
parents: 1687
diff changeset
91 uint64_t nb_packets; ///< how many packets are there in the file, invalid if broadcasting
1705
48ab789094be doxygenize comments
michael
parents: 1701
diff changeset
92 int64_t duration; ///< in 100ns units
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
93 /* packet filling */
373
e47d9c8e2054 asf patch by (Konstantin Andreyev <kandreyev at bcsii dot com>)
michael
parents: 372
diff changeset
94 unsigned char multi_payloads_present;
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
95 int packet_size_left;
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
96 int packet_timestamp_start;
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
97 int packet_timestamp_end;
373
e47d9c8e2054 asf patch by (Konstantin Andreyev <kandreyev at bcsii dot com>)
michael
parents: 372
diff changeset
98 unsigned int packet_nb_payloads;
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
99 int packet_nb_frames;
65
a58a8a53eb46 * UINTX -> uintx_t INTX -> intx_t
kabi
parents: 14
diff changeset
100 uint8_t packet_buf[PACKET_SIZE];
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
101 ByteIOContext pb;
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
102 /* only for reading */
2856
cd1eabf38f6f typo: begining --> beginning
diego
parents: 2789
diff changeset
103 uint64_t data_offset; ///< beginning of the first data packet
1705
48ab789094be doxygenize comments
michael
parents: 1701
diff changeset
104 uint64_t data_object_offset; ///< data object offset (excl. GUID & size)
48ab789094be doxygenize comments
michael
parents: 1701
diff changeset
105 uint64_t data_object_size; ///< size of the data object
1266
5b9729f5145c fix fallback if theres no index
michael
parents: 1206
diff changeset
106 int index_read;
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
107
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
108 ASFMainHeader hdr;
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
109
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
110 int packet_flags;
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
111 int packet_property;
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
112 int packet_timestamp;
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
113 int packet_segsizetype;
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
114 int packet_segments;
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
115 int packet_seq;
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
116 int packet_replic_size;
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
117 int packet_key_frame;
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
118 int packet_padsize;
1709
7331d7153e0a check fragment offset and size
michael
parents: 1705
diff changeset
119 unsigned int packet_frag_offset;
7331d7153e0a check fragment offset and size
michael
parents: 1705
diff changeset
120 unsigned int packet_frag_size;
1776
b090df664f0d use dvr-ms timestamps
michael
parents: 1764
diff changeset
121 int64_t packet_frag_timestamp;
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
122 int packet_multi_size;
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
123 int packet_obj_size;
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
124 int packet_time_delta;
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
125 int packet_time_start;
1206
e60bf67d9bf8 The reader ignores the size of the ASF data object and keeps on
gpoirier
parents: 904
diff changeset
126 int64_t packet_pos;
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
127
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
128 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
129
55081ada3aad 31_ASF_compatibility_with_WMP_and_add_index.patch by (Calcium | calcium nurs or jp)
michael
parents: 373
diff changeset
130
55081ada3aad 31_ASF_compatibility_with_WMP_and_add_index.patch by (Calcium | calcium nurs or jp)
michael
parents: 373
diff changeset
131 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
132 ASFIndex* index_ptr;
55081ada3aad 31_ASF_compatibility_with_WMP_and_add_index.patch by (Calcium | calcium nurs or jp)
michael
parents: 373
diff changeset
133 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
134 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
135 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
136
1705
48ab789094be doxygenize comments
michael
parents: 1701
diff changeset
137 ASFStream* asf_st; ///< currently decoded stream
0
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
138 } ASFContext;
05318cf2e886 renamed libav to libavformat
bellard
parents:
diff changeset
139
4748
86dd0cab30d3 Rename GUID typedef to ff_asf_guid to fix MinGW compilation failure
reimar
parents: 4618
diff changeset
140 extern const ff_asf_guid ff_asf_header;
86dd0cab30d3 Rename GUID typedef to ff_asf_guid to fix MinGW compilation failure
reimar
parents: 4618
diff changeset
141 extern const ff_asf_guid ff_asf_file_header;
86dd0cab30d3 Rename GUID typedef to ff_asf_guid to fix MinGW compilation failure
reimar
parents: 4618
diff changeset
142 extern const ff_asf_guid ff_asf_stream_header;
86dd0cab30d3 Rename GUID typedef to ff_asf_guid to fix MinGW compilation failure
reimar
parents: 4618
diff changeset
143 extern const ff_asf_guid ff_asf_ext_stream_header;
86dd0cab30d3 Rename GUID typedef to ff_asf_guid to fix MinGW compilation failure
reimar
parents: 4618
diff changeset
144 extern const ff_asf_guid ff_asf_audio_stream;
86dd0cab30d3 Rename GUID typedef to ff_asf_guid to fix MinGW compilation failure
reimar
parents: 4618
diff changeset
145 extern const ff_asf_guid ff_asf_audio_conceal_none;
86dd0cab30d3 Rename GUID typedef to ff_asf_guid to fix MinGW compilation failure
reimar
parents: 4618
diff changeset
146 extern const ff_asf_guid ff_asf_audio_conceal_spread;
86dd0cab30d3 Rename GUID typedef to ff_asf_guid to fix MinGW compilation failure
reimar
parents: 4618
diff changeset
147 extern const ff_asf_guid ff_asf_video_stream;
6284
e4d729e25e97 asf: Add asf_jfif_media guid
mstorsjo
parents: 5876
diff changeset
148 extern const ff_asf_guid ff_asf_jfif_media;
4748
86dd0cab30d3 Rename GUID typedef to ff_asf_guid to fix MinGW compilation failure
reimar
parents: 4618
diff changeset
149 extern const ff_asf_guid ff_asf_video_conceal_none;
86dd0cab30d3 Rename GUID typedef to ff_asf_guid to fix MinGW compilation failure
reimar
parents: 4618
diff changeset
150 extern const ff_asf_guid ff_asf_command_stream;
86dd0cab30d3 Rename GUID typedef to ff_asf_guid to fix MinGW compilation failure
reimar
parents: 4618
diff changeset
151 extern const ff_asf_guid ff_asf_comment_header;
86dd0cab30d3 Rename GUID typedef to ff_asf_guid to fix MinGW compilation failure
reimar
parents: 4618
diff changeset
152 extern const ff_asf_guid ff_asf_codec_comment_header;
86dd0cab30d3 Rename GUID typedef to ff_asf_guid to fix MinGW compilation failure
reimar
parents: 4618
diff changeset
153 extern const ff_asf_guid ff_asf_codec_comment1_header;
86dd0cab30d3 Rename GUID typedef to ff_asf_guid to fix MinGW compilation failure
reimar
parents: 4618
diff changeset
154 extern const ff_asf_guid ff_asf_data_header;
86dd0cab30d3 Rename GUID typedef to ff_asf_guid to fix MinGW compilation failure
reimar
parents: 4618
diff changeset
155 extern const ff_asf_guid ff_asf_head1_guid;
86dd0cab30d3 Rename GUID typedef to ff_asf_guid to fix MinGW compilation failure
reimar
parents: 4618
diff changeset
156 extern const ff_asf_guid ff_asf_head2_guid;
86dd0cab30d3 Rename GUID typedef to ff_asf_guid to fix MinGW compilation failure
reimar
parents: 4618
diff changeset
157 extern const ff_asf_guid ff_asf_extended_content_header;
86dd0cab30d3 Rename GUID typedef to ff_asf_guid to fix MinGW compilation failure
reimar
parents: 4618
diff changeset
158 extern const ff_asf_guid ff_asf_simple_index_header;
86dd0cab30d3 Rename GUID typedef to ff_asf_guid to fix MinGW compilation failure
reimar
parents: 4618
diff changeset
159 extern const ff_asf_guid ff_asf_ext_stream_embed_stream_header;
86dd0cab30d3 Rename GUID typedef to ff_asf_guid to fix MinGW compilation failure
reimar
parents: 4618
diff changeset
160 extern const ff_asf_guid ff_asf_ext_stream_audio_stream;
86dd0cab30d3 Rename GUID typedef to ff_asf_guid to fix MinGW compilation failure
reimar
parents: 4618
diff changeset
161 extern const ff_asf_guid ff_asf_metadata_header;
5778
e3ec6991698b Use ASF supports "markers" which are a name and a time stamp to create
benoit
parents: 5273
diff changeset
162 extern const ff_asf_guid ff_asf_marker_header;
4748
86dd0cab30d3 Rename GUID typedef to ff_asf_guid to fix MinGW compilation failure
reimar
parents: 4618
diff changeset
163 extern const ff_asf_guid ff_asf_my_guid;
4924
c090f960fc8a Per-stream language-tags extraction in asfdec.
benoit
parents: 4748
diff changeset
164 extern const ff_asf_guid ff_asf_language_guid;
5273
f292b3e34823 Detect Windows Media DRM protected files and display warning if no key
cehoyos
parents: 5067
diff changeset
165 extern const ff_asf_guid ff_asf_content_encryption;
f292b3e34823 Detect Windows Media DRM protected files and display warning if no key
cehoyos
parents: 5067
diff changeset
166 extern const ff_asf_guid ff_asf_ext_content_encryption;
f292b3e34823 Detect Windows Media DRM protected files and display warning if no key
cehoyos
parents: 5067
diff changeset
167 extern const ff_asf_guid ff_asf_digital_signature;
373
e47d9c8e2054 asf patch by (Konstantin Andreyev <kandreyev at bcsii dot com>)
michael
parents: 372
diff changeset
168
4618
5b9eddbee9c4 Add some basic metadata conversion tables for matroska and asf.
aurel
parents: 4593
diff changeset
169 extern const AVMetadataConv ff_asf_metadata_conv[];
5b9eddbee9c4 Add some basic metadata conversion tables for matroska and asf.
aurel
parents: 4593
diff changeset
170
373
e47d9c8e2054 asf patch by (Konstantin Andreyev <kandreyev at bcsii dot com>)
michael
parents: 372
diff changeset
171 #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
172
e47d9c8e2054 asf patch by (Konstantin Andreyev <kandreyev at bcsii dot com>)
michael
parents: 372
diff changeset
173
e47d9c8e2054 asf patch by (Konstantin Andreyev <kandreyev at bcsii dot com>)
michael
parents: 372
diff changeset
174 // ASF data packet structure
e47d9c8e2054 asf patch by (Konstantin Andreyev <kandreyev at bcsii dot com>)
michael
parents: 372
diff changeset
175 // =========================
e47d9c8e2054 asf patch by (Konstantin Andreyev <kandreyev at bcsii dot com>)
michael
parents: 372
diff changeset
176 //
e47d9c8e2054 asf patch by (Konstantin Andreyev <kandreyev at bcsii dot com>)
michael
parents: 372
diff changeset
177 //
e47d9c8e2054 asf patch by (Konstantin Andreyev <kandreyev at bcsii dot com>)
michael
parents: 372
diff changeset
178 // -----------------------------------
e47d9c8e2054 asf patch by (Konstantin Andreyev <kandreyev at bcsii dot com>)
michael
parents: 372
diff changeset
179 // | Error Correction Data | Optional
e47d9c8e2054 asf patch by (Konstantin Andreyev <kandreyev at bcsii dot com>)
michael
parents: 372
diff changeset
180 // -----------------------------------
e47d9c8e2054 asf patch by (Konstantin Andreyev <kandreyev at bcsii dot com>)
michael
parents: 372
diff changeset
181 // | Payload Parsing Information (PPI) |
e47d9c8e2054 asf patch by (Konstantin Andreyev <kandreyev at bcsii dot com>)
michael
parents: 372
diff changeset
182 // -----------------------------------
e47d9c8e2054 asf patch by (Konstantin Andreyev <kandreyev at bcsii dot com>)
michael
parents: 372
diff changeset
183 // | Payload Data |
e47d9c8e2054 asf patch by (Konstantin Andreyev <kandreyev at bcsii dot com>)
michael
parents: 372
diff changeset
184 // -----------------------------------
e47d9c8e2054 asf patch by (Konstantin Andreyev <kandreyev at bcsii dot com>)
michael
parents: 372
diff changeset
185 // | Padding Data |
e47d9c8e2054 asf patch by (Konstantin Andreyev <kandreyev at bcsii dot com>)
michael
parents: 372
diff changeset
186 // -----------------------------------
e47d9c8e2054 asf patch by (Konstantin Andreyev <kandreyev at bcsii dot com>)
michael
parents: 372
diff changeset
187
e47d9c8e2054 asf patch by (Konstantin Andreyev <kandreyev at bcsii dot com>)
michael
parents: 372
diff changeset
188
e47d9c8e2054 asf patch by (Konstantin Andreyev <kandreyev at bcsii dot com>)
michael
parents: 372
diff changeset
189 // PPI_FLAG - Payload parsing information flags
e47d9c8e2054 asf patch by (Konstantin Andreyev <kandreyev at bcsii dot com>)
michael
parents: 372
diff changeset
190 #define ASF_PPI_FLAG_MULTIPLE_PAYLOADS_PRESENT 1
e47d9c8e2054 asf patch by (Konstantin Andreyev <kandreyev at bcsii dot com>)
michael
parents: 372
diff changeset
191
e47d9c8e2054 asf patch by (Konstantin Andreyev <kandreyev at bcsii dot com>)
michael
parents: 372
diff changeset
192 #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
193 #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
194 #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
195 #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
196
e47d9c8e2054 asf patch by (Konstantin Andreyev <kandreyev at bcsii dot com>)
michael
parents: 372
diff changeset
197 #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
198 #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
199 #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
200 #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
201
e47d9c8e2054 asf patch by (Konstantin Andreyev <kandreyev at bcsii dot com>)
michael
parents: 372
diff changeset
202 #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
203 #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
204 #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
205 #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
206
e47d9c8e2054 asf patch by (Konstantin Andreyev <kandreyev at bcsii dot com>)
michael
parents: 372
diff changeset
207 // PL_FLAG - Payload flags
e47d9c8e2054 asf patch by (Konstantin Andreyev <kandreyev at bcsii dot com>)
michael
parents: 372
diff changeset
208 #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
209 #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
210 #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
211 #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
212
e47d9c8e2054 asf patch by (Konstantin Andreyev <kandreyev at bcsii dot com>)
michael
parents: 372
diff changeset
213 #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
214 #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
215 #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
216 #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
217
e47d9c8e2054 asf patch by (Konstantin Andreyev <kandreyev at bcsii dot com>)
michael
parents: 372
diff changeset
218 #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
219 #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
220 #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
221 #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
222
e47d9c8e2054 asf patch by (Konstantin Andreyev <kandreyev at bcsii dot com>)
michael
parents: 372
diff changeset
223 #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
224 #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
225
e47d9c8e2054 asf patch by (Konstantin Andreyev <kandreyev at bcsii dot com>)
michael
parents: 372
diff changeset
226 #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
227 #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
228 #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
229
e47d9c8e2054 asf patch by (Konstantin Andreyev <kandreyev at bcsii dot com>)
michael
parents: 372
diff changeset
230 #define ASF_PL_FLAG_KEY_FRAME 0x80 //1000 0000
2172
92f61ed53965 add multiple inclusion guards to headers
mru
parents: 2171
diff changeset
231
4121
55e94f2a8ac1 Make asf_get_packet() and asf_parse_packet() public for use in RTSP-MS and
rbultje
parents: 3852
diff changeset
232 extern AVInputFormat asf_demuxer;
5876
2c0f0162a110 Move put_le16_nolen() to asf.c and give it a ff_ prefix. This way, it is easier
rbultje
parents: 5778
diff changeset
233 int ff_put_str16_nolen(ByteIOContext *s, const char *tag);
4121
55e94f2a8ac1 Make asf_get_packet() and asf_parse_packet() public for use in RTSP-MS and
rbultje
parents: 3852
diff changeset
234
3852
1b6245500d8c Globally rename the header inclusion guard names.
stefano
parents: 2856
diff changeset
235 #endif /* AVFORMAT_ASF_H */