Bug #2234
Latest git build fails on latest debian jessie
0%
Description
Building on a debian jessie host (armel architecture) with latest jessie updates (20140816) fails in two locations (so far).
Package info from build script (Autobuild.sh t debian): --enable-bundle
./Autobuild.sh -t debian
dpkg-buildpackage: source package tvheadend
dpkg-buildpackage: source version 3.9.1308~ga5bca86-dirty
dpkg-buildpackage: source distribution unstable
dpkg-buildpackage: source changed by Andreas Öman <[email protected]>
dpkg-buildpackage: host architecture armel
dpkg-source --before-build tvheadend
debian/rules clean
dh clean
dh_testdir
dh_clean
rm -f debian/tvheadend.substvars
rm -f debian/tvheadend.*.debhelper
rm -rf debian/tvheadend/
rm -f debian/tvheadend-dbg.substvars
rm -f debian/tvheadend-dbg.*.debhelper
rm -rf debian/tvheadend-dbg/
rm -f debian/*.debhelper.log
rm -f debian/files
find . \( \( -type f -a \
\( -name '#*#' -o -name '.*~' -o -name '*~' -o -name DEADJOE \
-o -name '*.orig' -o -name '*.rej' -o -name '*.bak' \
-o -name '.*.orig' -o -name .*.rej -o -name '.SUMS' \
-o -name TAGS -o \( -path '*/.deps/*' -a -name '*.P' \) \
\) -exec rm -f {} + \) -o \
\( -type d -a -name autom4te.cache -prune -exec rm -rf {} + \) \)
debian/rules build
dh build
dh_testdir
debian/rules override_dh_auto_configure
make1: Entering directory '/home/pfreeman/src/tvheadend'
dh_auto_configure -
./configure --build=arm-linux-gnueabi --prefix=/usr --includedir=\${prefix}/include --mandir=\${prefix}/share/man --infodir=\${prefix}/share/info --sysconfdir=/etc --localstatedir=/var --disable-silent-rules --libexecdir=\${prefix}/lib/tvheadend --disable-maintainer-mode --disable-dependency-tracking --enable-bundle
Checking support/features
checking for cc execinfo.h ... ok
checking for cc -mmmx ... fail
checking for cc -msse2 ... fail
checking for cc getloadavg ... ok
checking for cc atomic64 ... ok
checking for cc lockowner ... ok
checking for cc qsort_r ... ok
checking for cc recvmmsg ... ok
checking for cc libiconv ... fail
checking for py module gzip ... ok
checking for bzip2 ... ok
checking for pkg openssl ... ok
checking for cc linux/dvb/version.h ... ok
checking for pkg zlib ... ok
checking for pkg liburiparser ... ok
checking for pkg avahi-client ... ok
checking for pkg libavcodec >=52.96.0 ... ok
checking for pkg libavutil >=50.43.0 ... ok
checking for pkg libavformat >=53.10.0 ... ok
checking for pkg libswscale >=0.13.0 ... ok
checking for cc sys/inotify.h ... ok
fetching dvb-scan files ... ok
checking for pkg dbus-1 ... ok
Compiler:
Using C compiler: cc
Build for arch: armv5tel
Binaries:
Using PYTHON: python
Options:
cwc yes
capmt yes
v4l no
linuxdvb yes
satip_client yes
iptv yes
tsfile yes
dvbscan yes
timeshift yes
trace yes
imagecache yes
avahi yes
zlib yes
libav yes
inotify yes
epoll yes
uriparser yes
ccache no
tvhcsa yes
bundle yes
dvbcsa no
kqueue no
dbus_1 yes
android no
execinfo yes
getloadavg yes
atomic64 yes
lockowner yes
qsort_r yes
recvmmsg yes
py_gzip yes
bin_bzip2 yes
ssl yes
linuxdvbapi yes
upnp yes
inotify_h yes
mpegts yes
mpegps no
mpegts_dvb yes
Packages:
openssl 1.0.1i
zlib 1.2.8
liburiparser 0.8.0.1
avahi-client 0.6.31
libavcodec 55.34.1
libavutil 53.3.0
libavformat 55.12.0
libswscale 2.1.2
dbus-1 1.8.6
Installation paths:
Prefix: /usr
Binaries: ${prefix}/bin
Libraries: ${prefix}/lib
Data files: ${prefix}/share
Man pages: /usr/share/man
Errors:
1.
CC src/avahi.o
CC src/libav.o
CC src/muxer/muxer_libav.o
src/muxer/muxer_libav.c: In function ‘lav_muxer_write_pkt’:
src/muxer/muxer_libav.c:378:31: error: ‘CODEC_ID_MPEG2VIDEO’ undeclared (first use in this function)
if(st->codec->codec_id CODEC_ID_MPEG2VIDEO)
src/muxer/muxer_libav.c:378:31: note: each undeclared identifier is reported only once for each function it appears in
src/muxer/muxer_libav.c:381:53: error: ‘CODEC_ID_H264’ undeclared (first use in this function)
if(lm->lm_h264_filter && st->codec->codec_id CODEC_ID_H264) {
2.
CC src/muxer/muxer_libav.o
CC src/plumbing/transcoding.o
src/plumbing/transcoding.c: In function ‘transcoder_stream_audio’:
src/plumbing/transcoding.c:309:3: error: implicit declaration of function ‘avcodec_decode_audio3’ [-Werror=implicit-function-declaration]
if ((length = avcodec_decode_audio3(ictx, samples, &len, &packet)) <= 0) {
^
src/plumbing/transcoding.c:411:5: error: implicit declaration of function ‘avcodec_encode_audio’ [-Werror=implicit-function-declaration]
length = avcodec_encode_audio(octx,
^
src/plumbing/transcoding.c: In function ‘transcoder_stream_video’:
src/plumbing/transcoding.c:673:3: error: implicit declaration of function ‘avcodec_encode_video’ [-Werror=implicit-function-declaration]
length = avcodec_encode_video(octx, out, len, vs->vid_enc_frame);
^
cc1: all warnings being treated as errors
Both 1 and 2 look like they are related to the newer version of libavcodec (55.34.1) and libavformat (55.12.0).
1. is easily fixed by changing CODEC_ID_MPEG2VIDEO to AV_CODEC_ID_MPEG2VIDEO and CODEC_ID_H264 to AV_CODEC_ID_H264.
However, 2. actually appears to require recoding as in the latest debian jessie updates, libavcodec does not seem to contain the following deprecated wrappers anymore:
avcodec_decode_audio3 - wrapper for avcodec_decode_audio4
avcodec_encode_audio - wrapper for avcodec_encode_audio2
avcodec_encode_video - wrapper for avcodec_encode_video2
I can provide a patch for the src/muxer/muxer_libav.c issues but my knowledge of decoding and encoding is limited so I think trying to work out the code to fix src/plumbing/transcoding.c is beyond me.
If you require further information, please contact me.
Regards
Paul