external/opencore
Révision | c3c4aabb81f27f2f56d4a2f2187f00049f1e1c27 (tree) |
---|---|
l'heure | 2010-04-16 05:34:34 |
Auteur | PacketVideo CM <engbuild@pv.c...> |
Commiter | PacketVideo CM |
RIO-8699: Updating out-of-order packets handling logic
Change-Id: Idc5dc345d05bef87b1beabea277c9f9633556ac7
@@ -21,7 +21,7 @@ | ||
21 | 21 | // This header file is automatically generated at build-time |
22 | 22 | // *** OFFICIAL RELEASE INFO -- Will not auto update |
23 | 23 | |
24 | -#define PV2WAY_ENGINE_SDKINFO_LABEL "1367151" | |
25 | -#define PV2WAY_ENGINE_SDKINFO_DATE 0x20100408 | |
24 | +#define PV2WAY_ENGINE_SDKINFO_LABEL "1369443" | |
25 | +#define PV2WAY_ENGINE_SDKINFO_DATE 0x20100409 | |
26 | 26 | |
27 | 27 | #endif //PV_2WAY_SDKINFO_H_INCLUDED |
@@ -21,7 +21,7 @@ | ||
21 | 21 | // This header file is automatically generated at build-time |
22 | 22 | // *** OFFICIAL RELEASE INFO -- Will not auto update |
23 | 23 | |
24 | -#define PVAUTHOR_ENGINE_SDKINFO_LABEL "1367151" | |
25 | -#define PVAUTHOR_ENGINE_SDKINFO_DATE 0x20100408 | |
24 | +#define PVAUTHOR_ENGINE_SDKINFO_LABEL "1369443" | |
25 | +#define PVAUTHOR_ENGINE_SDKINFO_DATE 0x20100409 | |
26 | 26 | |
27 | 27 | #endif //PV_AUTHOR_SDKINFO_H_INCLUDED |
@@ -21,7 +21,7 @@ | ||
21 | 21 | // This header file is automatically generated at build-time |
22 | 22 | // *** OFFICIAL RELEASE INFO -- Will not auto update |
23 | 23 | |
24 | -#define PVPLAYER_ENGINE_SDKINFO_LABEL "1367151" | |
25 | -#define PVPLAYER_ENGINE_SDKINFO_DATE 0x20100408 | |
24 | +#define PVPLAYER_ENGINE_SDKINFO_LABEL "1369443" | |
25 | +#define PVPLAYER_ENGINE_SDKINFO_DATE 0x20100409 | |
26 | 26 | |
27 | 27 | #endif //PV_PLAYER_SDKINFO_H_INCLUDED |
@@ -955,7 +955,7 @@ OSCL_EXPORT_REF bool PVMFJitterBufferImpl::RequestEventCallBack(JB_NOTIFY_CALLBA | ||
955 | 955 | { |
956 | 956 | case JB_NOTIFY_WAIT_FOR_OOO_PACKET_COMPLETE : |
957 | 957 | { |
958 | - PVMFJBEventNotificationRequestInfo eventRequestInfo(CLOCK_NOTIFICATION_INTF_TYPE_ESTIMATEDSERVER, this, NULL); | |
958 | + PVMFJBEventNotificationRequestInfo eventRequestInfo(CLOCK_NOTIFICATION_INTF_TYPE_CLIENTPLAYBACK, this, NULL); | |
959 | 959 | retval = irJBEventNotifier.RequestCallBack(eventRequestInfo, aDelay, iWaitForOOOPacketCallBkId); |
960 | 960 | if (retval) |
961 | 961 | { |
@@ -47,6 +47,7 @@ OSCL_DLL_ENTRY_POINT_DEFAULT() | ||
47 | 47 | const uint16 RTPSEQNUM_ROLLOVER_WRAP_THRESHHOLD_16BIT = 0x8000; |
48 | 48 | |
49 | 49 | const int32 iEstimatedServerKeepAheadInMilliSeconds = 2000; |
50 | +const int32 OOO_DATAPATH_DELAY_FACTOR = 500; | |
50 | 51 | |
51 | 52 | /* RTP HEADER CONSTANTS */ |
52 | 53 | #define SUPPORTED_RTP_HEADER_VERSION 2 |
@@ -1081,12 +1082,12 @@ bool PVMFRTPJitterBufferImpl::CanRetrievePacket() | ||
1081 | 1082 | overflowFlag = false; |
1082 | 1083 | irEstimatedServerClock.GetCurrentTime32(estimatedServClock, overflowFlag, PVMF_MEDIA_CLOCK_MSEC); |
1083 | 1084 | uint32 delta = 0; |
1084 | - if (!iEOSSignalled && (PVTimeComparisonUtils::IsEarlier(estimatedServClock, converted_ts + iEstimatedServerKeepAheadInMilliSeconds, delta) && (delta > 0))) | |
1085 | + if (!iEOSSignalled && (PVTimeComparisonUtils::IsEarlier(clientClock + OOO_DATAPATH_DELAY_FACTOR, converted_ts, delta) && (delta > 0))) | |
1085 | 1086 | { |
1086 | 1087 | //hold the available data packet, and wait for hole in the JB due to OOO packet to be filled |
1087 | 1088 | if (!IsCallbackPending(JB_NOTIFY_WAIT_FOR_OOO_PACKET_COMPLETE, NULL)) |
1088 | 1089 | { |
1089 | - PVMF_JB_LOGDATATRAFFIC_OUT((0, "PVMFJitterBufferNode::SendData Detected Hole in JB PeekTs[%d] clientClock[%d] , ClientClockState [%d], estimatedServClock[%d], EstimatedServClockState[%d], oSessionDurationExpired[%d] MimeStr[%s]", converted_ts, clientClock, irClientPlayBackClock.GetState(), estimatedServClock, irEstimatedServerClock.GetState(), iEOSSignalled, irMimeType.get_cstr())); | |
1090 | + PVMF_JB_LOGDATATRAFFIC_OUT((0, "PVMFJitterBufferNode::SendData Detected Hole in JB PeekTs[%d] clientClock[%d] , ClientClockState [%d], estimatedServClock[%d], EstimatedServClockState[%d], oSessionDurationExpired[%d] MimeStr[%s], delta[%d]", converted_ts, clientClock, irClientPlayBackClock.GetState(), estimatedServClock, irEstimatedServerClock.GetState(), iEOSSignalled, irMimeType.get_cstr(), delta)); | |
1090 | 1091 | RequestEventCallBack(JB_NOTIFY_WAIT_FOR_OOO_PACKET_COMPLETE , delta, NULL); |
1091 | 1092 | } |
1092 | 1093 | return false; |
@@ -1171,13 +1172,13 @@ bool PVMFRTPJitterBufferImpl::CanRetrievePacket(PVMFSharedMediaMsgPtr& aMediaOut | ||
1171 | 1172 | overflowFlag = false; |
1172 | 1173 | irEstimatedServerClock.GetCurrentTime32(estimatedServClock, overflowFlag, PVMF_MEDIA_CLOCK_MSEC); |
1173 | 1174 | uint32 delta = 0; |
1174 | - if (!iEOSSignalled && (PVTimeComparisonUtils::IsEarlier(estimatedServClock, converted_ts + iEstimatedServerKeepAheadInMilliSeconds, delta) && (delta > 0))) | |
1175 | + if (!iEOSSignalled && (PVTimeComparisonUtils::IsEarlier(clientClock + OOO_DATAPATH_DELAY_FACTOR, converted_ts, delta) && (delta > 0))) | |
1175 | 1176 | { |
1176 | 1177 | //hold the available data packet, and wait for hole in the JB due to OOO packet to be filled |
1177 | 1178 | if (!IsCallbackPending(JB_NOTIFY_WAIT_FOR_OOO_PACKET_COMPLETE, NULL)) |
1178 | 1179 | { |
1179 | - PVMF_JB_LOGDATATRAFFIC_OUT_E((0, "PVMFJitterBufferNode::SendData Detected Hole in JB PeekTs[%d] clientClock[%d] , ClientClockState [%d], estimatedServClock[%d], EstimatedServClockState[%d], oSessionDurationExpired[%d] MimeStr[%s]", converted_ts, clientClock, irClientPlayBackClock.GetState(), estimatedServClock, irEstimatedServerClock.GetState(), iEOSSignalled, irMimeType.get_cstr())); | |
1180 | - PVMF_JB_LOGDATATRAFFIC_OUT((0, "PVMFJitterBufferNode::SendData Detected Hole in JB PeekTs[%d] clientClock[%d] , ClientClockState [%d], estimatedServClock[%d], EstimatedServClockState[%d], oSessionDurationExpired[%d] MimeStr[%s]", converted_ts, clientClock, irClientPlayBackClock.GetState(), estimatedServClock, irEstimatedServerClock.GetState(), iEOSSignalled, irMimeType.get_cstr())); | |
1180 | + PVMF_JB_LOGDATATRAFFIC_OUT_E((0, "PVMFJitterBufferNode::SendData Detected Hole in JB PeekTs[%d] clientClock[%d] , ClientClockState [%d], estimatedServClock[%d], EstimatedServClockState[%d], oSessionDurationExpired[%d] MimeStr[%s], delta[%d]", converted_ts, clientClock, irClientPlayBackClock.GetState(), estimatedServClock, irEstimatedServerClock.GetState(), iEOSSignalled, irMimeType.get_cstr(), delta)); | |
1181 | + PVMF_JB_LOGDATATRAFFIC_OUT((0, "PVMFJitterBufferNode::SendData Detected Hole in JB PeekTs[%d] clientClock[%d] , ClientClockState [%d], estimatedServClock[%d], EstimatedServClockState[%d], oSessionDurationExpired[%d] MimeStr[%s], delta[%d]", converted_ts, clientClock, irClientPlayBackClock.GetState(), estimatedServClock, irEstimatedServerClock.GetState(), iEOSSignalled, irMimeType.get_cstr(), delta)); | |
1181 | 1182 | RequestEventCallBack(JB_NOTIFY_WAIT_FOR_OOO_PACKET_COMPLETE , delta, NULL); |
1182 | 1183 | } |
1183 | 1184 | return false; |