2008-04-15 14:52:15 +00:00
/* packet-rfc2190.c
*
* Routines for RFC2190 - encapsulated H .263 dissection
*
2008-05-08 14:01:31 +00:00
* Copyright 2003 Niklas Ogren < niklas . ogren @ 7l . se >
2008-04-15 14:52:15 +00:00
* Seven Levels Consultants AB
*
* Copyright 2008 Richard van der Hoff , MX Telecom
* < richardv @ mxtelecom . com >
*
* Wireshark - Network traffic analyzer
* By Gerald Combs < gerald @ wireshark . org >
* Copyright 1998 Gerald Combs
*
2018-02-12 11:23:27 +00:00
* SPDX - License - Identifier : GPL - 2.0 - or - later
2008-04-15 14:52:15 +00:00
*/
/*
* This dissector tries to dissect the H .263 protocol according to
* RFC 2190 , http : //www.ietf.org/rfc/rfc2190.txt
*/
2012-09-20 02:03:38 +00:00
# include "config.h"
2008-04-15 14:52:15 +00:00
# include <epan/packet.h>
# include <epan/rtp_pt.h>
# include <epan/iax2_codec_type.h>
# include "packet-h263.h"
2013-12-12 17:45:22 +00:00
void proto_register_rfc2190 ( void ) ;
void proto_reg_handoff_rfc2190 ( void ) ;
2008-04-15 14:52:15 +00:00
/* H.263 header fields */
2014-09-30 20:59:17 +00:00
static int proto_rfc2190 = - 1 ;
2008-04-15 14:52:15 +00:00
/* Mode A header */
2008-04-15 15:15:35 +00:00
static int hf_rfc2190_ftype = - 1 ;
static int hf_rfc2190_pbframes = - 1 ;
static int hf_rfc2190_sbit = - 1 ;
static int hf_rfc2190_ebit = - 1 ;
static int hf_rfc2190_srcformat = - 1 ;
2017-05-19 23:00:19 +00:00
static int hf_rfc2190_picture_coding_type_modeA = - 1 ;
static int hf_rfc2190_unrestricted_motion_vector_modeA = - 1 ;
static int hf_rfc2190_syntax_based_arithmetic_modeA = - 1 ;
static int hf_rfc2190_advanced_prediction_modeA = - 1 ;
static int hf_rfc2190_r_modeA = - 1 ;
2008-04-15 15:15:35 +00:00
static int hf_rfc2190_rr = - 1 ;
static int hf_rfc2190_dbq = - 1 ;
static int hf_rfc2190_trb = - 1 ;
static int hf_rfc2190_tr = - 1 ;
2008-04-15 14:52:15 +00:00
/* Additional fields for Mode B or C header */
2017-05-19 23:00:19 +00:00
static int hf_rfc2190_picture_coding_type_modeB = - 1 ;
static int hf_rfc2190_unrestricted_motion_vector_modeB = - 1 ;
static int hf_rfc2190_syntax_based_arithmetic_modeB = - 1 ;
static int hf_rfc2190_advanced_prediction_modeB = - 1 ;
static int hf_rfc2190_r_modeB = - 1 ;
2008-04-15 15:15:35 +00:00
static int hf_rfc2190_quant = - 1 ;
static int hf_rfc2190_gobn = - 1 ;
static int hf_rfc2190_mba = - 1 ;
static int hf_rfc2190_hmv1 = - 1 ;
static int hf_rfc2190_vmv1 = - 1 ;
static int hf_rfc2190_hmv2 = - 1 ;
static int hf_rfc2190_vmv2 = - 1 ;
2014-09-30 20:59:17 +00:00
static gint ett_rfc2190 = - 1 ;
2008-09-26 17:04:01 +00:00
static dissector_handle_t h263_handle ;
2016-12-17 01:06:11 +00:00
static dissector_handle_t rfc2190_handle ;
2008-04-15 14:52:15 +00:00
2015-11-14 14:23:33 +00:00
static int
dissect_rfc2190 ( tvbuff_t * tvb , packet_info * pinfo , proto_tree * tree , void * data _U_ )
2008-04-15 14:52:15 +00:00
{
2014-09-30 20:59:17 +00:00
proto_item * ti = NULL ;
proto_tree * rfc2190_tree = NULL ;
int offset = 0 ;
unsigned int rfc2190_version = 0 ;
tvbuff_t * next_tvb ;
int hdr_len = 0 ;
2008-04-15 14:52:15 +00:00
2008-04-15 15:15:35 +00:00
rfc2190_version = ( tvb_get_guint8 ( tvb , offset ) & 0xc0 ) > > 6 ;
2008-04-15 14:52:15 +00:00
2009-08-09 07:59:51 +00:00
col_set_str ( pinfo - > cinfo , COL_PROTOCOL , " H.263 " ) ;
2008-04-15 14:52:15 +00:00
2014-09-30 20:59:17 +00:00
/* Three formats (mode A, mode B and mode C) are defined for H.263
* payload header . In mode A , an H .263 payload header of four bytes is
* present before actual compressed H .263 video bitstream in a packet .
* It allows fragmentation at GOB boundaries . In mode B , an eight byte
* H .263 payload header is used and each packet starts at MB boundaries
* without the PB - frames option . Finally , a twelve byte H .263 payload
* header is defined in mode C to support fragmentation at MB boundaries
* for frames that are coded with the PB - frames option .
*/
2008-04-15 15:15:35 +00:00
if ( rfc2190_version = = 0x00 ) {
2009-09-24 20:00:21 +00:00
col_append_str ( pinfo - > cinfo , COL_INFO , " MODE A " ) ;
2014-09-30 20:59:17 +00:00
hdr_len = 4 ;
2008-04-15 14:52:15 +00:00
}
2008-04-15 15:15:35 +00:00
else if ( rfc2190_version = = 0x02 ) {
2009-09-24 20:00:21 +00:00
col_append_str ( pinfo - > cinfo , COL_INFO , " MODE B " ) ;
2014-09-30 20:59:17 +00:00
hdr_len = 8 ;
2008-04-15 14:52:15 +00:00
}
2008-04-15 15:15:35 +00:00
else if ( rfc2190_version = = 0x03 ) {
2009-09-24 20:00:21 +00:00
col_append_str ( pinfo - > cinfo , COL_INFO , " MODE C " ) ;
2014-09-30 20:59:17 +00:00
hdr_len = 12 ;
2008-04-15 14:52:15 +00:00
}
if ( tree ) {
2012-04-01 09:19:02 +00:00
ti = proto_tree_add_item ( tree , proto_rfc2190 , tvb , offset , hdr_len , ENC_NA ) ;
2008-04-15 15:15:35 +00:00
rfc2190_tree = proto_item_add_subtree ( ti , ett_rfc2190 ) ;
2011-10-21 02:10:19 +00:00
2008-04-15 17:26:29 +00:00
/* FBIT 1st octet, 1 bit */
2014-09-30 20:59:17 +00:00
proto_tree_add_item ( rfc2190_tree , hf_rfc2190_ftype , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2008-04-15 17:26:29 +00:00
/* PBIT 1st octet, 1 bit */
2014-09-30 20:59:17 +00:00
proto_tree_add_item ( rfc2190_tree , hf_rfc2190_pbframes , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2008-04-15 17:26:29 +00:00
/* SBIT 1st octet, 3 bits */
2014-09-30 20:59:17 +00:00
proto_tree_add_item ( rfc2190_tree , hf_rfc2190_sbit , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2008-04-15 17:26:29 +00:00
/* EBIT 1st octet, 3 bits */
2014-09-30 20:59:17 +00:00
proto_tree_add_item ( rfc2190_tree , hf_rfc2190_ebit , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2008-04-15 14:52:15 +00:00
offset + + ;
2008-04-15 17:26:29 +00:00
/* SRC 2nd octet, 3 bits */
2014-09-30 20:59:17 +00:00
proto_tree_add_item ( rfc2190_tree , hf_rfc2190_srcformat , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2008-04-15 17:26:29 +00:00
if ( rfc2190_version = = 0x00 ) { /* MODE A */
/* I flag, 1 bit */
2017-05-19 23:00:19 +00:00
proto_tree_add_item ( rfc2190_tree , hf_rfc2190_picture_coding_type_modeA , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2008-04-15 17:26:29 +00:00
/* U flag, 1 bit */
2017-05-19 23:00:19 +00:00
proto_tree_add_item ( rfc2190_tree , hf_rfc2190_unrestricted_motion_vector_modeA , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2008-04-15 17:26:29 +00:00
/* S flag, 1 bit */
2017-05-19 23:00:19 +00:00
proto_tree_add_item ( rfc2190_tree , hf_rfc2190_syntax_based_arithmetic_modeA , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2008-04-15 17:26:29 +00:00
/* A flag, 1 bit */
2017-05-19 23:00:19 +00:00
proto_tree_add_item ( rfc2190_tree , hf_rfc2190_advanced_prediction_modeA , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2011-10-21 02:10:19 +00:00
2016-01-06 00:58:42 +00:00
/* Reserved 2nd octet, 1 bit + 3rd octet 3 bits */
2017-05-19 23:00:19 +00:00
proto_tree_add_item ( rfc2190_tree , hf_rfc2190_r_modeA , tvb , offset , 2 , ENC_BIG_ENDIAN ) ;
2008-04-15 17:26:29 +00:00
offset + + ;
2016-01-06 00:58:42 +00:00
/* DBQ 3 octet, 2 bits */
2014-09-30 20:59:17 +00:00
proto_tree_add_item ( rfc2190_tree , hf_rfc2190_dbq , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2016-01-06 00:58:42 +00:00
/* TRB 3 octet, 3 bits */
2014-09-30 20:59:17 +00:00
proto_tree_add_item ( rfc2190_tree , hf_rfc2190_trb , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2008-04-15 17:26:29 +00:00
offset + + ;
2011-10-21 02:10:19 +00:00
2016-01-06 00:58:42 +00:00
/* TR 4 octet, 8 bits */
2015-05-22 02:20:29 +00:00
proto_tree_add_item ( rfc2190_tree , hf_rfc2190_tr , tvb , offset , 1 , ENC_NA ) ;
2011-10-21 02:10:19 +00:00
2008-04-15 17:26:29 +00:00
offset + + ;
2008-04-15 14:52:15 +00:00
2008-04-15 17:26:29 +00:00
} else { /* MODE B or MODE C */
2016-01-06 00:58:42 +00:00
/* QUANT 2 octet, 5 bits */
2015-05-22 02:20:29 +00:00
proto_tree_add_item ( rfc2190_tree , hf_rfc2190_quant , tvb , offset , 1 , ENC_NA ) ;
2008-04-15 14:52:15 +00:00
2008-04-15 17:26:29 +00:00
offset + + ;
2008-04-15 14:52:15 +00:00
2016-01-06 00:58:42 +00:00
/* GOBN 3 octet, 5 bits */
2015-05-22 02:20:29 +00:00
proto_tree_add_item ( rfc2190_tree , hf_rfc2190_gobn , tvb , offset , 1 , ENC_NA ) ;
2016-01-06 00:58:42 +00:00
/* MBA 3 octet, 3 bits + 4 octet 6 bits */
2017-05-19 23:00:19 +00:00
proto_tree_add_item ( rfc2190_tree , hf_rfc2190_mba , tvb , offset , 2 , ENC_BIG_ENDIAN ) ;
2011-10-21 02:10:19 +00:00
2008-04-15 17:26:29 +00:00
offset + + ;
2008-04-15 14:52:15 +00:00
2016-01-06 00:58:42 +00:00
/* Reserved 4th octet, 2 bits */
2017-05-19 23:00:19 +00:00
proto_tree_add_item ( rfc2190_tree , hf_rfc2190_r_modeB , tvb , offset , 1 , ENC_NA ) ;
2008-04-15 14:52:15 +00:00
2008-04-15 17:26:29 +00:00
offset + + ;
2008-04-15 14:52:15 +00:00
2008-04-15 17:26:29 +00:00
/* I flag, 1 bit */
2017-05-19 23:00:19 +00:00
proto_tree_add_item ( rfc2190_tree , hf_rfc2190_picture_coding_type_modeB , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2008-04-15 17:26:29 +00:00
/* U flag, 1 bit */
2017-05-19 23:00:19 +00:00
proto_tree_add_item ( rfc2190_tree , hf_rfc2190_unrestricted_motion_vector_modeB , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2008-04-15 17:26:29 +00:00
/* S flag, 1 bit */
2017-05-19 23:00:19 +00:00
proto_tree_add_item ( rfc2190_tree , hf_rfc2190_syntax_based_arithmetic_modeB , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2008-04-15 17:26:29 +00:00
/* A flag, 1 bit */
2017-05-19 23:00:19 +00:00
proto_tree_add_item ( rfc2190_tree , hf_rfc2190_advanced_prediction_modeB , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2011-10-21 02:10:19 +00:00
2016-01-06 00:58:42 +00:00
/* HMV1 5th octet, 4 bits + 6th octet 3 bits*/
2017-05-19 23:00:19 +00:00
proto_tree_add_item ( rfc2190_tree , hf_rfc2190_hmv1 , tvb , offset , 2 , ENC_BIG_ENDIAN ) ;
2011-10-21 02:10:19 +00:00
2008-04-15 17:26:29 +00:00
offset + + ;
2011-10-21 02:10:19 +00:00
2016-01-06 00:58:42 +00:00
/* VMV1 6th octet, 5 bits + 7th octet 2 bits*/
2017-05-19 23:00:19 +00:00
proto_tree_add_item ( rfc2190_tree , hf_rfc2190_vmv1 , tvb , offset , 2 , ENC_BIG_ENDIAN ) ;
2011-10-21 02:10:19 +00:00
2008-04-15 17:26:29 +00:00
offset + + ;
2008-04-15 14:52:15 +00:00
2016-01-06 00:58:42 +00:00
/* HMV2 7th octet, 6 bits + 8th octet 1 bit*/
2017-05-19 23:00:19 +00:00
proto_tree_add_item ( rfc2190_tree , hf_rfc2190_hmv2 , tvb , offset , 2 , ENC_BIG_ENDIAN ) ;
2011-10-21 02:10:19 +00:00
2008-04-15 17:26:29 +00:00
offset + + ;
2008-04-15 14:52:15 +00:00
2016-01-06 00:58:42 +00:00
/* VMV2 8th octet, 7 bits*/
2015-05-22 02:20:29 +00:00
proto_tree_add_item ( rfc2190_tree , hf_rfc2190_vmv2 , tvb , offset , 1 , ENC_NA ) ;
2011-10-21 02:10:19 +00:00
2008-04-15 17:26:29 +00:00
offset + + ;
2008-04-15 14:52:15 +00:00
2008-04-15 17:26:29 +00:00
if ( rfc2190_version = = 0x03 ) { /* MODE C */
2016-01-06 00:58:42 +00:00
/* Reserved 9th to 11th octet, 8 + 8 + 3 bits */
2017-05-19 23:00:19 +00:00
proto_tree_add_item ( rfc2190_tree , hf_rfc2190_rr , tvb , offset , 3 , ENC_BIG_ENDIAN ) ;
2011-10-21 02:10:19 +00:00
2008-04-15 17:26:29 +00:00
offset + = 2 ;
2008-04-15 14:52:15 +00:00
2016-01-06 00:58:42 +00:00
/* DBQ 11th octet, 2 bits */
2012-04-01 09:19:02 +00:00
proto_tree_add_item ( rfc2190_tree , hf_rfc2190_dbq , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2016-01-06 00:58:42 +00:00
/* TRB 11th octet, 3 bits */
2012-04-01 09:19:02 +00:00
proto_tree_add_item ( rfc2190_tree , hf_rfc2190_trb , tvb , offset , 1 , ENC_BIG_ENDIAN ) ;
2011-10-21 02:10:19 +00:00
2008-04-15 17:26:29 +00:00
offset + + ;
2011-10-21 02:10:19 +00:00
2016-01-06 00:58:42 +00:00
/* TR 12th octet, 8 bits */
2017-05-19 23:00:19 +00:00
proto_tree_add_item ( rfc2190_tree , hf_rfc2190_tr , tvb , offset , 1 , ENC_NA ) ;
2011-10-21 02:10:19 +00:00
2008-04-15 17:26:29 +00:00
offset + + ;
} /* end mode c */
} /* end not mode a */
} else {
switch ( rfc2190_version ) {
case 0x00 : /* MODE A */
offset + = 4 ;
break ;
case 0x01 : /* MODE B */
offset + = 8 ;
break ;
case 0x02 : /* MODE C */
offset + = 12 ;
break ;
}
}
2011-10-21 02:10:19 +00:00
2008-04-15 14:52:15 +00:00
/* The rest of the packet is the H.263 stream */
2012-04-01 09:19:02 +00:00
next_tvb = tvb_new_subset_remaining ( tvb , offset ) ;
2008-04-15 14:52:15 +00:00
call_dissector ( h263_handle , next_tvb , pinfo , tree ) ;
2015-11-14 14:23:33 +00:00
return tvb_captured_length ( tvb ) ;
2008-04-15 14:52:15 +00:00
}
void
2008-04-15 15:15:35 +00:00
proto_reg_handoff_rfc2190 ( void )
2008-04-15 14:52:15 +00:00
{
2014-09-30 20:59:17 +00:00
dissector_add_uint ( " rtp.pt " , PT_H263 , rfc2190_handle ) ;
dissector_add_uint ( " iax2.codec " , AST_FORMAT_H263 , rfc2190_handle ) ;
2008-04-15 14:52:15 +00:00
2016-03-16 13:02:52 +00:00
h263_handle = find_dissector_add_dependency ( " h263data " , proto_rfc2190 ) ;
2008-04-15 14:52:15 +00:00
}
void
2008-04-15 15:15:35 +00:00
proto_register_rfc2190 ( void )
2008-04-15 14:52:15 +00:00
{
2014-09-30 20:59:17 +00:00
static hf_register_info hf [ ] = {
{
& hf_rfc2190_ftype ,
{
" F " ,
" rfc2190.ftype " ,
FT_BOOLEAN ,
8 ,
NULL ,
0x80 ,
" Indicates the mode of the payload header (MODE A or B/C) " , HFILL
}
} ,
{
& hf_rfc2190_pbframes ,
{
" p/b frame " ,
" rfc2190.pbframes " ,
FT_BOOLEAN ,
8 ,
NULL ,
0x40 ,
" Optional PB-frames mode as defined by H.263 (MODE C) " , HFILL
}
} ,
{
& hf_rfc2190_sbit ,
{
" Start bit position " ,
" rfc2190.sbit " ,
FT_UINT8 ,
BASE_DEC ,
NULL ,
0x38 ,
" Start bit position specifies number of most significant bits that shall be ignored in the first data byte. " , HFILL
}
} ,
{
& hf_rfc2190_ebit ,
{
" End bit position " ,
" rfc2190.ebit " ,
FT_UINT8 ,
BASE_DEC ,
NULL ,
0x7 ,
" End bit position specifies number of least significant bits that shall be ignored in the last data byte. " , HFILL
}
} ,
{
& hf_rfc2190_srcformat ,
{
" SRC format " ,
" rfc2190.srcformat " ,
FT_UINT8 ,
BASE_DEC ,
VALS ( h263_srcformat_vals ) ,
0xe0 ,
" Source format specifies the resolution of the current picture. " , HFILL
}
} ,
{
2017-05-19 23:00:19 +00:00
& hf_rfc2190_picture_coding_type_modeA ,
2014-09-30 20:59:17 +00:00
{
" Inter-coded frame " ,
" rfc2190.picture_coding_type " ,
FT_BOOLEAN ,
8 ,
NULL ,
2017-05-19 23:00:19 +00:00
0x08 ,
2014-09-30 20:59:17 +00:00
" Picture coding type, intra-coded (false) or inter-coded (true) " , HFILL
}
} ,
{
2017-05-19 23:00:19 +00:00
& hf_rfc2190_unrestricted_motion_vector_modeA ,
2014-09-30 20:59:17 +00:00
{
" Motion vector " ,
" rfc2190.unrestricted_motion_vector " ,
FT_BOOLEAN ,
8 ,
NULL ,
2017-05-19 23:00:19 +00:00
0x10 ,
2014-09-30 20:59:17 +00:00
" Unrestricted Motion Vector option for current picture " , HFILL
}
} ,
{
2017-05-19 23:00:19 +00:00
& hf_rfc2190_syntax_based_arithmetic_modeA ,
2014-09-30 20:59:17 +00:00
{
" Syntax-based arithmetic coding " ,
" rfc2190.syntax_based_arithmetic " ,
FT_BOOLEAN ,
8 ,
NULL ,
2017-05-19 23:00:19 +00:00
0x20 ,
2014-09-30 20:59:17 +00:00
" Syntax-based Arithmetic Coding option for current picture " , HFILL
}
} ,
{
2017-05-19 23:00:19 +00:00
& hf_rfc2190_advanced_prediction_modeA ,
2014-09-30 20:59:17 +00:00
{
" Advanced prediction option " ,
" rfc2190.advanced_prediction " ,
FT_BOOLEAN ,
8 ,
NULL ,
2017-05-19 23:00:19 +00:00
0x40 ,
" Advanced Prediction option for current picture " , HFILL
}
} ,
{
& hf_rfc2190_picture_coding_type_modeB ,
{
" Inter-coded frame " ,
" rfc2190.picture_coding_type " ,
FT_BOOLEAN ,
8 ,
NULL ,
0x80 ,
" Picture coding type, intra-coded (false) or inter-coded (true) " , HFILL
}
} ,
{
& hf_rfc2190_unrestricted_motion_vector_modeB ,
{
" Motion vector " ,
" rfc2190.unrestricted_motion_vector " ,
FT_BOOLEAN ,
8 ,
NULL ,
0x40 ,
" Unrestricted Motion Vector option for current picture " , HFILL
}
} ,
{
& hf_rfc2190_syntax_based_arithmetic_modeB ,
{
" Syntax-based arithmetic coding " ,
" rfc2190.syntax_based_arithmetic " ,
FT_BOOLEAN ,
8 ,
NULL ,
0x20 ,
" Syntax-based Arithmetic Coding option for current picture " , HFILL
}
} ,
{
& hf_rfc2190_advanced_prediction_modeB ,
{
" Advanced prediction option " ,
" rfc2190.advanced_prediction " ,
FT_BOOLEAN ,
8 ,
NULL ,
0x10 ,
2014-09-30 20:59:17 +00:00
" Advanced Prediction option for current picture " , HFILL
}
} ,
{
& hf_rfc2190_dbq ,
{
" Differential quantization parameter " ,
" rfc2190.dbq " ,
FT_UINT8 ,
BASE_DEC ,
NULL ,
0x18 ,
" Differential quantization parameter used to calculate quantizer for the B frame based on quantizer for the P frame, when PB-frames option is used. " , HFILL
}
} ,
{
& hf_rfc2190_trb ,
{
" Temporal Reference for B frames " ,
" rfc2190.trb " ,
FT_UINT8 ,
BASE_DEC ,
NULL ,
0x07 ,
" Temporal Reference for the B frame as defined by H.263 " , HFILL
}
} ,
{
& hf_rfc2190_tr ,
{
" Temporal Reference for P frames " ,
" rfc2190.tr " ,
FT_UINT8 ,
BASE_DEC ,
NULL ,
0x0 ,
" Temporal Reference for the P frame as defined by H.263 " , HFILL
}
} ,
{
& hf_rfc2190_quant ,
{
" Quantizer " ,
" rfc2190.quant " ,
FT_UINT8 ,
BASE_DEC ,
NULL ,
2015-05-22 02:20:29 +00:00
0x1F ,
2014-09-30 20:59:17 +00:00
" Quantization value for the first MB coded at the starting of the packet. " , HFILL
}
} ,
{
& hf_rfc2190_gobn ,
{
" GOB Number " ,
" rfc2190.gobn " ,
FT_UINT8 ,
BASE_DEC ,
NULL ,
2015-05-22 02:20:29 +00:00
0xF8 ,
2014-09-30 20:59:17 +00:00
" GOB number in effect at the start of the packet. " , HFILL
}
} ,
{
& hf_rfc2190_mba ,
{
" Macroblock address " ,
" rfc2190.mba " ,
FT_UINT16 ,
BASE_DEC ,
NULL ,
2017-05-19 23:00:19 +00:00
0x3FE0 ,
2014-09-30 20:59:17 +00:00
" The address within the GOB of the first MB in the packet, counting from zero in scan order. " , HFILL
}
} ,
{
& hf_rfc2190_hmv1 ,
{
" Horizontal motion vector 1 " ,
" rfc2190.hmv1 " ,
2017-05-19 23:00:19 +00:00
FT_UINT16 ,
2014-09-30 20:59:17 +00:00
BASE_DEC ,
NULL ,
2017-05-19 23:00:19 +00:00
0x07F0 ,
2014-09-30 20:59:17 +00:00
" Horizontal motion vector predictor for the first MB in this packet " , HFILL
}
} ,
{
& hf_rfc2190_vmv1 ,
{
" Vertical motion vector 1 " ,
" rfc2190.vmv1 " ,
FT_UINT8 ,
BASE_DEC ,
NULL ,
2017-05-19 23:00:19 +00:00
0x03F8 ,
2014-09-30 20:59:17 +00:00
" Vertical motion vector predictor for the first MB in this packet " , HFILL
}
} ,
{
& hf_rfc2190_hmv2 ,
{
" Horizontal motion vector 2 " ,
" rfc2190.hmv2 " ,
FT_UINT8 ,
BASE_DEC ,
NULL ,
2017-05-19 23:00:19 +00:00
0x01FC ,
2014-09-30 20:59:17 +00:00
" Horizontal motion vector predictor for block number 3 in the first MB in this packet when four motion vectors are used with the advanced prediction option. " , HFILL
}
} ,
{
& hf_rfc2190_vmv2 ,
{
" Vertical motion vector 2 " ,
" rfc2190.vmv2 " ,
FT_UINT8 ,
BASE_DEC ,
NULL ,
2015-05-22 02:20:29 +00:00
0x7F ,
2014-09-30 20:59:17 +00:00
" Vertical motion vector predictor for block number 3 in the first MB in this packet when four motion vectors are used with the advanced prediction option. " , HFILL
}
} ,
{
2017-05-19 23:00:19 +00:00
& hf_rfc2190_r_modeA ,
{
" Reserved field " ,
" rfc2190.r " ,
FT_UINT16 ,
BASE_DEC ,
NULL ,
0x0380 ,
" Reserved field that should contain zeroes " , HFILL
}
} ,
{
& hf_rfc2190_r_modeB ,
2014-09-30 20:59:17 +00:00
{
" Reserved field " ,
" rfc2190.r " ,
FT_UINT8 ,
BASE_DEC ,
NULL ,
2017-05-19 23:00:19 +00:00
0x03 ,
2014-09-30 20:59:17 +00:00
" Reserved field that should contain zeroes " , HFILL
}
} ,
{
& hf_rfc2190_rr ,
{
" Reserved field 2 " ,
" rfc2190.rr " ,
2017-05-19 23:00:19 +00:00
FT_UINT24 ,
2014-09-30 20:59:17 +00:00
BASE_DEC ,
NULL ,
2017-05-19 23:00:19 +00:00
0x07FFFF ,
2014-09-30 20:59:17 +00:00
" Reserved field that should contain zeroes " , HFILL
}
} ,
} ;
static gint * ett [ ] = {
& ett_rfc2190 ,
} ;
proto_register_subtree_array ( ett , array_length ( ett ) ) ;
proto_rfc2190 = proto_register_protocol ( " H.263 RTP Payload header (RFC2190) " ,
" RFC2190 " , " rfc2190 " ) ;
proto_register_field_array ( proto_rfc2190 , hf , array_length ( hf ) ) ;
2016-12-17 01:06:11 +00:00
rfc2190_handle = register_dissector ( " rfc2190 " , dissect_rfc2190 , proto_rfc2190 ) ;
2008-04-15 14:52:15 +00:00
}
2014-09-30 20:59:17 +00:00
/*
2019-07-26 18:43:17 +00:00
* Editor modelines - https : //www.wireshark.org/tools/modelines.html
2014-09-30 20:59:17 +00:00
*
* Local variables :
* c - basic - offset : 4
* tab - width : 8
* indent - tabs - mode : nil
* End :
*
* vi : set shiftwidth = 4 tabstop = 8 expandtab :
* : indentSize = 4 : tabSize = 8 : noTabs = true :
*/