Commit 0b20baa
Handle RTP timestamp wraparound in RtpReaderUtils
RTP timestamps are 32-bit unsigned integers. When calculating the time difference between two RTP timestamps, especially when one has wrapped around, a simple subtraction can yield a negative result. This change ensures that the difference is always treated as an unsigned value by masking the result of the subtraction with 0xFFFFFFFFL before scaling it to microseconds.
A test case is added to RtpH265ReaderTest to verify the correct handling of wrapped-around timestamps.
Issue: #2930
PiperOrigin-RevId: 8485387591 parent 86887c4 commit 0b20baa
File tree
3 files changed
+43
-1
lines changed- libraries/exoplayer_rtsp/src
- main/java/androidx/media3/exoplayer/rtsp/reader
- test/java/androidx/media3/exoplayer/rtsp/reader
3 files changed
+43
-1
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
95 | 95 | | |
96 | 96 | | |
97 | 97 | | |
| 98 | + | |
| 99 | + | |
98 | 100 | | |
99 | 101 | | |
100 | 102 | | |
| |||
Lines changed: 4 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
35 | 35 | | |
36 | 36 | | |
37 | 37 | | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
38 | 41 | | |
39 | 42 | | |
40 | | - | |
| 43 | + | |
41 | 44 | | |
42 | 45 | | |
43 | 46 | | |
| |||
Lines changed: 37 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
0 commit comments