List Info

Thread: CR: RTSP, RTP and 3GPP Adaptation fixes




CR: RTSP, RTP and 3GPP Adaptation fixes
user name
2006-11-15 22:40:36
I think the if condition below will always be true. You may
want to use
INT32 cast.

+HXBOOL
+RTSPClientProtocol::trimResumeRequestPendingReplyList(UINT3
2
ulPlayReplySeqNum)
+{
+    UINT32* pHeadCmdSeqNum;
+    HXBOOL bIsResumeReply = FALSE;
+
+
+    while (!m_ResumeRequestPendingReplyList.IsEmpty())
+    {
+	pHeadCmdSeqNum = (UINT32*)
m_ResumeRequestPendingReplyList.GetHead();
+	if ((ulPlayReplySeqNum - (*pHeadCmdSeqNum)) >= 0)
<<<<<<<<<<<<<<<
<<<<------------
+	{
+	    if ((*pHeadCmdSeqNum) == ulPlayReplySeqNum)
+	    {
+		bIsResumeReply = TRUE;
+	    }
+
+	    m_ResumeRequestPendingReplyList.RemoveHead();
+	    delete pHeadCmdSeqNum;
+	}
+	else
+	{
+	    break;
+	}
+    }
+
+    return bIsResumeReply;
+}


-----Original Message-----
From: protocol-dev-bounceshelixcommunity.org
[mailto:protocol-dev-bounceshelixcommunity.org]On
Behalf Of Milko Boic
Sent: Monday, November 13, 2006 11:36 PM
To: protocol-devhelixcommunity.org; helix-client-devhelixcommunity.org
Subject: [Protocol-dev] CR: RTSP, RTP and 3GPP Adaptation
fixes


Modified by: milkoreal.com
Date: 11:13:06
Project: Atlas

Synopsis: RTSP, RTP and 3GPP Adaptation fixes

Overview:
This submission includes enhancements and fixes to a number
of RTSP
protocol related defects:

-> Enabled logging in rtsp protocol library

-> Properly handled PLAY reponse to PLAY request issued
for resumption of
playback not to be isunderstood for PLAY response received
on
seek.  Previously, the following sequence of RTSP commands
caused
mishandling in the transport buffer due to improperly set
first sequence
number and thus resuting in freeze of audio or video
playback or freeze in
both.  The freezing occured due to inclusion of stale data
into poset seek
packets.

PAUSE

PAUSE resp

PLAY  (resume)

PLAY  (seek)

PLAY resp (resume)

PLAY resp (seek)

The correction records PLAY command sequence numbers
represeting resumption
(as opposed to seek) and handles the response differently.

-> In RTP transport removed time-out for receotion of
play response.  If
play response is not received, playback will not start.  Any
pre-start
packet queueing is limited to the set transport buffer byte
limit.

-> Corrected handling of 3gpp alternate streams.  The
parsing logic did not
properly set RTPPayloadType if an alternate stream was
chosen.  This
resulted all incomming RTP packets to be rejected due to not
matching the
RTP payload.

-> Corrected handling of fast start on RTP streams with
RTSP pipelining
enabled.  Previously, the code crashed in attempt to set
FastStart on
transport streams not yet set-up.  This occured to RTPS
pipelining
optimizations which allowe playback engine to proceed with
set-up prior to
all streams setting up porperly.  The fix account for
possibility of fast
start being communicated to a transport stream prior to it
being fully
set-up and deferes needed action until full set-up is
accomplished.

-> Properly handled pipleined seek messaged in RTSP/RTP
by keeping track of
outstanding seeks in transport and ignoring RTP info for
intermediate seeks:
PLAY (seek1)

PLAY (seek2)

PLAY (seek3)

PLAY resp (seek1)

PLAY resp (seek2)

PLAY resp (seek3)

-> Updated few log statements in client audio services
and corrected
sequence of m_Owner->CheckIfLastNMilliSecsToBeStored()
invocation thus
resulting on proper communication of NMilliSecsToBeStored on
stream
creation.  This only correctes asserts in certain cases.  No
known defects
are associated with this change.


Files Modified:
/client/audiosvc/hxaudply.cpp,v
/client/audiosvc/hxaudstr_new.cpp,v
/protocol/rtsp/rtspclnt.cpp,v
/protocol/rtsp/pub/rtspclnt.h,v
/protocol/sdp/sdpmdparse.cpp,v
/protocol/transport/common/system/rtsptran.cpp,v
/protocol/transport/common/system/transbuf.cpp,v
/protocol/transport/common/system/pub/rtsptran.h,v
/protocol/transport/common/system/pub/transbuf.h,v
/protocol/transport/rtp/rtptran.cpp,v
/protocol/transport/rtp/pub/rtptran.h,v


Image Size and Heap Use impact (Client -Only):
Insignificant.

Platforms and Profiles Affected:
All

Distribution Libraries Affected:
none

Distribution library impact and planned action:
n/a

Platforms and Profiles Build Verified:
win32-i386-vc7, helix-client-all-defines

Platforms and Profiles Functionality verified:
win32



_______________________________________________
Protocol-dev mailing list
Protocol-devhelixcommunity.org
http://lists.helixcommunity.org/mailman/listinfo/pr
otocol-dev
[1]

about | contact  Other archives ( Real Estate discussion Medical topics )