On 4/29/2023 6:41 AM, Anton Khirnov wrote:
Quoting Nicolas George (2023-04-29 11:11:59)
Nicolas George (12023-04-28):
Signed-off-by: Nicolas George <geo...@nsup.org>
---
  libavutil/Makefile |   1 +
  libavutil/json.c   | 368 +++++++++++++++++++++++++++++++++++
  libavutil/json.h   | 470 +++++++++++++++++++++++++++++++++++++++++++++
  3 files changed, 839 insertions(+)
  create mode 100644 libavutil/json.c
  create mode 100644 libavutil/json.h

I forgot to write: I wrote this code not only because we have half-baked
JSON output in multiple places in the code

As far as I can see, there are exactly two places in the codebase that
produce JSON: af_loudnorm and ffprobe.

af_loudnorm:
* can optionally produce final filter stats as JSON output with av_log()
* the relevant code has ~25 lines and is unlikely to be simplified by
   this
* IMO the filter should not be doing this at all and instead produce some
   sort of a struct and let the users process it as they wish

It should be exporting frame metadata, like aphasemeter, cropdetect, etc.
av_log() output is not meant to be parseable. It's why the relevant output of vf_showinfo can be freely changed, whereas output from things like framecrc/framehash muxers is standardized.


ffprobe:
* is not one of the libraries, but rather their caller
* we are not in business of providing random non-multimedia-related
   services to callers, unless they are useful in our libraries;
   if this code is only useful in ffprobe then it should live in fftools/
* it is not at all obvious that switching ffprobe to this code would
   be an improvement; a patch actually demonstrating this would be most
   useful

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

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

Reply via email to