Bug #1732
closedLatest git - transcoding - compile fail
0%
Description
Git from present day - 13.05.2013
CC src/plumbing/transcoding.o src/plumbing/transcoding.c: In function ‘transcoder_get_capabilities’: src/plumbing/transcoding.c:1320:11: error: ‘AVCodec’ has no member named ‘encode’ make: *** [/opt/tvheadend/build.linux/src/plumbing/transcoding.o] Error 1
any idea?
Updated by Thibault HERVIOU over 12 years ago
I have the same problem.
I'm on archlinux and my "avcodec.h" has no member "encode". But, I have the function declaration "encode2"....
pacman -Qi ffmpeg:
Name : ffmpeg
Version : 1:1.2-2
Description : Complete and free Internet live audio and video broadcasting
solution for Linux/Unix
Architecture : x86_64
URL : http://ffmpeg.org/
Licenses : GPL
Groups : None
Provides : None
Depends On : alsa-lib bzip2 fontconfig gsm lame libass libbluray
libmodplug libpulse libtheora libva libvorbis libvpx
opencore-amr openjpeg opus rtmpdump schroedinger sdl
speex v4l-utils x264 xvidcore zlib
Optional Deps : None
Required By : None
Optional For : newznab
Conflicts With : None
Replaces : None
Installed Size : 13236.00 KiB
Packager : Bartłomiej Piotrowski <barthalion@gmail.com>
Build Date : Mon 01 Apr 2013 09:33:26 AM CEST
Updated by Adam Sutton over 12 years ago
The transcoding stuff uses libav, which is particularly problematic from an API point of view. I've not had a chance to check the code since John pushed, to make sure version checks are right or that at the very least the code can be disabled at build time.
For now just go back to before John pushed, master will be very quiet for a while as I'm busy (when time permits) working on the DVB rewrite on another branch.
Adam
Updated by Peter Vágner over 12 years ago
I am on arch as well. I have tryed removing the test for the encoding function keeping encoding2 only on that line and then it compiles fine. However I am still unable to make it transcode by trying to stream via http e.g.
http://localhost:9981/stream/channelid/54?ticket=<valid-ticket-here>&mux=PASS&transcode=1&acodec=AAC&vcodec=H264
Most likelly this is my error and I am unable to figure it out.
Updated by Oliver Schnatz over 12 years ago
According to Peter Vágner I changed also git source:
Ffmpeg AVCodec does not have function "encode" any more it's called "encode2" now (http://ffmpeg.org/doxygen/trunk/structAVCodec.html
)
So my quick and dirty change is dropping function encode from souce.
diff Naur ../tvheadend.orig/src/plumbing/transcoding.c src/plumbing/transcoding.c ../tvheadend.orig/src/plumbing/transcoding.c 2013-05-27 10:15:14.286826726 0200
--
++ src/plumbing/transcoding.c 2013-05-24 10:02:33.105420338 +0200@ -1317,7 +1317,7 @
while ((p = av_codec_next(p))) {
- if (!p->encode && !p->encode2)
+ if (!p->encode2)
continue;
if (!WORKING_ENCODER(p->id))
Beg your pardon - I'm not familliar wit git to get patch.
My system is debian unstable:
libavcodec-dev:amd64 8:1.2.1-dmo2
libavcodec53:amd64 7:0.10.3-dmo1
libavcodec54:amd64 8:1.2.1-dmo2
Perhaps that might help ....
Updated by John Törnblom over 12 years ago
A commit has been made that tries to address this issue, please give it a try and report back if it works or not.
Updated by John Törnblom over 12 years ago
- Status changed from New to Need feedback
Updated by dhead 666 over 12 years ago
Compiled fine on Arch Linux x86-64, ffmpeg 1.2.1-1.
Tested also 2 dvb-t streams, seems to work fine.
Updated by dhead 666 over 12 years ago
Works great also on Arch Linux armv5.
You may want to add ffmpeg to the dependencies list on the wiki.
Updated by Andy Brown over 12 years ago
Hi John,
Looks like mine is hitting a problem with current git master:
Checking support/features
checking for cc execinfo.h ... ok
checking for cc -mmmx ... ok
checking for cc -msse2 ... ok
checking for cc getloadavg ... ok
checking for cc atomic64 ... ok
checking for py module gzip ... ok
checking for bzip2 ... ok
checking for pkg openssl ... ok
checking for pkg zlib ... ok
checking for pkg avahi-client ... ok
checking for pkg libavcodec <=55.0.0 ... ok
checking for pkg libavcodec >=52.96.0 ... ok
checking for pkg libavutil >=50.43.0 ... ok
checking for pkg libavformat <=55.0.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
checking for pkg libcurl ... ok
fetching dvb-scan files ... ok
Package 'libswscale' requires 'libavutil = 52.17.100' but version of libavutil is 51.22.1
Package 'libswscale' requires 'libavutil = 52.17.100' but version of libavutil is 51.22.1
Compiler:
Using C compiler: cc
Build for arch: i686
Binaries:
Using PYTHON: python
Options:
cwc yes
v4l yes
linuxdvb yes
dvbscan yes
timeshift yes
trace yes
imagecache yes
avahi yes
zlib yes
libav yes
inotify yes
bundle no
dvbcsa no
epoll yes
kqueue no
execinfo yes
mmx yes
sse2 yes
getloadavg yes
atomic64 yes
py_gzip yes
bin_bzip2 yes
ssl yes
inotify_h yes
Packages:
openssl 1.0.1
zlib 1.2.3.4
avahi-client 0.6.30
libavcodec 53.35.0
libavutil 51.22.1
libavformat 53.21.1
libswscale 2.2.100
libcurl 7.22.0
Installation paths:
Prefix: /usr
Binaries: ${prefix}/bin
Libraries: ${prefix}/lib
Data files: ${prefix}/share
Man pages: ${datadir}/man
src/plumbing/transcoding.c: In function ‘transcoder_stream_video’: src/plumbing/transcoding.c:617:9: error: type of formal parameter 4 is incomplete src/plumbing/transcoding.c:617:9: error: type of formal parameter 7 is incomplete make: *** [/usr/src/tvheadend-andyb2000/tvheadend-master/tvheadend.dev/build.linux/src/plumbing/transcoding.o] Error 1
Updated by John Törnblom over 12 years ago
Andy, what distribution are you using?
Updated by Andy Brown over 12 years ago
Sorry, wasn't watching the thread so didn't notice you'd replied!
It's on a debian-32 bit system I'm on. I'll try and catch you on irc to diagnose/debug.
Updated by Andy Brown over 12 years ago
- Priority changed from Normal to High
Still no luck with this. John any potential fix or work-around so we can compile from master please?
Updated by John Törnblom over 12 years ago
it compile just fine for me.
I installed http://cdimage.debian.org/debian-cd/7.1.0/i386/iso-cd/debian-7.1.0-i386-netinst.iso in Virtualbox
apt-get install pkg-config libssl-dev libavcodec-dev libavutil-dev libavformat-dev libswscale-dev
you are using libswscale-2.2.100, while the debian version I installed uses libswscale-2.1.0.
I also tested with archbang, who uses libswscale-2.2.100 (but with newer version of the other libav* libs), that also works.
It seems as if you've managed to install a newer version of libswscale ontop of an older version of libav*
in any case, you can still build tvheadend by disabling libav (./configure --disable-libav)
Updated by Andy Brown over 12 years ago
- Status changed from Need feedback to Resolved
Thanks John. Yes agreed, I've done a re-install of the deb package and this has resolved the compiler errors.
I'll close this issue now as resolved/user. If the original opener still has issues it may need re-opening/investigating separately.
Updated by Adam Sutton almost 12 years ago
- Status changed from Resolved to Fixed