summaryrefslogtreecommitdiffstats
path: root/media/libstagefright/wifi-display/rtp
diff options
context:
space:
mode:
Diffstat (limited to 'media/libstagefright/wifi-display/rtp')
-rw-r--r--media/libstagefright/wifi-display/rtp/RTPSender.cpp21
-rw-r--r--media/libstagefright/wifi-display/rtp/RTPSender.h4
2 files changed, 19 insertions, 6 deletions
diff --git a/media/libstagefright/wifi-display/rtp/RTPSender.cpp b/media/libstagefright/wifi-display/rtp/RTPSender.cpp
index 8cd712d..c8e265c 100644
--- a/media/libstagefright/wifi-display/rtp/RTPSender.cpp
+++ b/media/libstagefright/wifi-display/rtp/RTPSender.cpp
@@ -194,6 +194,9 @@ status_t RTPSender::queueTSPackets(
const sp<ABuffer> &tsPackets, uint8_t packetType) {
CHECK_EQ(0, tsPackets->size() % 188);
+ int64_t timeUs;
+ CHECK(tsPackets->meta()->findInt64("timeUs", &timeUs));
+
const size_t numTSPackets = tsPackets->size() / 188;
size_t srcOffset = 0;
@@ -232,13 +235,19 @@ status_t RTPSender::queueTSPackets(
memcpy(&rtp[12], tsPackets->data() + srcOffset, numTSPackets * 188);
udpPacket->setRange(0, 12 + numTSPackets * 188);
- status_t err = sendRTPPacket(udpPacket, true /* storeInHistory */);
+
+ srcOffset += numTSPackets * 188;
+ bool isLastPacket = (srcOffset == tsPackets->size());
+
+ status_t err = sendRTPPacket(
+ udpPacket,
+ true /* storeInHistory */,
+ isLastPacket /* timeValid */,
+ timeUs);
if (err != OK) {
return err;
}
-
- srcOffset += numTSPackets * 188;
}
return OK;
@@ -395,11 +404,13 @@ status_t RTPSender::queueAVCBuffer(
}
status_t RTPSender::sendRTPPacket(
- const sp<ABuffer> &buffer, bool storeInHistory) {
+ const sp<ABuffer> &buffer, bool storeInHistory,
+ bool timeValid, int64_t timeUs) {
CHECK(mRTPConnected);
status_t err = mNetSession->sendRequest(
- mRTPSessionID, buffer->data(), buffer->size());
+ mRTPSessionID, buffer->data(), buffer->size(),
+ timeValid, timeUs);
if (err != OK) {
return err;
diff --git a/media/libstagefright/wifi-display/rtp/RTPSender.h b/media/libstagefright/wifi-display/rtp/RTPSender.h
index 83c6223..90b1796 100644
--- a/media/libstagefright/wifi-display/rtp/RTPSender.h
+++ b/media/libstagefright/wifi-display/rtp/RTPSender.h
@@ -94,7 +94,9 @@ private:
status_t queueTSPackets(const sp<ABuffer> &tsPackets, uint8_t packetType);
status_t queueAVCBuffer(const sp<ABuffer> &accessUnit, uint8_t packetType);
- status_t sendRTPPacket(const sp<ABuffer> &packet, bool storeInHistory);
+ status_t sendRTPPacket(
+ const sp<ABuffer> &packet, bool storeInHistory,
+ bool timeValid = false, int64_t timeUs = -1ll);
void onNetNotify(bool isRTP, const sp<AMessage> &msg);