Mercurial > mplayer.hg
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 |
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 |