diff options
author | Stefano Sabatini <stefasab@gmail.com> | 2011-10-09 00:24:31 +0200 |
---|---|---|
committer | Stefano Sabatini <stefasab@gmail.com> | 2011-12-27 12:58:24 +0100 |
commit | 20ac5849f82282e0566fab6f5a03aedde1b1b7fe (patch) | |
tree | 8f35455a0b4e6635db3c6ba3804da5a43a6dce60 /doc | |
parent | f1a4182e8ea70d36c82c2a88e197144715dfd23d (diff) | |
download | ffmpeg-20ac5849f82282e0566fab6f5a03aedde1b1b7fe.tar.gz |
ffprobe: add XML writer
Diffstat (limited to 'doc')
-rw-r--r-- | doc/ffprobe.texi | 33 | ||||
-rw-r--r-- | doc/ffprobe.xsd | 96 |
2 files changed, 129 insertions, 0 deletions
diff --git a/doc/ffprobe.texi b/doc/ffprobe.texi index 4af13d69e5..736c7f06c0 100644 --- a/doc/ffprobe.texi +++ b/doc/ffprobe.texi @@ -218,6 +218,39 @@ Each section is printed using JSON notation. For more information about JSON, see @url{http://www.json.org/}. +@section xml +XML based format. + +The XML output is described in the XML schema description file +@file{ffprobe.xsd} installed in the FFmpeg datadir. + +Note that the output issued will be compliant to the +@file{ffprobe.xsd} schema only when no special global output options +(@option{unit}, @option{prefix}, @option{byte_binary_prefix}, +@option{sexagesimal} etc.) are specified. + +This writer accepts options as a list of @var{key}=@var{value} pairs, +separated by ":". + +The description of the accepted options follows. + +@table @option + +@item fully_qualified, q +If set to 1 specify if the output should be fully qualified. Default +value is 0. +This is required for generating an XML file which can be validated +through an XSD file. + +@item xsd_compliant, x +If set to 1 perform more checks for ensuring that the output is XSD +compliant. Default value is 0. +This option automatically sets @option{fully_qualified} to 1. +@end table + +For more information about the XML format, see +@url{http://www.w3.org/XML/}. + @c man end WRITERS @include decoders.texi diff --git a/doc/ffprobe.xsd b/doc/ffprobe.xsd new file mode 100644 index 0000000000..92bc2b1b55 --- /dev/null +++ b/doc/ffprobe.xsd @@ -0,0 +1,96 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" + targetNamespace="http://www.ffmpeg.org/schema/ffprobe" + xmlns:ffprobe="http://www.ffmpeg.org/schema/ffprobe"> + + <xsd:element name="ffprobe" type="ffprobe:ffprobeType"/> + + <xsd:complexType name="ffprobeType"> + <xsd:sequence> + <xsd:element name="packets" type="ffprobe:packetsType" minOccurs="0" maxOccurs="1" /> + <xsd:element name="streams" type="ffprobe:streamsType" minOccurs="0" maxOccurs="1" /> + <xsd:element name="format" type="ffprobe:formatType" minOccurs="0" maxOccurs="1" /> + </xsd:sequence> + </xsd:complexType> + + <xsd:complexType name="packetsType"> + <xsd:sequence> + <xsd:element name="packet" type="ffprobe:packetType" minOccurs="0" maxOccurs="unbounded"/> + </xsd:sequence> + </xsd:complexType> + + <xsd:complexType name="packetType"> + <xsd:attribute name="codec_type" type="xsd:string" use="required" /> + <xsd:attribute name="stream_index" type="xsd:int" use="required" /> + <xsd:attribute name="pts" type="xsd:long" /> + <xsd:attribute name="pts_time" type="xsd:float" /> + <xsd:attribute name="dts" type="xsd:long" /> + <xsd:attribute name="dts_time" type="xsd:float" /> + <xsd:attribute name="duration" type="xsd:long" /> + <xsd:attribute name="duration_time" type="xsd:float" /> + <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:complexType> + + <xsd:complexType name="streamsType"> + <xsd:sequence> + <xsd:element name="stream" type="ffprobe:streamType" minOccurs="0" maxOccurs="unbounded"/> + </xsd:sequence> + </xsd:complexType> + + <xsd:complexType name="streamType"> + <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" /> + <xsd:attribute name="codec_type" type="xsd:string" /> + <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"/> + + <!-- video attributes --> + <xsd:attribute name="width" type="xsd:int"/> + <xsd:attribute name="height" type="xsd:int"/> + <xsd:attribute name="has_b_frames" type="xsd:int"/> + <xsd:attribute name="sample_aspect_ratio" type="xsd:string"/> + <xsd:attribute name="display_aspect_ratio" type="xsd:string"/> + <xsd:attribute name="pix_fmt" type="xsd:string"/> + <xsd:attribute name="level" type="xsd:int"/> + <xsd:attribute name="timecode" type="xsd:string"/> + + <!-- audio attributes --> + <xsd:attribute name="sample_fmt" type="xsd:string"/> + <xsd:attribute name="sample_rate" type="xsd:int"/> + <xsd:attribute name="channels" type="xsd:int"/> + <xsd:attribute name="bits_per_sample" type="xsd:int"/> + + <xsd:attribute name="id" type="xsd:string"/> + <xsd:attribute name="r_frame_rate" type="xsd:string" use="required"/> + <xsd:attribute name="avg_frame_rate" type="xsd:string" use="required"/> + <xsd:attribute name="time_base" type="xsd:string" use="required"/> + <xsd:attribute name="start_time" type="xsd:float"/> + <xsd:attribute name="duration" type="xsd:float"/> + <xsd:attribute name="nb_frames" type="xsd:int"/> + </xsd:complexType> + + <xsd:complexType name="formatType"> + <xsd:sequence> + <xsd:element name="tag" type="ffprobe:tagType" minOccurs="0" maxOccurs="unbounded"/> + </xsd:sequence> + + <xsd:attribute name="filename" type="xsd:string" use="required"/> + <xsd:attribute name="nb_streams" type="xsd:int" use="required"/> + <xsd:attribute name="format_name" type="xsd:string" use="required"/> + <xsd:attribute name="format_long_name" type="xsd:string" use="required"/> + <xsd:attribute name="start_time" type="xsd:float"/> + <xsd:attribute name="duration" type="xsd:float"/> + <xsd:attribute name="size" type="xsd:long"/> + <xsd:attribute name="bit_rate" type="xsd:long"/> + </xsd:complexType> + + <xsd:complexType name="tagType"> + <xsd:attribute name="key" type="xsd:string" use="required"/> + <xsd:attribute name="value" type="xsd:string" use="required"/> + </xsd:complexType> +</xsd:schema> |