[Ffmpeg-devel] [bug] raw.c link failure on ff_ac3_parse_header
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.
More information about the ffmpeg-devel