annotate DOCS/tech/realcodecs/streaming.txt @ 6349:c09a890e4c8c

initial version from Florian Schneider <flo-mplayer-dev@gmx.net>
author arpi
date Sun, 09 Jun 2002 02:54:28 +0000
parents
children a2173ca2f49c
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
6349
c09a890e4c8c initial version from Florian Schneider <flo-mplayer-dev@gmx.net>
arpi
parents:
diff changeset
1 In the RV30 format, another encapsulated data layer for the video stream
c09a890e4c8c initial version from Florian Schneider <flo-mplayer-dev@gmx.net>
arpi
parents:
diff changeset
2 has been introduced. In lack of a name I'll call them sub packets, the
c09a890e4c8c initial version from Florian Schneider <flo-mplayer-dev@gmx.net>
arpi
parents:
diff changeset
3 normal packets which exist in RV10 I'll call - well - packets. The stream
c09a890e4c8c initial version from Florian Schneider <flo-mplayer-dev@gmx.net>
arpi
parents:
diff changeset
4 of bytes which is put in one memory block is named block.
c09a890e4c8c initial version from Florian Schneider <flo-mplayer-dev@gmx.net>
arpi
parents:
diff changeset
5
c09a890e4c8c initial version from Florian Schneider <flo-mplayer-dev@gmx.net>
arpi
parents:
diff changeset
6 The format extension has been * by wild guessing and comparing the
c09a890e4c8c initial version from Florian Schneider <flo-mplayer-dev@gmx.net>
arpi
parents:
diff changeset
7 received data between the original viewer and the demuxer.
c09a890e4c8c initial version from Florian Schneider <flo-mplayer-dev@gmx.net>
arpi
parents:
diff changeset
8
c09a890e4c8c initial version from Florian Schneider <flo-mplayer-dev@gmx.net>
arpi
parents:
diff changeset
9
c09a890e4c8c initial version from Florian Schneider <flo-mplayer-dev@gmx.net>
arpi
parents:
diff changeset
10
c09a890e4c8c initial version from Florian Schneider <flo-mplayer-dev@gmx.net>
arpi
parents:
diff changeset
11 Every packet may contain one or more sub packets, and one block may
c09a890e4c8c initial version from Florian Schneider <flo-mplayer-dev@gmx.net>
arpi
parents:
diff changeset
12 be contained inside one or more adjacent (sub) packets.
c09a890e4c8c initial version from Florian Schneider <flo-mplayer-dev@gmx.net>
arpi
parents:
diff changeset
13 A sub packet starts with a small header (two letters are one byte):
c09a890e4c8c initial version from Florian Schneider <flo-mplayer-dev@gmx.net>
arpi
parents:
diff changeset
14
c09a890e4c8c initial version from Florian Schneider <flo-mplayer-dev@gmx.net>
arpi
parents:
diff changeset
15
c09a890e4c8c initial version from Florian Schneider <flo-mplayer-dev@gmx.net>
arpi
parents:
diff changeset
16 aa(bb)[ccccdddd{eeee}ff]
c09a890e4c8c initial version from Florian Schneider <flo-mplayer-dev@gmx.net>
arpi
parents:
diff changeset
17
c09a890e4c8c initial version from Florian Schneider <flo-mplayer-dev@gmx.net>
arpi
parents:
diff changeset
18 aa: indicates the type of header
c09a890e4c8c initial version from Florian Schneider <flo-mplayer-dev@gmx.net>
arpi
parents:
diff changeset
19 the 2MSB indicate the header type (mask C0)
c09a890e4c8c initial version from Florian Schneider <flo-mplayer-dev@gmx.net>
arpi
parents:
diff changeset
20 C0: the [] part exists, but not ()
c09a890e4c8c initial version from Florian Schneider <flo-mplayer-dev@gmx.net>
arpi
parents:
diff changeset
21 00, 80: the data block is encapsulated inside multiple packets.
c09a890e4c8c initial version from Florian Schneider <flo-mplayer-dev@gmx.net>
arpi
parents:
diff changeset
22 bb contains the sequence number, beginning with 1.
c09a890e4c8c initial version from Florian Schneider <flo-mplayer-dev@gmx.net>
arpi
parents:
diff changeset
23 80 indicates the last sub packet containing data for the
c09a890e4c8c initial version from Florian Schneider <flo-mplayer-dev@gmx.net>
arpi
parents:
diff changeset
24 current block. no C0 or 40 sub packet follows until
c09a890e4c8c initial version from Florian Schneider <flo-mplayer-dev@gmx.net>
arpi
parents:
diff changeset
25 the block has been finished with a 80 sub packet.
c09a890e4c8c initial version from Florian Schneider <flo-mplayer-dev@gmx.net>
arpi
parents:
diff changeset
26 No packet with another stream than the current video stream
c09a890e4c8c initial version from Florian Schneider <flo-mplayer-dev@gmx.net>
arpi
parents:
diff changeset
27 is inside the sub packet chain, at least I haven't seen
c09a890e4c8c initial version from Florian Schneider <flo-mplayer-dev@gmx.net>
arpi
parents:
diff changeset
28 such case - the demuxer will shout in this case.
c09a890e4c8c initial version from Florian Schneider <flo-mplayer-dev@gmx.net>
arpi
parents:
diff changeset
29 40: [] does not exist, the meaning of bb is unknown to me
c09a890e4c8c initial version from Florian Schneider <flo-mplayer-dev@gmx.net>
arpi
parents:
diff changeset
30 data follows to the end of the packet
c09a890e4c8c initial version from Florian Schneider <flo-mplayer-dev@gmx.net>
arpi
parents:
diff changeset
31 mask 3F: unknown
c09a890e4c8c initial version from Florian Schneider <flo-mplayer-dev@gmx.net>
arpi
parents:
diff changeset
32 bb: unknown
c09a890e4c8c initial version from Florian Schneider <flo-mplayer-dev@gmx.net>
arpi
parents:
diff changeset
33 cccc: mask 3FFF: length of data
c09a890e4c8c initial version from Florian Schneider <flo-mplayer-dev@gmx.net>
arpi
parents:
diff changeset
34 mask C000: unknown, seems to be always 4000
c09a890e4c8c initial version from Florian Schneider <flo-mplayer-dev@gmx.net>
arpi
parents:
diff changeset
35 dddd: when it's 0, {} exists (only in this case)
c09a890e4c8c initial version from Florian Schneider <flo-mplayer-dev@gmx.net>
arpi
parents:
diff changeset
36 mask 3FFF: I thought it would have been the offset inside the
c09a890e4c8c initial version from Florian Schneider <flo-mplayer-dev@gmx.net>
arpi
parents:
diff changeset
37 block, is not correct in every case. Just appending the
c09a890e4c8c initial version from Florian Schneider <flo-mplayer-dev@gmx.net>
arpi
parents:
diff changeset
38 data works better, ignoring it.
c09a890e4c8c initial version from Florian Schneider <flo-mplayer-dev@gmx.net>
arpi
parents:
diff changeset
39 mask C000: like cccc, except the first case
c09a890e4c8c initial version from Florian Schneider <flo-mplayer-dev@gmx.net>
arpi
parents:
diff changeset
40 eeee: only exists when dddd exists and is zero. contains the data
c09a890e4c8c initial version from Florian Schneider <flo-mplayer-dev@gmx.net>
arpi
parents:
diff changeset
41 dddd should contain in the second case. don't know what the developers
c09a890e4c8c initial version from Florian Schneider <flo-mplayer-dev@gmx.net>
arpi
parents:
diff changeset
42 had in mind.
c09a890e4c8c initial version from Florian Schneider <flo-mplayer-dev@gmx.net>
arpi
parents:
diff changeset
43 ff: sequence number for the data blocks, beginning with 0
c09a890e4c8c initial version from Florian Schneider <flo-mplayer-dev@gmx.net>
arpi
parents:
diff changeset
44
c09a890e4c8c initial version from Florian Schneider <flo-mplayer-dev@gmx.net>
arpi
parents:
diff changeset
45
c09a890e4c8c initial version from Florian Schneider <flo-mplayer-dev@gmx.net>
arpi
parents:
diff changeset
46
c09a890e4c8c initial version from Florian Schneider <flo-mplayer-dev@gmx.net>
arpi
parents:
diff changeset
47 packet header:
c09a890e4c8c initial version from Florian Schneider <flo-mplayer-dev@gmx.net>
arpi
parents:
diff changeset
48
c09a890e4c8c initial version from Florian Schneider <flo-mplayer-dev@gmx.net>
arpi
parents:
diff changeset
49 ushort unknown
c09a890e4c8c initial version from Florian Schneider <flo-mplayer-dev@gmx.net>
arpi
parents:
diff changeset
50 ulong blocksize
c09a890e4c8c initial version from Florian Schneider <flo-mplayer-dev@gmx.net>
arpi
parents:
diff changeset
51 ushort streamid
c09a890e4c8c initial version from Florian Schneider <flo-mplayer-dev@gmx.net>
arpi
parents:
diff changeset
52 uchar reserved
c09a890e4c8c initial version from Florian Schneider <flo-mplayer-dev@gmx.net>
arpi
parents:
diff changeset
53 uchar flags 1=reliable, 2=keyframe
c09a890e4c8c initial version from Florian Schneider <flo-mplayer-dev@gmx.net>
arpi
parents:
diff changeset
54
c09a890e4c8c initial version from Florian Schneider <flo-mplayer-dev@gmx.net>
arpi
parents:
diff changeset
55