From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <ffmpeg-devel-bounces@ffmpeg.org>
Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100])
	by master.gitmailbox.com (Postfix) with ESMTPS id 4C9674CD8E
	for <ffmpegdev@gitmailbox.com>; Mon, 14 Apr 2025 07:28:02 +0000 (UTC)
Received: from [127.0.1.1] (localhost [127.0.0.1])
	by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 8ED61687C91;
	Mon, 14 Apr 2025 10:27:58 +0300 (EEST)
Received: from NAM04-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam04olkn2030.outbound.protection.outlook.com [40.92.47.30])
 by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id EE4B4687C67
 for <ffmpeg-devel@ffmpeg.org>; Mon, 14 Apr 2025 10:27:51 +0300 (EEST)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=wKA0BeIpHDc7g1mDGyiqwelQ5V4SdIfJcHJnuUZb3hxg615vqm5exo2tO6u4MffJYE5tqyVhMcMKg1NL4obWycOFASrISog6hPi97ob7R1MWIsHPGPjDsELXyS4NF218BtLBM6ZYiPFxMcOO1xF4lKPGfKX8MKsZLqQnAFmMtMszonX+I7ONSoFSq238f+/DWtmZ/evYkB3xg41MEEIttJlSS30GS5Ewe6pMVC7vCwFq27m61dQklbg8gWkdhXAKSKkwJPntTA+6so7EHbYpNT4a/9kcwIXlqJQDGJm7kSVsUPn7cIxJHrOUk+f2sO7px2OhfhZ7ylnqEN/lT1l0NQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; 
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=kP48R5eviMwmkbyS7FmFbg9+Ie1JB0rGZg39AtjbvAo=;
 b=ZMiAVTes7xvwLgw/sI2plxF8RkbJQ5W3c2e07BSuyr5mBjzDZSOWsLUhDtZLCQz+zE50mesGssnx91dhbv+6b0FnKIhT72QcTUq2fHMiCdRvgQryIXwjCjNjY3175gkJvHeHP4bhndzaP9Cj5qfNmD9N83knuDDa2BSe4YxjL6IwP/iIawGEO2H4yujW4I37/NExQ4z35VZf6Uqahp21QeFFYT67GtknlEy4qz6B/ADdQi5RyprO4VnqCD19LLMccLiK7qCiUfT80OKGkBSjBaNWGt/fgV9oEoZCZ8/8eqGmFW1Y4lWYRsvaQ80XdlOUH3VOhASuMQy5xp/gjxRxJA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none;
 dkim=none; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hotmail.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=kP48R5eviMwmkbyS7FmFbg9+Ie1JB0rGZg39AtjbvAo=;
 b=M1NGYVaF5Dt7iWWF3r0Wm9ZOATNzJsrXkobo1ZjxmMnXkuz5HmeTrOHGuI7nYVhvXs6YhucgvuQRQwP6q7sW3YQzPCJOC1Uo5ZmMTnpwiinFdR7V6PYGXL7FRWnRpmGb8sNOqvK0PsQGBkoIoKCqlBzhbAlIeIo0Uh1esOpN2dk3irS7UKx7se/HYgbCJ/dB6tBjXS3LDHeC00nmPTdPRjUe1xj03Ro8mnCLCMBb4AFaIu4EBWw+m0HIJSjzdinrhf3OElCb+fXIquT2tZlmnNihlignZ2R13dojiYiqclSKD9Ive1dZNRJGWMGg4L0IPwZMRBDzf30KCsOrMa4eqA==
Received: from DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM (2603:10b6:8:b::20) by
 MN0P223MB0534.NAMP223.PROD.OUTLOOK.COM (2603:10b6:208:3c6::9) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.8632.32; Mon, 14 Apr 2025 07:27:48 +0000
Received: from DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM
 ([fe80::bf09:8e9:b07f:98a7]) by DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM
 ([fe80::bf09:8e9:b07f:98a7%4]) with mapi id 15.20.8632.030; Mon, 14 Apr 2025
 07:27:48 +0000
From: "softworkz ." <softworkz-at-hotmail.com@ffmpeg.org>
To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org>
Thread-Topic: [FFmpeg-devel] [PATCH 2/2] ffprobe: show seekability details in
 format section
Thread-Index: AQHbrGWHV2WHo1N7Gk+41e8PpHCZ5rOhxB5wgADRiICAAAG8IIAAI8+AgAAEsmA=
Date: Mon, 14 Apr 2025 07:27:48 +0000
Message-ID: <DM8P223MB03652E81FA1353423133989FBAB32@DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM>
References: <20250413111545.4619-1-ffmpeg@gyani.pro>
 <20250413111545.4619-2-ffmpeg@gyani.pro>
 <DM8P223MB0365B8C3EDA17E5CAC6414D3BAB02@DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM>
 <ebac78d5-578b-4ff4-ba3f-797f952adfa1@gyani.pro>
 <DM8P223MB03656CAE5F3A772BAF522CB6BAB32@DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM>
 <4a2589b9-3952-437b-ae2a-c840f8fb591f@gyani.pro>
In-Reply-To: <4a2589b9-3952-437b-ae2a-c840f8fb591f@gyani.pro>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: DM8P223MB0365:EE_|MN0P223MB0534:EE_
x-ms-office365-filtering-correlation-id: 6288923f-e329-450f-0cc9-08dd7b25dbbb
x-microsoft-antispam: BCL:0;
 ARA:14566002|8062599003|19110799003|8060799006|15080799006|7092599003|461199028|3412199025|440099028|102099032;
x-microsoft-antispam-message-info: =?us-ascii?Q?5qQmQqFPlyaY6RzoNGpl3qPiOohyTsp/aYksEaWhjmiMoMRTwqUbbLaGyuJL?=
 =?us-ascii?Q?9hxqVId35LZ6Q8jyFFPIDRrt41+WN+EKgksOrKxUYFPSIvOB/MdpSnJQfSCY?=
 =?us-ascii?Q?G77kicVf9F416KWU1LGVlrRs/AIEkIJfEytrmypnFKsZ4piFfLTwJbEUqyra?=
 =?us-ascii?Q?RenCdQVEl6Qenl8Q0xMKrwNIV50Rn9UMOLdfMacRQbrWqd9u05z52chY4p44?=
 =?us-ascii?Q?LeaJxL5QBpE+eERtiLL5thAiCIRlkHVoExJSHklKidfviCCpKdG3eLk3FcBv?=
 =?us-ascii?Q?33EwlWPEx19W1TG+rb4snyK1iHK8xqDQmwO3CTyQLO0I/losnjAUdqBKchP4?=
 =?us-ascii?Q?Z2xMGEi9F2qvlFdphKzbapBNyhw0VnJiest1NmNdLSnV6JLr1FnNsOqM6tO0?=
 =?us-ascii?Q?kzhyoamXW7W1nSSHo8A+VE5ZXq4UWxyAcjESCtRvb7LCq11iDUAgGEHtOjH+?=
 =?us-ascii?Q?Y/MJTnVj47sEMFH12LPo749kG4N6/NYUoOuQUefeZ1trfjXKXrSQBn/GopeM?=
 =?us-ascii?Q?pPT2kloYC3QVPgcDS79/7OpS3W+WqqmZgnUcScGLQBxgM/E7JYUb2S7MOgwm?=
 =?us-ascii?Q?wkLR2efjOEbTAskbP50v6TjasEXFKIrpyv2+Mco1tq1XpbM4HOwIRIFpMfNl?=
 =?us-ascii?Q?L2Gqc4fn3/1s9kCkJLpcui/a9BQCTCCsn74xgO9Pp3XJ+MeLlBVHsNJB3/aw?=
 =?us-ascii?Q?IT362BBSTswgwC7gBjM/ix7ub+vWxpdRWx/JzcP7MqQnxRPh9fT9/tFIgTU9?=
 =?us-ascii?Q?+efpoxb3sgxug81Ld+aGjCu3mWykOjYYi/Oe40zdBVP1KkR2k06uWaCQjmJP?=
 =?us-ascii?Q?WkSgH1g2SuFLMF7AUtF0Elns+ODnbz6j+A/PZvoHM1dUBYOAI3GeqVyb4R9k?=
 =?us-ascii?Q?YTi59nRdkviRv9zWXXIOW+8m6Fas8rSifUig+QILfAMS1PnHOuVx1aRLw9Hi?=
 =?us-ascii?Q?7PQRt6eAxEaWb84hBIuN6WDAyYZZQmM5mCntUcV8oL5H/95gTcAHf7KF9yDS?=
 =?us-ascii?Q?UCeGXPpR1/yF7k6qr5vH6wmExulsXUf8FBc0NDGJ1zn5ADQFenzGnkflZnb/?=
 =?us-ascii?Q?uiHFdRcoq+rMFK7Xx6tWgGAaGAW4jUc0W+n7cX+Qn84Xvi6eBgU=3D?=
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?/b2fDxnkAoTzWYm0hWldgKAMULx7rVLAvqNFC2Q1AZMMBa71+Lg8t0q6VAlX?=
 =?us-ascii?Q?xAsWd6jgcIUmX0bpWy4f166Qrz6kCby7di8Ji3iDJHfrlN0hylQmsKok9/rz?=
 =?us-ascii?Q?BFm4YuXb5haWQ0L6D7QY19E6z42ggrldw7y2uV23ot7Q9mZQ66uNfp8JRriu?=
 =?us-ascii?Q?sCRh7yojjGBlDHpELN1R6J+DkMa156Rx05rXgauS4Ujx/WrE5pJtvP69/IgO?=
 =?us-ascii?Q?78l0iKEeeVYN+D2v77P/wzauCGUEZOg2xFZ383pgMWP0jrXmGfbap6+3yd+1?=
 =?us-ascii?Q?g9RbBklJzaOM9HzUyiJOY4dAEhT8BNYIWxDn8l8fJnuBZbzZDUSBLO4jskZH?=
 =?us-ascii?Q?tlK3OGKo2oeGUNegsVxMmYaX/la/O5vOjNZ6Tmg3IodJN8A3KScUT6hWDc3f?=
 =?us-ascii?Q?ac0XdcNSRp5vB0eX08etINNRUyECQqa2i932OaRNom4ftb6ru+cCDVTLPvLx?=
 =?us-ascii?Q?uU998s5qkW9NLcOaQNv77To0tHPEbhWbaGFgw1fDMxMIrhX9KwZqTPQI8+tN?=
 =?us-ascii?Q?8ijZQznIdQe3IU5eaY6xTUgaGJxUXwFvLvx8jrm1wf1Mou+ey45qliW/voTD?=
 =?us-ascii?Q?UXGSnFRbUp72h1xEnSts5jj9S/vG+0eqWjht10OiCkvrDVvJ7Hx3tl2Qgp1r?=
 =?us-ascii?Q?U2Z9L+pb15iPVLrhcTea/ed8FPfc4U+FEVcrqfU5hDjSkdky9yypIJdf24ZO?=
 =?us-ascii?Q?sR9xy30hptaTC/FUaN58uPeIN2C8qWxAKqtcC4UsRIQrNcPXwQs4w5ur/M4F?=
 =?us-ascii?Q?ps5wfRUK4k3pwYIndS1iTRovf0ShLjCLPmxGhsTs2j7p6c02523hrbTGSbXA?=
 =?us-ascii?Q?0SoHUO0isIBo8uiEy9X2p/HZLOAT2O/jllfKtQO0b5ZJSKCUMs+4baRXOxO0?=
 =?us-ascii?Q?aa66qdzeS1Fb9tIuf74keNnFISfclqUrv0YAZCOJnM9s6hv95T8wIg5+GuVc?=
 =?us-ascii?Q?o2oae4hvPs4xcDjyAU/PginRe2DqY+oT/dojl09lANKc+pKksdsWiqotKHOO?=
 =?us-ascii?Q?sW+f1BKF/5SuABmv5Y2TO6FHz6Ey2nZRxruuIDWcb3n+Jl1Y9iC3CeVFZnSO?=
 =?us-ascii?Q?mgPSxXu2+lpB27E8pWsno5eVAikbOhZJrL+gnwEUBoqJ9O54UIZUufgro9b/?=
 =?us-ascii?Q?rZkEWWdVYtLTazHh9wLQX5B9qDjlpCO92zUd7Z98vXhZuXIHFtVX8SQToX08?=
 =?us-ascii?Q?kWbdbCuWKF0XZrt05ygcz51xdCzkD6e89Erf35esv2mBvfsFbsNCNXaQeTM?=
 =?us-ascii?Q?=3D?=
MIME-Version: 1.0
X-OriginatorOrg: sct-15-20-7719-20-msonline-outlook-92255.templateTenant
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000
X-MS-Exchange-CrossTenant-Network-Message-Id: 6288923f-e329-450f-0cc9-08dd7b25dbbb
X-MS-Exchange-CrossTenant-originalarrivaltime: 14 Apr 2025 07:27:48.6398 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa
X-MS-Exchange-CrossTenant-rms-persistedconsumerorg: 00000000-0000-0000-0000-000000000000
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN0P223MB0534
Subject: Re: [FFmpeg-devel] [PATCH 2/2] ffprobe: show seekability details in
 format section
X-BeenThere: ffmpeg-devel@ffmpeg.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: FFmpeg development discussions and patches <ffmpeg-devel.ffmpeg.org>
List-Unsubscribe: <https://ffmpeg.org/mailman/options/ffmpeg-devel>,
 <mailto:ffmpeg-devel-request@ffmpeg.org?subject=unsubscribe>
List-Archive: <https://ffmpeg.org/pipermail/ffmpeg-devel>
List-Post: <mailto:ffmpeg-devel@ffmpeg.org>
List-Help: <mailto:ffmpeg-devel-request@ffmpeg.org?subject=help>
List-Subscribe: <https://ffmpeg.org/mailman/listinfo/ffmpeg-devel>,
 <mailto:ffmpeg-devel-request@ffmpeg.org?subject=subscribe>
Reply-To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Errors-To: ffmpeg-devel-bounces@ffmpeg.org
Sender: "ffmpeg-devel" <ffmpeg-devel-bounces@ffmpeg.org>
Archived-At: <https://master.gitmailbox.com/ffmpegdev/DM8P223MB03652E81FA1353423133989FBAB32@DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM/>
List-Archive: <https://master.gitmailbox.com/ffmpegdev/>
List-Post: <mailto:ffmpegdev@gitmailbox.com>



> -----Original Message-----
> From: ffmpeg-devel <ffmpeg-devel-bounces@ffmpeg.org> On Behalf Of Gyan
> Doshi
> Sent: Montag, 14. April 2025 08:54
> To: ffmpeg-devel@ffmpeg.org
> Subject: Re: [FFmpeg-devel] [PATCH 2/2] ffprobe: show seekability
> details in format section
> 
> 
> 
> On 2025-04-14 10:22 am, softworkz . wrote:
> >>> Hi Gyan,
> >>>
> >>> the problem that I see here is that it's not machine-readable and
> >> would require non-trivial parsing to translate back to the actual
> >> information behind it.
> >>> I think that either a separate sub-section or at least three
> separate
> >> values would be better.
> >>
> >> I can add a delimiter like |
> >>
> >> e.g.
> >>
> >> yes|time(pts),frame-index|demuxer,packet-scan|fast
> >>
> >> All of the phrases for an attribute are unique, and for that, they
> just
> >> need to grep, not parse the string.
> >> Most CLI users will only care about two things: yes/no and forward-
> only.
> > When processing data using formats like XML or JSON by software,
> there is no "grep".
> > Machine-readable means (not only but including) that no additional
> parsing needs to be done. The XML schema must indicate the possible
> values and I don't believe that a pipe-delimited multi-string value
> can be described with an XML schema.
> 
> That would require one field for each bit i.e.
> 
> seekable_normal=yes
> seekable_protocol=no
> seekable_via_demuxer=yes
> ...
> 
> That seems like too much bloat for CLI usage.
> Any workflow that needs to *take action* based on the seek features,
> as
> opposed to data archival, should have access to string parsing tools.

Start thinking from the other side: You want to define a class (be it Python, C#, Java, TypeScript or whatever) which corresponds to the FFprobe format output in a way that you can work with it efficiently in that application and then you serialize that class - that's how the output should be.


For the representation of bitfields in the output, there are multiple ways. 
One way is like it's done for disposition:

JSON:

            "disposition": {
                "default": 0,
                "dub": 0,
                "original": 0,
                "comment": 0,
                "lyrics": 0,
                "karaoke": 0,
                "forced": 0,
                "hearing_impaired": 0,
                "visual_impaired": 0,
                "clean_effects": 0,
                "attached_pic": 0,
                "timed_thumbnails": 0,
                "non_diegetic": 0,
                "captions": 0,
                "descriptions": 0,
                "metadata": 0,
                "dependent": 0,
                "still_image": 0,
                "multilayer": 0
            },

another way would be a list of predefined (enum) values:

which would look as follows in JSON:

"disposition": ["original", "dub"],


In an xml schema, the latter can be defined like this:

<xs:element name="Flags">
  <xs:complexType>
    <xs:sequence maxOccurs="unbounded">
      <xs:element name="disposition">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value="original"/>
            <xs:enumeration value="dub"/>
            <xs:enumeration value="lyrics"/>
            <!-- ... -->
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
</xs:element>


Then the XML would look like this:

<MyElement>
    <disposition>
        <dispositionvalue>original</dispositionvalue>
        <dispositionvalue>dub</dispositionvalue>
    </disposition>
</MyElement>


> That seems like too much bloat for CLI usage.

Whether it's "bloat" or not only depends on the output format.
In the default or flat format this might probably condense to a 

disposition: original,dub

output (not 100% sure, but it will be short in any case).


sw


_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".