[FFmpeg-devel] [PATCH] Refactor OBJS handling in libavcodec/Makefile
Måns Rullgård
mans
Sat Jul 11 01:21:31 CEST 2009
Diego Biurrun <diego at biurrun.de> writes:
> On Thu, Jul 09, 2009 at 12:24:04PM +0100, M?ns Rullg?rd wrote:
>> Diego Biurrun <diego at biurrun.de> writes:
>>
>> > On Thu, Jul 09, 2009 at 11:15:17AM +0100, M?ns Rullg?rd wrote:
>> >> Diego Biurrun <diego at biurrun.de> writes:
>> >>
>> >> > On Thu, Jul 09, 2009 at 01:18:13AM +0100, M?ns Rullg?rd wrote:
>> >> >> Diego Biurrun <diego at biurrun.de> writes:
>> >> >>
>> >> >> > We currently duplicate a lot in the OBJS lines in libavcodec/Makefile.
>> >> >> > Here is an attempt to refactor this somewhat by grouping common OBJS
>> >> >> > into variables.
>> >> >> >
>> >> >> > I'm sure this could be improved further. Currently the grouping is
>> >> >> > somewhat arbitrary. Better suggestions are welcome.
>> >> >> >
>> >> >> > --- libavcodec/Makefile (revision 19378)
>> >> >> > +++ libavcodec/Makefile (working copy)
>> >> >> > @@ -5,6 +5,16 @@
>> >> >> >
>> >> >> > +MPEG_OBJS = motion_est.o ratecontrol.o mpeg12data.o mpegvideo.o
>> >> >> > +MPEG_DEC_OBJS = mpeg12data.o mpegvideo.o error_resilience.o
>> >> >> > +MPEG_ENC_OBJS = mpegvideo_enc.o $(MPEG_OBJS)
>> >> >> > +MPEG_ENC_ERROR_OBJS = error_resilience.o $(MPEG_ENC_OBJS)
>> >> >> > +
>> >> >> > +H263_OBJS = h263.o $(MPEG_DEC_OBJS)
>> >> >> > +H264_OBJS = h264idct.o h264pred.o cabac.o mpegvideo.o error_resilience.o
>> >> >> > +VC1_OBJS = vc1.o vc1data.o msmpeg4data.o h263dec.o h263.o intrax8.o error_resilience.o mpegvideo.o msmpeg4.o
>> >> >> > +VC1_DSP_OBJS = vc1dsp.o intrax8dsp.o $(VC1_OBJS)
>> >> >>
>> >> >> How did you arrive at this list? Did you analyse inter-object
>> >> >> dependencies or just guess?
>> >> >
>> >> > I looked at places where long lists of OBJS where duplicated and
>> >> > eliminated those.
>> >>
>> >> That's not good enough.
>> >
>> > What is the shortcoming of my approch and what is your alternative
>> > suggestion?
>>
>> Check which object files really depend on each other, and group those
>> together.
>
> And then declare dependencies for them separately? As in (to pick an
> arbitrary example that is probably wrong):
>
> mpegvideo.o: error_resilience.o
>
> ?
No, that's not what I meant.
> Because everything I put in those variables really are dependencies of
> the first object file...
>
>> >> > Notice that an alternative would be to have some decoders depend on
>> >> > others. For example, the vc1_vdpau decoder could be made to depend on
>> >> > the vc1 decoder in configure. Then it would not need to duplicate the
>> >> > OBJS list. However, this is not currently possible in configure.
>> >>
>> >> Why not? Is vc1_vdpau_decoder_deps=vc1_decoder not enough?
>> >
>> > No, if you run
>> >
>> > configure --disable-decoders --enable-decoder=vc1_vdpau
>> >
>> > no decoders are enabled.
>>
>> I can fix that. Give me a moment.
>
> Moment granted :)
Sorry, higher priority things got in the way. Give me a moment
with no girls present (and me awake) ;-)
--
M?ns Rullg?rd
mans at mansr.com
More information about the ffmpeg-devel
mailing list