[Ffmpeg-devel] [bug] raw.c link failure on ff_ac3_parse_header

Diego Biurrun diego
Tue Apr 10 10:42:23 CEST 2007


On Mon, Apr 09, 2007 at 09:42:07PM +0100, M?ns Rullg?rd wrote:
> Diego Biurrun <diego at biurrun.de> writes:
> 
> > On Thu, Mar 22, 2007 at 10:35:40AM +0200, Uoti Urpala wrote:
> >> On Thu, 2007-03-22 at 09:21 +0100, Diego Biurrun wrote:
> >> > On Wed, Mar 21, 2007 at 11:31:34PM -0500, Justin Ruggles wrote:
> >> > > It seems to me that putting ac3.o in the OBJS list in the libavcodec
> >> > > Makefile would solve this.  Would this be an ok thing to do?
> >> > 
> >> > No.  The report remains incomplete and the problem unreproducible.
> >> 
> >> The problem seems clear: libavformat/raw.c unconditionally compiles a
> >> call to ff_ac3_parse_header, but that function itself is not compiled
> >> unconditionally.
> >
> > Attached is a patch that fixes the issue and makes ff_ac3_parse_header
> > conditional to CONFIG_AC3_PARSER, which I believe is the correct
> > solution.  Is it necessary to #ifdef ff_ac3_parse header in ac3.h as
> > well?
> 
> If it compiles correctly in both cases, no.

It compiles fine.  It was more of a general style question.  My question
was whether it should be indicated with an #ifdef in the header file
that this function is conditionally compiled.

> > --- libavformat/allformats.c	(revision 8688)
> > +++ libavformat/allformats.c	(working copy)
> > @@ -45,7 +45,8 @@
> >      avcodec_register_all();
> >  
> >      REGISTER_DEMUXER (AAC, aac);
> > -    REGISTER_MUXDEMUX(AC3, ac3);
> > +    if (ENABLE_AC3_PARSER) REGISTER_DEMUXER (AC3, ac3);
> > +    REGISTER_MUXER   (AC3, ac3);
> 
> You could make AC3_DEMUXER depend on AC3_PARSER in configure instead.
> That might be cleaner.

Yes, I might do that.

I'm thinking that it might be cleaner to move ff_ac3_parse_header out of
ac3.c and into parser.c where the other parse functions are.  This would
save some #ifdefs in ac3.c.

Diego




More information about the ffmpeg-devel mailing list