LibAAH_RTP: Fix a deserialization bug. DO NOT MERGE

Fix for bug 6446715

Fix a deserialization bug which was causing an assertion failure in
stagefright and bringing down the entire media server.  Basically, you
will hit this any time you play a track longer than ~2147 seconds.
(Technically, the crash will happen any time the play pointer at a
 position which is ~2147 * (1 * 2N) where N >= 0)

Change-Id: Ic0d371b0f6c29fddf0a033f5de08a70b3e63c854
This commit is contained in:
John Grossman
2012-06-13 12:56:22 -07:00
parent 115284bc12
commit 8f267c4a47

View File

@@ -200,7 +200,8 @@ void AAH_RXPlayer::Substream::processPayloadStart(uint8_t* buf,
if (ts_valid) {
uint32_t ts_upper = U32_AT(buf + parse_offset);
parse_offset += 4;
ts = (static_cast<int64_t>(ts_upper) << 32) | ts_lower;
ts = (static_cast<int64_t>(ts_upper) << 32) |
static_cast<uint32_t>(ts_lower);
}
// Check the flags to see if there is another 24 bytes of timestamp