[FFmpeg-devel] [PATCH 1/2 v3] fftools/ffprobe: export Tile Grid Stream Group parameters

Stefano Sabatini stefasab at gmail.com
Sat Mar 9 12:36:06 EET 2024


On date Friday 2024-03-08 17:24:47 -0300, James Almer wrote:
> Signed-off-by: James Almer <jamrial at gmail.com>
> ---
>  doc/ffprobe.xsd                               | 50 +++++++++++++++++
>  fftools/ffprobe.c                             | 53 ++++++++++++++++---
>  tests/fate/mov.mak                            |  6 +--
>  .../ref/fate/mov-heic-demux-still-image-grid  | 29 ++++++++++
>  .../ref/fate/mov-heic-demux-still-image-iovl  | 19 +++++++
>  .../fate/mov-heic-demux-still-image-iovl-2    | 19 +++++++
>  6 files changed, 165 insertions(+), 11 deletions(-)

You might also want to add an entry to Changelog.

> 
> I'll factorize the tests arguments later.
> 
> diff --git a/doc/ffprobe.xsd b/doc/ffprobe.xsd
> index 5010c5a45f..bd52000725 100644
> --- a/doc/ffprobe.xsd
> +++ b/doc/ffprobe.xsd
> @@ -15,6 +15,7 @@
>        <xsd:element name="frames"   type="ffprobe:framesType"  minOccurs="0" maxOccurs="1" />
>        <xsd:element name="packets_and_frames" type="ffprobe:packetsAndFramesType" minOccurs="0" maxOccurs="1" />
>        <xsd:element name="programs" type="ffprobe:programsType" minOccurs="0" maxOccurs="1" />
> +      <xsd:element name="stream_groups" type="ffprobe:StreamGroupsType" minOccurs="0" maxOccurs="1" />
>        <xsd:element name="streams"  type="ffprobe:streamsType" minOccurs="0" maxOccurs="1" />
>        <xsd:element name="chapters" type="ffprobe:chaptersType" minOccurs="0" maxOccurs="1" />
>        <xsd:element name="format"   type="ffprobe:formatType"  minOccurs="0" maxOccurs="1" />
> @@ -229,6 +230,12 @@
>      </xsd:sequence>
>    </xsd:complexType>
>  

> +  <xsd:complexType name="StreamGroupsType">

consistency: streamGroupsType

> +    <xsd:sequence>
> +      <xsd:element name="stream_group" type="ffprobe:streamGroupType" minOccurs="0" maxOccurs="unbounded"/>
> +    </xsd:sequence>
> +  </xsd:complexType>
> +
>    <xsd:complexType name="streamDispositionType">
>      <xsd:attribute name="default"          type="xsd:int" use="required" />
>      <xsd:attribute name="dub"              type="xsd:int" use="required" />
> @@ -325,6 +332,49 @@
>      <xsd:attribute name="pcr_pid"              type="xsd:int"    use="required"/>
>    </xsd:complexType>
>  
> +  <xsd:complexType name="streamGroupType">
> +    <xsd:sequence>
> +      <xsd:element name="disposition"      type="ffprobe:streamDispositionType" minOccurs="0" maxOccurs="1"/>
> +      <xsd:element name="tags"             type="ffprobe:tagsType" minOccurs="0" maxOccurs="1"/>
> +      <xsd:element name="streams"          type="ffprobe:streamsType" minOccurs="0" maxOccurs="1"/>
> +      <xsd:element name="components"       type="ffprobe:streamGroupComponentList" minOccurs="0" maxOccurs="1"/>
> +    </xsd:sequence>
> +
> +    <xsd:attribute name="index"            type="xsd:int"    use="required"/>
> +    <xsd:attribute name="nb_streams"       type="xsd:int"    use="required"/>
> +    <xsd:attribute name="type"             type="xsd:string" use="required"/>
> +  </xsd:complexType>
> +
> +  <xsd:complexType name="streamGroupComponentList">
> +    <xsd:sequence>
> +      <xsd:element name="component" type="ffprobe:streamGroupComponentType" minOccurs="0" maxOccurs="unbounded"/>
> +    </xsd:sequence>
> +  </xsd:complexType>
> +
> +  <xsd:complexType name="streamGroupComponentType">
> +    <xsd:sequence>

> +      <xsd:element name="subcomponents" type="ffprobe:streamGroupSubComponentList" minOccurs="0" maxOccurs="1"/>

nit: here and below, probaly better to use Subcomponent as this is considered a single word

> +      <xsd:element name="component_entry" type="ffprobe:streamGroupEntryType" minOccurs="0" maxOccurs="unbounded"/>
> +    </xsd:sequence>
> +  </xsd:complexType>
> +
> +  <xsd:complexType name="streamGroupSubComponentList">
> +    <xsd:sequence>
> +      <xsd:element name="subcomponent" type="ffprobe:streamGroupSubComponentType" minOccurs="0" maxOccurs="unbounded"/>
> +    </xsd:sequence>
> +  </xsd:complexType>
> +
> +  <xsd:complexType name="streamGroupSubComponentType">
> +    <xsd:sequence>
> +      <xsd:element name="subcomponent_entry" type="ffprobe:streamGroupEntryType" minOccurs="0" maxOccurs="unbounded"/>
> +    </xsd:sequence>
> +  </xsd:complexType>
> +
> +  <xsd:complexType name="streamGroupEntryType">
> +    <xsd:attribute name="key"   type="xsd:string"/>
> +    <xsd:attribute name="value" type="xsd:string"/>
> +  </xsd:complexType>
> +
>    <xsd:complexType name="formatType">
>      <xsd:sequence>
>        <xsd:element name="tags" type="ffprobe:tagsType" minOccurs="0" maxOccurs="1"/>

[...]

Looks nice to me otherwise, thanks.


More information about the ffmpeg-devel mailing list