On Thu, May 05, 2016 at 02:01:27PM +0200, Anton Khirnov wrote:
> Quoting Diego Biurrun (2016-05-04 10:00:51)
> > First off: This is a brilliant general idea, that help text is badly in
> > need of improvement.
> > 
> > On Tue, May 03, 2016 at 08:10:54AM +0200, Anton Khirnov wrote:
> > > --- a/configure
> > > +++ b/configure
> > > @@ -185,53 +185,62 @@ Individual component options:
> > > +
> > > +  Using any of the following switches will allow Libav to link to the
> > > +  corresponding external library. All the components depending on that 
> > > library
> > > +  will become enabled, if all their other dependencies are met and they 
> > > are not
> > > +  explicitly disabled. E.g. --enable-libwavpack will enable linking to
> > > +  libwavpack and allow the libwavpack encoder to be built, unless it is
> > > +  specifically disabled with --disable-encoder=libwavpack.
> > > +
> > > +  Note that only the system libraries are auto-detected. All the other 
> > > external
> > > +  libraries must be explicitly enabled.
> > > +
> > > +  --enable-avisynth          video frameserver
> > > +  --enable-bzlib             bzip2 compression [autodetect]
> > > +  --enable-frei0r            video filtering plugins
> > > +  --enable-gnutls            crypto
> > > +  --enable-libbs2b           Bauer stereophonic-to-binaural DSP
> > > +  --enable-libcdio           audio CD input
> > > +  --enable-libdc1394         IEEE 1394/Firewire camera input
> > > +  --enable-libdcadec         DCA audio decoding
> > > +  --enable-libfaac           AAC audio encoding
> > > +  --enable-libfdk-aac        AAC audio encoding/decoding
> > > +  --enable-libfreetype       font rendering
> > > +  --enable-libgsm            GSM audio encoding/decoding
> > > +  --enable-libilbc           ILBC audio encoding/decoding
> > > +  --enable-libkvazaar        HEVC video encoding
> > > +  --enable-libmp3lame        MP3 audio encoding
> > > +  --enable-libnpp            CUDA processing
> > > +  --enable-libopencore-amrnb AMR-NB audio encoding/decoding
> > > +  --enable-libopencore-amrwb AMR-WB audio encoding/decoding
> > > +  --enable-libopencv         computer vision
> > > +  --enable-libopenh264       H.264 video encoding/decoding
> > > +  --enable-libopenjpeg       JPEG 2000 image encoding/decoding
> > > +  --enable-libopus           Opus audio encoding/decoding
> > > +  --enable-libpulse          Pulseaudio sound server
> > > +  --enable-librtmp           RTMP streaming
> > > +  --enable-libschroedinger   Dirac video encoding/decoding
> > > +  --enable-libsnappy         snappy compression
> > > +  --enable-libspeex          Speex audio encoding/decoding
> > > +  --enable-libtheora         Theora video encoding/decoding
> > > +  --enable-libtwolame        MP2 audio encoding
> > > +  --enable-libvo-aacenc      AAC audio encoding
> > > +  --enable-libvo-amrwbenc    AMR-WB audio encoding
> > > +  --enable-libvorbis         Vorbis audio encoding/decoding
> > > +  --enable-libvpx            VP* video encoding/decoding
> > > +  --enable-libwavpack        Wavpack audio encoding/decoding
> > > +  --enable-libwebp           WebP image encoding/decoding
> > > +  --enable-libx264           H.264 video encoding
> > > +  --enable-libx265           HEVC video encoding
> > > +  --enable-libxavs           Chinese AVS video encoding
> > > +  --enable-libxcb            X window system protocol communication
> > > +  --enable-libxcb-shm        X11 shm communication [auto]
> > > +  --enable-libxcb-xfixes     X11 mouse rendering [auto]
> > > +  --enable-libxvid           MPEG-4 ASP video encoding
> > > +  --enable-openssl           crypto
> > > +  --enable-x11grab           X11 grabbing through xlib (legacy, use xcb 
> > > instead)
> > > +  --enable-zlib              compression [autodetect]
> > 
> > The problem I see is that much of that reads as if it were functionality
> > that is only externally available.  However, much of the functionality
> > is natively available and the descriptions may suggest otherwise. 
> 
> The issue has also been raised by wm4 on IRC. But I think the subject is
> quite complex and this short help text will never be able to properly
> explain it, unless it grows into a full manual. So IMO the best we can
> do is point the user to the full docs for more details.

I agree with the premise, but not fully with the conclusion.  Yes, it's
complex; yes, we will never do a perfect job and the details should be
in the full manual.  Nonetheless I think we can (try to) do a better job
here and provide a little more detail in place.

> > Long story short, I think this should be further subdivided into
> > sections for libs that extend functionality in some way and libs that
> > provide alternatives to existing functionality.
> 
> The problem I see with this approach is that those two categories are
> not well defined. E.g. libopus does opus decoding (which we can also do
> natively, though it does not have some special features libopus has) and
> encoding (which we cannot do). So where does it go then?
> Or take hardware decoders -- we typically have a sw alternative to all
> of them, but one can also argue that it's a special kind of
> functionality.
> 
> I agree that this table should be more structured, but I think it should
> be on the basis of what the libraries do (e.g. audio/video/other stuff).

I'm open to this suggestion, it's good.  What I would like to avoid is
people reading through this list and getting "OMG I need to enable all"
syndrome.  Marking some libs as (more or less) redundant should help a
lot in this regard.

Diego

P.S.: Out of curiosity, what features does libopus provide that we miss?
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to