Bug #2234

Latest git build fails on latest debian jessie

Added by Paul Freeman over 6 years ago. Updated about 6 years ago.

Target version:
Start date:
Due date:
% Done:


Estimated time:
Found in version:
git 3.9.1308~ga5bca86
Affected Versions:


Building on a debian jessie host (armel architecture) with latest jessie updates (20140816) fails in two locations (so far).

Package info from build script ( t debian):
./ -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 <>
dpkg-buildpackage: host architecture armel
dpkg-source --before-build tvheadend
debian/rules clean
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
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

Using C compiler: cc
Build for arch: armv5tel

Using PYTHON: python

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

openssl 1.0.1i
zlib 1.2.8
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

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) {

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.





Updated by Adam Sutton about 6 years ago

  • Category set to Transcoding

Also available in: Atom PDF