[Live-devel] Extracting VOP coding type from MPEG4 streams

Ross Finlayson finlayson at live555.com
Wed Oct 24 01:00:45 PDT 2007


>We are trying to extract VOP coding type in client side from MPEG4
>streams in processSpecialHeader() function in MPEG4ESVideoRTPSource.cpp

No, you shouldn't do that there.  (In general, you can't expect any 
support once you've modified the supplied code.)  If you want to 
inspect (or modify) RTP payload data, then you should do so in the 
object that *reads from* your "MPEG4ESVideo RTPSource" object


>if(fCurrentPacketBeginsFrame){
>
>       if((packet->data())[3] == 0xB6){
>           unsigned char vop_coding_type = (packet->data())[4];
>           vop_coding_type = vop_coding_type>>6;
>	  }
>   }
>
>We observed that vop_coding_type value is always 1 which is
>predictive-coded (P) type. The stream consists of both I and P frames.
>Are we missing anything in the above code.

Yes, you're missing the fact that the RTP packet payload doesn't 
always begin with a VOP.  It usually always *contains* a VOP, but 
sometimes begins with a VISUAL_OBJECT_SEQUENCE, GROUP_VOP, and/or 
VISUAL_OBJECT first.  (This is especially true when the VOP is an 
I-frame.)
-- 

Ross Finlayson
Live Networks, Inc.
http://www.live555.com/


More information about the live-devel mailing list