Bug #1732
Latest 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?
History
Updated by Thibault HERVIOU over 11 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 <[email protected]>
Build Date : Mon 01 Apr 2013 09:33:26 AM CEST
Updated by Adam Sutton over 11 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 11 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 11 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 11 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 dhead 666 over 11 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 11 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 11 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 Andy Brown over 11 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 11 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 11 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 11 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.