Hallo,
ich habe ein rtp-header, wo die SSRC selber angepasstu wurden.
Normalerweise ist der SSRC 32 Bit groß
Unser SSRC ist in einem Struct definiert und sieht jetzt wie folgt aus
1 | typedef struct rtp_header{
|
2 |
|
3 | unsigned cc:4;
|
4 | unsigned x:1;
|
5 | unsigned p:1;
|
6 | unsigned v:2;
|
7 |
|
8 | unsigned pt:7;
|
9 | unsigned m:1;
|
10 |
|
11 | uint16 seq_num;
|
12 | uint32 timestamp;
|
13 |
|
14 | struct
|
15 | {
|
16 | unsigned f1:3;
|
17 | unsigned f2:4;
|
18 | unsigned f3:4;
|
19 | unsigned f4:2;
|
20 | unsigned f5:2;
|
21 | unsigned f6:1;
|
22 | }__attribute__ ((packed)) ssrc_own;
|
23 |
|
24 | uint16 ssrc;
|
25 |
|
26 | } __attribute__ ((packed)) rtp_header_t;
|
Alle Daten passen soweit. Aber wenn ich den ssrc_own wie folgt
beschreibe
f1 = 0b000
f2 = 0b1001
f3 = 0b0010
f4 = 0b01
f5 = 0b00
f6 = 0b0
also 0001001001001000 (0x12 0x48)
bekomme ich heraus
0100100000001001 (0x48 0x09)
ich weiß, dass es etwas mit dem endian zu tun hat. Allerdings bekomme
ich es absolut nicht hin das Problem zu lösen.
Hat hier jemand evtl einen tip, wie ich es machen könnte?