summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--epan/dissectors/packet-mp2t.c2
-rw-r--r--print.c12
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);
diff --git a/print.c b/print.c
index 876b04d02f..950e13924e 100644
--- a/print.c
+++ b/print.c
@@ -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 */