[FFmpeg-devel] [PATCH] make img_convert symbol conditional on lavc version, not libswscale

Michael Niedermayer michaelni
Thu Jun 5 17:20:46 CEST 2008


On Thu, Jun 05, 2008 at 04:58:25PM +0200, Diego Biurrun wrote:
> On Thu, Jun 05, 2008 at 04:35:05PM +0200, Michael Niedermayer wrote:
> > On Thu, Jun 05, 2008 at 09:52:13AM +0200, Diego Biurrun wrote:
> > > On Thu, Jun 05, 2008 at 12:38:11AM -0700, Baptiste Coudurier wrote:
> > > > 
> > > > Diego Biurrun wrote:
> > > > > On Tue, Jun 03, 2008 at 01:46:18PM +0200, Diego Biurrun wrote:
> > > > >> Currently we declare img_convert() in avcodec.h conditional to
> > > > >>
> > > > >> #if LIBAVCODEC_VERSION_INT < ((52<<16)+(0<<8)+0)
> > > > >>
> > > > >> However, in imgconvert.c, img_convert is defined conditional to
> > > > >>
> > > > >> #ifndef CONFIG_SWSCALE
> > > > >>
> > > > >> so that img_convert() is not available when compiling with swscale
> > > > >> enabled although it is declared in avcodec.h.
> > > > >>
> > > > >> Here is a patch to change the condition in imgconvert.c, which I believe
> > > > >> is the correct solution.
> > > > > 
> > > > > I will commit this tomorrow unless I hear objections.
> > > > 
> > > > imgresample.c uses img_convert, is it safe ?
> > > 
> > > That is indeed a problem, but separate from the one my patch addresses.
> > > The header promises the symbol conditional on lavc version, so the
> > > implementation must IMO follow.  We cannot make a condition based on
> > > CONFIG_SWSCALE in avcodec.h because installed headers do not #include
> > > config.h.
> > 
> > Iam not completely sure what is the correct awnser but
> >  --enable-swscale means "use the new API", one should not use that and then
> >  complain that the old isnt available anymore ...
> 
> But our header says that it is still available and the condition in the
> header contradicts the condition in the implementation.  So something
> must be buggy...

well then, it should not be in the header when sws is enabled.


> 
> > thus IMHO the patch is wrong in the sense that either --enable-swscale should
> > not be used or the code using lavc should use swscale instead of the old API.
> 
> Debian and Mandriva use the following patch which enables both
> libswscale and imgrescale:
> 
> http://svn.debian.org/wsvn/pkg-multimedia/unstable/ffmpeg/debian/patches/015_reenable-img_convert.diff?op=file&rev=0&sc=0
> 
> I've attached it for convenience.
> 
> > besides this the patch may or may not be totally buggy ive not checked this
> > but i think using the old scaler while the new is enabled has not been
> > considered when the code was written ...
> 
> Is enabling img_convert really a problem?  Can't the scalers be used
> side by side?

Its duplicated code and bloat at least and as said i do not know if it works
at all.
As i said the distros should not be using the old API when they disable it
during configure. 
--enable-swscale really means 
enable new scaler
disable old scaler
disable old API as its not compatible with the new scaler

So either
A. do not use --enable-swscale
B. change all applications one by one to the new API _before_ adding
  --enable-swscale

[...]
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

The greatest way to live with honor in this world is to be what we pretend
to be. -- Socrates
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20080605/0b80760a/attachment.pgp>



More information about the ffmpeg-devel mailing list