[FFmpeg-cvslog] r15151 - in trunk: configure libavcodec/Makefile

Aurelien Jacobs aurel
Wed Sep 3 00:45:18 CEST 2008


On Wed, 3 Sep 2008 00:27:56 +0200
Diego Biurrun <diego at biurrun.de> wrote:

> On Tue, Sep 02, 2008 at 10:54:53PM +0200, Aurelien Jacobs wrote:
> > On Tue, 2 Sep 2008 19:06:29 +0200
> > Diego Biurrun <diego at biurrun.de> wrote:
> > 
> > > On Tue, Sep 02, 2008 at 06:04:27AM +0200, jbr wrote:
> > > > 
> > > > Log:
> > > > add a separate line in Makefile for E-AC-3 decoder and only compile it when
> > > > GPL is enabled. fixes building without GPL or with liba52.
> > > > 
> > > > --- trunk/configure	(original)
> > > > +++ trunk/configure	Tue Sep  2 06:04:26 2008
> > > > @@ -848,6 +848,7 @@ byteswap_h_deps="!armv4l"
> > > >  # decoders / encoders
> > > >  ac3_decoder_deps="gpl !liba52"
> > > >  dxa_decoder_deps="zlib"
> > > > +eac3_decoder_deps="gpl"
> > > > 
> > > > --- trunk/libavcodec/Makefile	(original)
> > > > +++ trunk/libavcodec/Makefile	Tue Sep  2 06:04:26 2008
> > > > @@ -63,6 +63,7 @@ OBJS-$(CONFIG_DVDSUB_ENCODER)          +
> > > >  OBJS-$(CONFIG_DXA_DECODER)             += dxa.o
> > > > +OBJS-$(CONFIG_EAC3_DECODER)            += eac3dec.o ac3dec.o ac3tab.o ac3dec_data.o ac3.o mdct.o fft.o
> > > 
> > > I think it's easier to just make the E-AC-3 decoder depend on the AC-3
> > > decoder.
> > 
> > ./configure --enable-gpl --enable-decoder=eac3 --disable-decoder=ac3
> > works fine, and I see no valid reason to prevent it
> 
> Small wonder - these flags have no effect at all.

They have an effect !
With this configure line the ac3_decoder won't be registered with
register_avcodec().
And thus CODEC_ID_AC3 won't be handled by any decoder.

>  The lines in the Makefile are identical for both codecs and the
> files contain no #ifdefs.

The user who run ./configure don't know about this. He may just think:
Hey, I simply want an eac3 decoder and nothing else. And here is the
valid configuration he will triger:
  ./configure --enable-gpl --disable-decoders --disable-encoders \
              --enable-decoder=eac3
The user don't need to understand that the ac3 and eac3 decoders
share the same code. And we have no reason to force him to register
a decoder for CODEC_ID_AC3.

I think the artificial dependencies in the configure script just
add some black magic over some nice regular rules. And thus, we
should avoid as much as possible those dependencies in configure.

> I wonder why these two codecs are separated at all...

Because they are muxed differently in various containers, and
thus we need to be able to tell them apart to mux them correctly.
Different CODEC_ID is the way to distinguish them.

Aurel




More information about the ffmpeg-cvslog mailing list