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

List:       helix-server-cvs
Subject:    [Server-cvs] datatype/common/pktskim mp4skim.cpp,1.10,1.10.26.1
From:       dsingh () helixcommunity ! org
Date:       2007-11-28 11:03:54
Message-ID: 200711281104.lASB420h017911 () mailer ! progressive-comp ! com
[Download RAW message or body]

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

Modified Files:
      Tag: SERVER_12
	mp4skim.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: mp4skim.cpp
===================================================================
RCS file: /cvsroot/server/datatype/common/pktskim/mp4skim.cpp,v
retrieving revision 1.10
retrieving revision 1.10.26.1
diff -u -d -r1.10 -r1.10.26.1
--- mp4skim.cpp	15 Jul 2005 00:08:28 -0000	1.10
+++ mp4skim.cpp	28 Nov 2007 11:03:23 -0000	1.10.26.1
@@ -95,6 +95,12 @@
 
     // rtp marker bit
     uiRTPMarker = ((pRTPHdr[1] >> 7) & 0x01);
+    /* If marker bit is set, there can be multiple VOPs in the RTP packet
+    ** or this is the last RTP packet of a VOP */
+    if (uiRTPMarker)
+    {
+        ulPacketInfo |= SKIMINFO_PKT_FRAMEEND;
+    }
 
     // scan the mp4 data to find start code prefix (0x00, 0x00, 0x01)
   


_______________________________________________
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