[prev in list] [next in list] [prev in thread] [next in thread]
List: helix-server-cvs
Subject: [Server-cvs] engine/dataflow/pub rsdpacketq.h,1.4,1.5
From: rasher () helixcommunity ! org
Date: 2007-12-28 7:38:40
Message-ID: 200712280738.lBS7cpHJ019233 () mailer ! progressive-comp ! com
[Download RAW message or body]
Update of /cvsroot/server/engine/dataflow/pub
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv31847
Modified Files:
rsdpacketq.h
Log Message:
Synopsis
==========
Poor quality live stream with multiple SLTAs and FCS.
Branches : HEAD , SERVER_12_RN
Suggested Reviewer : Jamie
Description
============
When we play a live stream with FCS we see quality of video
degrading after some time.The reason behing this is that the server
discards some packets and does not pass it on to its sink(the Shim).
The reason is that LiveSourceWrapper has a data member CRSDPacketQueue
which contains a list and a PacketBufferQueue.When a GetPacket of the
LiveSource is called it calls the packet queue's GetPacket where
packets are taken from the list or PacketBufferQueue.If packets are
taken from buffer queue,m_ulSize is decremented even though a AddPacket
is not called.
So m_ulSize becomes less than 0 at some point of time and when AddPacket
is called the condition
m_ulSize > m_ulMaxSize ( -1 > 2000) is true as m_ulSize is UINT32.So some of
the packets are discarded and not added as this condition fails.
Fix
==========
Changed the data type of m_ulSize and m_ulMaxSize to INT32.Now the
condition evaluates to False and quality is maintained.
Files Affected
================
server\engine\inputsource\live_source_wrapper.cpp
server\engine\dataflow\pub\rsdpacketq.h
Testing Performed
=================
Functional-Testing:
Checked that a live clip with slta and fcs url plays using 3 copies of
realvideo10.rm and quality does not degrade after a period of time.
Leak-Tests:
n/a
Build verified :win32-i386-vc7,sunos-5.10-sparc-server
Platforms tested: win32-i386-vc7
Thanks
Raj Asher
Index: rsdpacketq.h
===================================================================
RCS file: /cvsroot/server/engine/dataflow/pub/rsdpacketq.h,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -r1.4 -r1.5
--- rsdpacketq.h 16 Oct 2006 21:34:18 -0000 1.4
+++ rsdpacketq.h 28 Dec 2007 07:38:37 -0000 1.5
@@ -76,8 +76,8 @@
UINT32 m_pTailPacketTS;
BOOL m_bQueueDone;
IHXPacket* m_pHeadPacket;
- UINT32 m_ulSize;
- UINT32 m_ulMaxSize;
+ INT32 m_lSize;
+ INT32 m_lMaxSize;
IHXPacket* GetHeadPacket();
_______________________________________________
Server-cvs mailing list
Server-cvs@helixcommunity.org
http://lists.helixcommunity.org/mailman/listinfo/server-cvs
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic