Enable faad support in ffmpeg/experimental

Reinhard Tartler siretart at tauware.de
Thu Mar 20 12:57:54 UTC 2008


Fabian Greffrath <greffrath at leat.rub.de> writes:

> Reinhard Tartler schrieb:
>> Since there is not a single package in debian that depends only on
>> libswscale and not on any other ffmpeg library package, I think we can
>> safely rename to libswscale0, Right.
>
> Done in SVN.
>
> Furthermore, dh_makeshlibs as it is called now shows the same results as
> if run with the '-V' option alone - it's only more complicated.
> According to dh_shlibdeps(1) the '-l' and '-L' options are not needed
> anymore with recent versions of debhelper. According to my test builds
> this is true.
>
> Please remove the commented lines in debian/rules if you think these
> changes are appropriate.

I've been thinking quite a bit about this issue. Quoting the
dh_makeshlibs manpage:

#        -V, -Vdependencies
#        --version-info, --version-info=dependencies
#            By default, the shlibs file generated by this program does not make
#            packages depend on any particular version of the package containing
#            the shared library. It may be necessary for you to add some version
#            dependancy information to the shlibs file. If -V is specified with
#            no dependency information, the current upstream version of the
#            package is plugged into a dependency that looks like "packagename
#            (>= packageversion)". Note that in debhelper compatibility levels
#            before v4, the debian part of the package version number is also
#            included. If -V is specified with parameters, the parameters can be
#            used to specify the exact dependency information needed (be sure to
#            include the package name).
# 
#            Beware of using -V without any parameters; this is a conservative
#            setting that always ensures that other packages’ shared library
#            dependencies are at least as tight as they need to be (unless your
#            library is prone to changing ABI without updating the upstream ver‐
#            sion number), so that if the maintainer screws up then they won’t
#            break. The flip side is that packages might end up with dependen‐
#            cies that are too tight and so find it harder to be upgraded.
# 

Given that ffmpeg is such a beast, and your other proposal to include
symbol files, I agree that it is probably best to just use -V at this point.

>
>> Oh darn. Well, it used to work in the past, but now we need something
>> more sophisticated... :/
>
> I have attached a script that replaces all lines in config.h that might
> enable the codecs to disable them (i.e. it does not add lines, they have
> to allready exist). The script is run without arguments.
>
> Please test if it works for you, it does so for me. ;)

No, it doesn't work here:

dsputil.c: In function ‘h263_v_loop_filter_c’:
dsputil.c:2685: error: ‘ENABLE_H263_ENCODER’ undeclared (first use in this function)
dsputil.c:2685: error: (Each undeclared identifier is reported only once
dsputil.c:2685: error: for each function it appears in.)
dsputil.c:2685: error: ‘ENABLE_H263P_ENCODER’ undeclared (first use in this function)
dsputil.c:2685: error: ‘ENABLE_MPEG4_ENCODER’ undeclared (first use in this function)
dsputil.c:2685: error: ‘ENABLE_MSMPEG4V1_ENCODER’ undeclared (first use in this function)
dsputil.c:2685: error: ‘ENABLE_MSMPEG4V2_ENCODER’ undeclared (first use in this function)
dsputil.c:2685: error: ‘ENABLE_MSMPEG4V3_ENCODER’ undeclared (first use in this function)
dsputil.c: In function ‘h263_h_loop_filter_c’:
dsputil.c:2722: error: ‘ENABLE_H263_ENCODER’ undeclared (first use in this function)
dsputil.c:2722: error: ‘ENABLE_H263P_ENCODER’ undeclared (first use in this function)
dsputil.c:2722: error: ‘ENABLE_MPEG4_ENCODER’ undeclared (first use in this function)
dsputil.c:2722: error: ‘ENABLE_MSMPEG4V1_ENCODER’ undeclared (first use in this function)
dsputil.c:2722: error: ‘ENABLE_MSMPEG4V2_ENCODER’ undeclared (first use in this function)
dsputil.c:2722: error: ‘ENABLE_MSMPEG4V3_ENCODER’ undeclared (first use in this function)
dsputil.c: In function ‘dct_sad8x8_c’:
dsputil.c:3443: warning: dereferencing type-punned pointer will break strict-aliasing rules
dsputil.c: In function ‘dct_max8x8_c’:
dsputil.c:3508: warning: dereferencing type-punned pointer will break strict-aliasing rules
dsputil.c: In function ‘quant_psnr8x8_c’:
dsputil.c:3525: warning: dereferencing type-punned pointer will break strict-aliasing rules
dsputil.c:3526: warning: dereferencing type-punned pointer will break strict-aliasing rules
dsputil.c: In function ‘rd8x8_c’:
dsputil.c:3551: warning: dereferencing type-punned pointer will break strict-aliasing rules
dsputil.c: In function ‘bit8x8_c’:
dsputil.c:3629: warning: dereferencing type-punned pointer will break strict-aliasing rules
dsputil.c: In function ‘dsputil_init’:
dsputil.c:4247: error: ‘ENABLE_H263_ENCODER’ undeclared (first use in this function)
dsputil.c:4247: error: ‘ENABLE_H263P_ENCODER’ undeclared (first use in this function)
dsputil.c:4247: error: ‘ENABLE_MPEG4_ENCODER’ undeclared (first use in this function)
dsputil.c:4247: error: ‘ENABLE_MSMPEG4V1_ENCODER’ undeclared (first use in this function)
dsputil.c:4247: error: ‘ENABLE_MSMPEG4V2_ENCODER’ undeclared (first use in this function)
dsputil.c:4247: error: ‘ENABLE_MSMPEG4V3_ENCODER’ undeclared (first use in this function)
make[2]: *** [dsputil.o] Fehler 1

The problem is that by running debian/strip.sh, the configure script
fails to detect the the listed encoders. The rest of the source hower
expect these defines to be available. That's why the sed approach doesn't work.

I'll try to get something working with creating a
'config-missing-defines.h', which gets included from config.h and proper
ifdef guards.

> PS: Does the get-orig-source rule work for you?

tail: cannot open `debian/changelog' for reading: No such file or directory
dpkg-parsechangelog: failure: tail of debian/changelog gave error exit status 1
svn export -r{} svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg-free-
svn: Syntax error in revision argument '{}'
make: *** [get-orig-source] Error 1
zsh: exit 2     nice make -f ../ffmpeg-free-20080206/debian/rules get-orig-source

sorry, no. :(

The rule seems to make assumptions about the $PWD, which I don't get
yet. It would be better if that rule didn't rely on that.

> PPS: Shouldn't we remove the warnings in the package descriptions that
> claim we ship a "Debian-specific" version of the libraries?

TBH, I'd keep them for now. Feel free to file a wishlist bug so that we
don't forget the issue later.

-- 
Gruesse/greetings,
Reinhard Tartler, KeyID 945348A4



More information about the pkg-multimedia-maintainers mailing list