R-TS = 0, Tsc = 0 in EXT3 no allowed
Affects | Status | Importance | Assigned to | Milestone | ||
---|---|---|---|---|---|---|
rohc | Status tracked in Rohc-main | |||||
1.2.x |
Won't Fix
|
Medium
|
Didier Barvaux | |||
1.3.x |
Won't Fix
|
Medium
|
Didier Barvaux | |||
Rohc-main |
Fix Released
|
Medium
|
Didier Barvaux |
Bug Description
test case: ipv4/udp/rtp/mp3 packet 9
[c_generic.c:4094 code_UO2_packet()] code UOR-2-ID packet (CID = 0)
[c_generic.c:5486 code_EXT3_packet()] R-TS = 0, Tsc = 0, rtp = 0
But rfc 4815 4.2:
If value(Tsc) = 0, the Timestamp value is compressed as-is, and
bits is received with Tsc = 0, the decompressor MUST discard the
packet."
Here are Tsc is 0 (TS not scaled, but no TS bits there R-TS=0.
And therefore my decompressor complains:
WARNING: DEC: Tsc=0, but no TS bits received
See code_EXT3_packet();
/* Tsc bit */
tsc = rtp_context-
The tsc bit is 0, the second part (after &&, second line) evaluates to !1 -> 0.
But why this additional question in case of UOR_2_ID and is_deductible?
This is wrong from my point of view, because compressor has detected that
RTP TS is scaled (SEND_SCALED), but sets tsc to 0.
regards, Klaus
tags: | added: conformance library rtp |
Proposal for decompressor fix
d_generic.c:4775 decode_extension3()
/* decode scaled TS */
if(tsc)
rohc_ debugf( 3, "TS is scaled\n");
{
}
If no ts bits received, the ts jump has to be calculated from sn jump/diff.
In the upper case, the decomp MUST discard packet.
Regards, Klaus