[FFmpeg-devel] [PATCH] lavfi: simplify link dependencies.
michaelni at gmx.at
Fri May 24 17:24:07 CEST 2013
On Fri, May 24, 2013 at 04:51:41PM +0200, Hendrik Leppkes wrote:
> On Thu, May 23, 2013 at 4:20 AM, Michael Niedermayer <michaelni at gmx.at> wrote:
> > On Thu, May 23, 2013 at 02:45:00AM +0200, Clément Bœsch wrote:
> >> On Thu, May 23, 2013 at 02:12:26AM +0200, Michael Niedermayer wrote:
> >> > On Wed, May 22, 2013 at 07:38:14PM +0200, Clément Bœsch wrote:
> >> > > This avoids re-declaring the filter dependencies. Also, it fixes the
> >> > > optional dependencies: for instance the select filter having an optional
> >> > > dependency on avcodec.
> >> > > ---
> >> > > libavfilter/Makefile | 23 ++++++-----------------
> >> > > 1 file changed, 6 insertions(+), 17 deletions(-)
> >> > >
> >> > > diff --git a/libavfilter/Makefile b/libavfilter/Makefile
> >> > > index 6cc2930..2897f49 100644
> >> > > --- a/libavfilter/Makefile
> >> > > +++ b/libavfilter/Makefile
> >> > > @@ -2,23 +2,12 @@ include $(SUBDIR)../config.mak
> >> > >
> >> > > NAME = avfilter
> >> > > FFLIBS = avutil
> >> > > -FFLIBS-$(CONFIG_ACONVERT_FILTER) += swresample
> >> > > -FFLIBS-$(CONFIG_AMOVIE_FILTER) += avformat avcodec
> >> > > -FFLIBS-$(CONFIG_ARESAMPLE_FILTER) += swresample
> >> > > -FFLIBS-$(CONFIG_ASYNCTS_FILTER) += avresample
> >> > > -FFLIBS-$(CONFIG_ATEMPO_FILTER) += avcodec
> >> > > -FFLIBS-$(CONFIG_DECIMATE_FILTER) += avcodec
> >> > > -FFLIBS-$(CONFIG_DESHAKE_FILTER) += avcodec
> >> > > -FFLIBS-$(CONFIG_MOVIE_FILTER) += avformat avcodec
> >> > > -FFLIBS-$(CONFIG_MP_FILTER) += avcodec
> >> > > -FFLIBS-$(CONFIG_PAN_FILTER) += swresample
> >> > > -FFLIBS-$(CONFIG_PP_FILTER) += postproc
> >> > > -FFLIBS-$(CONFIG_REMOVELOGO_FILTER) += avformat avcodec swscale
> >> > > -FFLIBS-$(CONFIG_RESAMPLE_FILTER) += avresample
> >> > > -FFLIBS-$(CONFIG_SCALE_FILTER) += swscale
> >> > > -FFLIBS-$(CONFIG_SHOWSPECTRUM_FILTER) += avcodec
> >> > > -FFLIBS-$(CONFIG_SMARTBLUR_FILTER) += swscale
> >> > > -FFLIBS-$(CONFIG_SUBTITLES_FILTER) += avformat avcodec
> >> > > +FFLIBS-$(CONFIG_AVCODEC) += avcodec
> >> > > +FFLIBS-$(CONFIG_AVFORMAT) += avformat
> >> > > +FFLIBS-$(CONFIG_AVRESAMPLE) += avresample
> >> > > +FFLIBS-$(CONFIG_POSTPROC) += postproc
> >> > > +FFLIBS-$(CONFIG_SWRESAMPLE) += swresample
> >> > > +FFLIBS-$(CONFIG_SWSCALE) += swscale
> >> >
> >> > I think with that change libavfilter would depend on all build libs
> >> > even if it uses nothing from them
> >> >
> >> Yes, it will make a dependency, but only if it's available. What problem
> >> could that cause? I mean, in what situation would you not want that
> >> dependency if you build the other libraries?
> > in case you are making packages for a distribution.
> > the users dont want random unneeded dependencies
> > also it could slow down loading
> I kinda agree with Michael, lavfi already links against
> avformat/swscale today even if it uses nothing from it.
> It would be ideal if the deps would be perfectly specified, and only
> linked against if actually used - and those helper modules for
> avformat/swscale/avcodec integration also only build when needed
> (otherwise they add a dep for nothing) - however this is something
> that needs to be maintained and will probably break often in the
> future, as partial lavfi builds are not tested often.
> Note that today lavfi does not build in a shared library config if you
> disable most filters (say, only build yadif and buffersrc/sink), and
> this patch would fix that - but it would also mean my deinterlacer
> suddenly starts loading avformat, which it really doesn't need.
I guess it boils down to "do we have a volunteer to maintain it"
if theres no volunteer then ive no objections to adding the hard deps
if we do have a volunteer then (s)he should fix the dependencies and
setup a fate box to make sure they get tested in the future
(a build only fate box would be enough and with ccache should be quite
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
Old school: Use the lowest level language in which you can solve the problem
New school: Use the highest level language in which the latest supercomputer
can solve the problem without the user falling asleep waiting.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Size: 198 bytes
Desc: Digital signature
More information about the ffmpeg-devel