[prev in list] [next in list] [prev in thread] [next in thread] 

List:       helix-server-cvs
Subject:    [Server-cvs] datatype/common/pktskim h263skim.cpp,1.6,1.7
From:       dsingh () helixcommunity ! org
Date:       2007-11-28 10:49:38
Message-ID: 200711281049.lASAnvPr016811 () mailer ! progressive-comp ! com
[Download RAW message or body]

Update of /cvsroot/server/datatype/common/pktskim
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv17736

Modified Files:
	h263skim.cpp 
Log Message:
Synopsis
========
This CR includes changes in end-of-Frame marking in packet info and HX_ASM_SWITCH_OFF \
handling for RTP live. 

Branch: HEAD
Suggested Reviewers: Jamie Gordon

Description
===========
Frame end was decided purely on the basis of marker bit in the rtp header. But it \
should be decided depending on the payload type of each of the datatype(H.263,H.264, \
MPEG-4). The SKIMINFO_PKT_FRAMEEND bit was being set into packet info purely on the \
bases of marker bit for all of the datatypes in function \
PacketSkimmer::GetRTPPacketInfo(). All the packet skimmer classes for datatypes \
H.263, H.264 and MPEG-4 are derived from class PacketSkimmer.

Fix1:
The setting of SKIMINFO_PKT_FRAMEEND bit into packet info flag is now removed and \
being handeled in respective drived classes only based on payload types as given in \
respective RTP payload format RFCs. The changes are made in packet skimmer classes of \
H.263 and mpeg4 video only, H.264 was already having that. 

Fix2:
The HX_ASM_SWITCH_OFF bit in ASMFlags was being set unconditionaly.
Now this bit will be set if SKIMINFO_PKT_FRAMEEND bit is set in packet info flag.

After Fix2, the assertion "HX_ASSERT(pPacket->GetASMFlags())" at line 583 in file \
rtp_base.cpp starts failing. The reason is, because previously the HX_ASM_SWITCH_OFF \
bit in ASMFlags was being set unconditinaly, and the value of ASMFlags could never be \
zero, but now this is not the case. So the said assertion is removed. 

Files Affected
==============
server\datatype\common\pktskim\skimbase.cpp
server\datatype\common\pktskim\h263skim.cpp
server\datatype\common\pktskim\mp4skim.cpp
server\broadcast\transport\rtp\recv\qtstream.cpp
server\protocol\transport\rtp\rtp_base.cpp

Testing Performed
=================
Unit Tests:
-None

Integration Tests:
- Verified playing H.263, H.264 and MPEG-4 video streams on rtp live.

Leak Tests:
- None

Performance Tests:
- None

Build verified: win32-i386-vc7.

Platforms Tested: win32-i386-vc7.

QA Hints
========
-None 

Regards
-Dalvinder


Index: h263skim.cpp
===================================================================
RCS file: /cvsroot/server/datatype/common/pktskim/h263skim.cpp,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -d -r1.6 -r1.7
--- h263skim.cpp	15 Jul 2005 00:08:28 -0000	1.6
+++ h263skim.cpp	28 Nov 2007 10:49:35 -0000	1.7
@@ -145,6 +145,12 @@
         ulPacketInfo |= SKIMINFO_PKT_FRAMESTART;
     }
 
+    /* If marker bit is set, it is end of frame */
+    if ((pRTPHdr[1] >> 7) & 1)
+    {
+        ulPacketInfo |= SKIMINFO_PKT_FRAMEEND;
+    }
+
     uiH263VBit  = (pH263Hdr[0] >> 1) & 1;
 
     uiH263PLen  = ((pH263Hdr[0] & 1) << 5) | pH263Hdr[1] >> 3;


_______________________________________________
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