summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicolas George <nicolas.george@normalesup.org>2012-07-31 11:53:30 +0200
committerNicolas George <nicolas.george@normalesup.org>2012-07-31 15:06:57 +0200
commit89898cd3b6b2806bf823678a47d17f9ed745c69e (patch)
treea285675c7fc3c2599ea10f728b5750cf72ae29e5
parent52bd9cb4d29bc086f45f239c56a6a3c63406a073 (diff)
ffprobe: fix validity error with tags and data.
Add "data" and "extradata" attributes to the schema. Add "tag" element in "streams". Print extradata before tags to avoid closing the element. Fix trac ticket #1588.
-rw-r--r--doc/ffprobe.xsd6
-rw-r--r--ffprobe.c2
2 files changed, 7 insertions, 1 deletions
diff --git a/doc/ffprobe.xsd b/doc/ffprobe.xsd
index 13c0d02ae3..4340d462e1 100644
--- a/doc/ffprobe.xsd
+++ b/doc/ffprobe.xsd
@@ -44,6 +44,7 @@
<xsd:attribute name="size" type="xsd:long" use="required" />
<xsd:attribute name="pos" type="xsd:long" />
<xsd:attribute name="flags" type="xsd:string" use="required" />
+ <xsd:attribute name="data" type="xsd:string" />
</xsd:complexType>
<xsd:complexType name="frameType">
@@ -86,6 +87,10 @@
</xsd:complexType>
<xsd:complexType name="streamType">
+ <xsd:sequence>
+ <xsd:element name="tag" type="ffprobe:tagType" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+
<xsd:attribute name="index" type="xsd:int" use="required"/>
<xsd:attribute name="codec_name" type="xsd:string" />
<xsd:attribute name="codec_long_name" type="xsd:string" />
@@ -94,6 +99,7 @@
<xsd:attribute name="codec_time_base" type="xsd:string" use="required"/>
<xsd:attribute name="codec_tag" type="xsd:string" use="required"/>
<xsd:attribute name="codec_tag_string" type="xsd:string" use="required"/>
+ <xsd:attribute name="extradata" type="xsd:string" />
<!-- video attributes -->
<xsd:attribute name="width" type="xsd:int"/>
diff --git a/ffprobe.c b/ffprobe.c
index f81bc3b788..9bedbeb431 100644
--- a/ffprobe.c
+++ b/ffprobe.c
@@ -1844,10 +1844,10 @@ static void show_stream(WriterContext *w, AVFormatContext *fmt_ctx, int stream_i
else print_str_opt("nb_read_frames", "N/A");
if (nb_streams_packets[stream_idx]) print_fmt ("nb_read_packets", "%"PRIu64, nb_streams_packets[stream_idx]);
else print_str_opt("nb_read_packets", "N/A");
- show_tags(stream->metadata);
if (do_show_data)
writer_print_data(w, "extradata", dec_ctx->extradata,
dec_ctx->extradata_size);
+ show_tags(stream->metadata);
print_section_footer("stream");
av_bprint_finalize(&pbuf, NULL);