Ethereal-dev: [Ethereal-dev] [PATCH] h.263 GOB number dissection

Note: This archive is from the project's previous web site, ethereal.com. This list is no longer active.

From: Richard van der Hoff <richardv@xxxxxxxxxxxxx>
Date: Fri, 02 Jun 2006 10:55:33 +0100
Hi,

The attached patch makes the h.263 dissector dissect the group-of-block number which comes after a GOB start code.

Cheers,

Richard

--
Richard van der Hoff <richardv@xxxxxxxxxxxxx>
Project Manager
Tel: +44 (0) 845 666 7778
http://www.mxtelecom.com
Index: epan/dissectors/packet-h263.c
===================================================================
RCS file: /cvs/ethereal/epan/dissectors/packet-h263.c,v
retrieving revision 1.1.1.4
retrieving revision 1.4
diff -u -r1.1.1.4 -r1.4
--- epan/dissectors/packet-h263.c	4 Oct 2005 11:53:51 -0000	1.1.1.4
+++ epan/dissectors/packet-h263.c	23 Nov 2005 16:08:16 -0000	1.4
@@ -91,6 +91,7 @@
 static int hf_h263_PB_frames_mode = -1;
 static int hf_h263_data        = -1;
 static int hf_h263_payload     = -1;
+static int hf_h263_GN          = -1;
 
 /* Source format types */
 #define SRCFORMAT_FORB   0  /* forbidden */
@@ -301,7 +302,7 @@
 	data = tvb_get_ntohl(tvb, offset);
 	
 	if (( data & 0xffff8000) == 0x00008000 ) { /* PSC or Group of Block Start Code (GBSC) found */
-		if (( data & 0xfffffc00) == 0x00008000 ) { /* PSC found */
+		if (( data & 0x00007c00) == 0 ) { /* PSC found */
 			if ( check_col( pinfo->cinfo, COL_INFO) )
 			  col_append_str( pinfo->cinfo, COL_INFO, "(PSC) ");
 			if( tree ) {
@@ -339,7 +340,7 @@
 				  proto_tree_add_item( h263_payload_tree, hf_h263_PB_frames_mode, tvb, offset, 1, FALSE );
 			  }
 			}
-		}else if ((data & 0x00007c00)!= 0) { /* GBSC found */
+		} else { /* GBSC found */
 			if ( check_col( pinfo->cinfo, COL_INFO) )
 			  col_append_str( pinfo->cinfo, COL_INFO, "(GBSC) ");
 			if( tree ) {
@@ -350,6 +351,11 @@
 				 *
 				 */
 				proto_tree_add_uint(h263_payload_tree, hf_h263_gbsc,tvb, offset,3,data);
+ 				proto_tree_add_uint(h263_payload_tree, hf_h263_GN, tvb, offset,3,data);
+				/* GN is followed by (optionally) GBSI, then
+				 * GFID and GQUANT, but decoding them requires
+				 * knowing the value of CPM in the picture
+				 * header */
 				offset = offset + 2;
 			}
 		}
@@ -782,7 +788,18 @@
 				"Optional PB-frames mode", HFILL
 			}
 		},
-
+		{
+			&hf_h263_GN,
+			{
+				"H.263 Group Number",
+				"h263.gn",
+				FT_UINT32,
+				BASE_DEC,
+				NULL,
+				0x00007c00,
+				"Group Number, GN", HFILL
+			}
+		},
 };
 
 	static gint *ett[] =
_______________________________________________
Ethereal-dev mailing list
Ethereal-dev@xxxxxxxxxxxx
http://www.ethereal.com/mailman/listinfo/ethereal-dev