[FFmpeg-devel] [PATCH] lavfi: simplify link dependencies.

Michael Niedermayer 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
 fast)

[...]

-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

Old school: Use the lowest level language in which you can solve the problem
            conveniently.
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
Type: application/pgp-signature
Size: 198 bytes
Desc: Digital signature
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20130524/59686d31/attachment.asc>


More information about the ffmpeg-devel mailing list