diff options
-rw-r--r-- | epan/dissectors/packet-mp2t.c | 2 | ||||
-rw-r--r-- | print.c | 12 |
2 files changed, 11 insertions, 3 deletions
diff --git a/epan/dissectors/packet-mp2t.c b/epan/dissectors/packet-mp2t.c index 45bc8b6146..b7a2867433 100644 --- a/epan/dissectors/packet-mp2t.c +++ b/epan/dissectors/packet-mp2t.c @@ -805,7 +805,7 @@ dissect_tsp(tvbuff_t *tvb, volatile gint offset, packet_info *pinfo, offset += 4; /* Create a subtree for analysis stuff */ - item = proto_tree_add_text(mp2t_tree, tvb, 0, 0, "MPEG2 PCR Analysis"); + item = proto_tree_add_text(mp2t_tree, tvb, offset, 0, "MPEG2 PCR Analysis"); PROTO_ITEM_SET_GENERATED(item); mp2t_analysis_tree = proto_item_add_subtree(item, ett_mp2t_analysis); @@ -336,7 +336,11 @@ proto_tree_write_node_pdml(proto_node *node, gpointer data) print_escaped_xml(pdata->fh, label_ptr); fprintf(pdata->fh, "\" size=\"%d", fi->length); - fprintf(pdata->fh, "\" pos=\"%d", fi->start); + if (node->parent && node->parent->finfo && (fi->start < node->parent->finfo->start)) { + fprintf(pdata->fh, "\" pos=\"%d", node->parent->finfo->start + fi->start); + } else { + fprintf(pdata->fh, "\" pos=\"%d", fi->start); + } fputs("\" value=\"", pdata->fh); write_pdml_field_hex_value(pdata, fi); @@ -401,7 +405,11 @@ proto_tree_write_node_pdml(proto_node *node, gpointer data) fprintf(pdata->fh, "\" hide=\"yes"); fprintf(pdata->fh, "\" size=\"%d", fi->length); - fprintf(pdata->fh, "\" pos=\"%d", fi->start); + if (node->parent && node->parent->finfo && (fi->start < node->parent->finfo->start)) { + fprintf(pdata->fh, "\" pos=\"%d", node->parent->finfo->start + fi->start); + } else { + fprintf(pdata->fh, "\" pos=\"%d", fi->start); + } /* fprintf(pdata->fh, "\" id=\"%d", fi->hfinfo->id);*/ /* show, value, and unmaskedvalue attributes */ |