Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
 help / color / mirror / Atom feed
From: Stefan Oltmanns via ffmpeg-devel <ffmpeg-devel@ffmpeg.org>
To: ffmpeg-devel@ffmpeg.org
Cc: Stefan Oltmanns <stefan-oltmanns@gmx.net>
Subject: Re: [FFmpeg-devel] [PATCH v2] libavformat/vapoursynth: Update to API version 4, load library at runtime
Date: Tue, 23 Jul 2024 02:24:54 +0200
Message-ID: <eaa52568-99c3-4f26-aefa-d1722070acdb@gmx.net> (raw)
In-Reply-To: <172163146231.21847.3900874929001201865@lain.khirnov.net>

Am 22.07.24 um 08:57 schrieb Anton Khirnov:
> Quoting Stefan Oltmanns (2024-07-18 14:12:42)
>> Hello Anton,
>>
>> can you eloborate on that? What is unacceptable with my patch that is
>> perfectly fine in the AviSynth input module? It's the very same concept.
>
> It's not perfectly fine in avisynth, I dislike it there as well. There
> are also recent patches that remove the atexit handler.

The atexit will be removed in the next revision of the patch.

>
>> Loading the library at runtime makes it so much more useful, because you
>> can distribute ffmpeg binaries without forcing the user to install
>> VapourSynth (which requires the user to install Python).
>
> Runtime loading hides dependencies from standard tools and makes program
> behaviour harder to analyze. Not to mention you're adding a bunch of
> global state, which is evil.

All global states will be removed in the next revision of the patch.

It's the intention of my patch to reduce ("hide") the VapourSynth
dependency, so unless you want to actually open a VapourSynth script
there is no dependency to it. If you try to open a VapourScript script
without having VapourSynth installed, you'll get an error message.
VapourSynth itself has unclear dependencies, it will load plug-ins on
runtime and as it uses Python you can in fact load other Python
libaries, for example AI stuff like PyTorch for fancy upscaling, that
will then load CUDA/ROCM.

>
>> VapourSynth is not just a library like x264 that you can link in
>> statically if you like, VapourSynth is a frame server (like AviSynth)
>> with it's own dependencies.
>> If you worry about platforms that do not support loading libraries at
>> runtime: VapourSynth is based on plugins that are loaded on runtime, so
>> it won't work on those platforms anyway.
>
> I am worried about special "demuxers" than are not really demuxers and
> don't work like other demuxers, hence massively increasing library
> maintenance load.
>

I somewhat agree here, when I first saw a AviSynth demuxer in the list
of supported formats it looked weird, because it's not a format that you
demux.
But what's the solution? Create a new library like "avframeserver" for 2
(?) different tools? How do they increase the maintinace load? There are
a lot of external libraries that get used by ffmpeg, what's the
difference here? As these formats do not contain any advanced video
codec, but raw video, shouldn't it be rather easy to maintain, because
no weird complications with some decoder?

Best regards
Stefan
_______________________________________________
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".

  reply	other threads:[~2024-07-23  0:25 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-07-06 21:08 Stefan Oltmanns via ffmpeg-devel
2024-07-18  9:37 ` Stefan Oltmanns via ffmpeg-devel
2024-07-18 11:25   ` Anton Khirnov
2024-07-18 15:38     ` Stefan Oltmanns via ffmpeg-devel
2024-07-22  6:57       ` Anton Khirnov
2024-07-23  0:24         ` Stefan Oltmanns via ffmpeg-devel [this message]
2024-07-18 11:08 ` Ramiro Polla
2024-07-18 12:48   ` Stefan Oltmanns via ffmpeg-devel
2024-07-18 13:04     ` Ramiro Polla
2024-07-18 13:41       ` Stefan Oltmanns via ffmpeg-devel
2024-07-18 14:21         ` Ramiro Polla
2024-07-18 14:53           ` Stefan Oltmanns via ffmpeg-devel
2024-07-19 17:05             ` Stephen Hutchinson
2024-07-18 15:23           ` epirat07
2024-07-21 22:08             ` Stefan Oltmanns via ffmpeg-devel
2024-07-21 22:15               ` Hendrik Leppkes
2024-07-22  0:42                 ` Stefan Oltmanns via ffmpeg-devel
2024-07-22  6:36                   ` Hendrik Leppkes
2024-07-22 12:13                 ` Ramiro Polla
2024-07-22 13:41                   ` Hendrik Leppkes
2024-07-22 18:28                     ` Ramiro Polla
2024-07-22 13:52                   ` Stefan Oltmanns via ffmpeg-devel

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=eaa52568-99c3-4f26-aefa-d1722070acdb@gmx.net \
    --to=ffmpeg-devel@ffmpeg.org \
    --cc=stefan-oltmanns@gmx.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

This inbox may be cloned and mirrored by anyone:

	git clone --mirror https://master.gitmailbox.com/ffmpegdev/0 ffmpegdev/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 ffmpegdev ffmpegdev/ https://master.gitmailbox.com/ffmpegdev \
		ffmpegdev@gitmailbox.com
	public-inbox-index ffmpegdev

Example config snippet for mirrors.


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git