Build error with git
#1
Hi.

I've been able to build github xbmc in the past, but recently it has failed with -

Code:
CPP     xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxFFmpeg.o
DVDDemuxFFmpeg.cpp: In member function ‘virtual void CDVDDemuxFFmpeg::Flush()’:
DVDDemuxFFmpeg.cpp:474:41: error: ‘av_read_frame_flush’ was not declared in this scope
make[1]: *** [DVDDemuxFFmpeg.o] Error 1
make: *** [xbmc/cores/dvdplayer/DVDDemuxers/DVDDemuxers.a] Error 2

Searching it seems that this issue was fixed some time ago - maybe I am hitting it because I have an unusual getting old LFS setup

grepping the code for av_read_frame_flush finds nothing apart from that one instance.

I am building like -

./bootstrap
./configure --disable-mysql --disable-samba --prefix=/usr

As there was an issue with being on the correct tree in the search results from google this is the first part of git log -

Code:
commit cdee5273cab0a92a13dc99b4b742d9fca2e3a9f1
Merge: 6ba500c 3e1d444
Author: jmarshallnz <[email protected]>
Date:   Mon Jun 9 21:47:00 2014 +1200

    Merge pull request #4169 from koying/fixdvdtouch
    
    FIX: do not popup OSD on DVD menu with touch or mouse (fixes #14906)

I cleaned like -

make distclean
git clean -dfx
git reset --hard origin/master
git pull
Reply
#2
try git clean -xfd
Reply
#3
I have now tried the exact same commands as in the readme before posting :-)

It still doesn't work, out of curiosity is there a difference between clean -dfx and -xfd - the help lists options (separately) in alphabetical order.

I am using gcc 4.7.3 - maybe I should try a newer one.
Reply
#4
Revisited this - it seems the last working for me was with internal ffmpeg.

Now that's gone it tries to build against my installed version and av_read_frame_flush looks like it disappeared ages ago.

Perhaps because I never did a make install when building with internal I am missing some header that others still have that hides the issue.

Is there a place to get the internal ffmpeg or is it gone? I don't see it mentioned on the build from source wiki.
Reply
#5
You wont be able to compile with external ffmpeg, since its been removed, you want newest ffmpeg use Helix
Reply
#6
(2014-08-02, 21:19)uNiversal Wrote: You wont be able to compile with external ffmpeg, since its been removed, you want newest ffmpeg use Helix

Sorry, but I don't really understand :-(

Maybe you meant internal instead of external above?

I have latest ffmpeg installed on my box and it passes the configure test for version.

What does "use Helix" mean - is there a special version of ffmpeg somewhere that has a wrapper or something that hides the long defunct av_read_frame_flush like the internal version had?
Reply
#7
xbmc by default builds with its own internal ffmpeg. This is the default when running configure. We don't support any other external ffmpeg. Build directly from git (without any other distro patches) and it will work as expected.
First decide what functions / features you expect from a system. Then decide for the hardware. Don't waste your money on crap.
Reply
#8
Ok, but I thought it was removed from the tree - is it a separate/auto download that for some dependency reason fails for me - I am building on a LFS setup, no distro patches.

When I first hit the fail going back in the git tree came up with commits that referred to removing ffmpeg.
Reply
#9
So I just did a fresh clone and as below, pasted the output into a file and grepped for ffmpeg.

ph4[sdb1]$ mkdir xbmc-new
ph4[sdb1]$ cd xbmc-new/
ph4[xbmc-new]$ git clone git://github.com/xbmc/xbmc.git
Cloning into 'xbmc'...
remote: Counting objects: 290197, done.
remote: Compressing objects: 100% (217/217), done.
remote: Total 290197 (delta 425), reused 384 (delta 326)
Receiving objects: 100% (290197/290197), 453.84 MiB | 4.77 MiB/s, done.
Resolving deltas: 100% (207646/207646), done.
ph4[xbmc-new]$ cd xbmc/
ph4[xbmc]$ ./bootstrap && ./configure --disable-mysql --disable-samba --prefix=/usr



ph4[xbmc]$ grep -i ffmpeg ~/xbmc-configure-out
configure: "FFmpeg installation forced by user - installing our version"
tar: ../ffmpeg-2.3.1-Helix-alpha2.tar.gz: Cannot open: No such file or directory
/mnt/sdb1/xbmc-new/xbmc/tools/depends/target/ffmpeg/autobuild.sh: line 127: ./configure: No such file or directory
ERROR: building ffmpeg failed
checking for FFMPEG... yes
Reply
#10
Dont forget

git clean -xfd
git pull rebase master/upstream (or whatever)
sudo ./bootstrap && .sudo /configure --disable-mysql --disable-samba --prefix=/usr && sudo make -j4 && sudo make install.
Reply
#11
Thanks all for the help.

It seems the initial problem was that my curl was either too old, or more likely not compiled with certificates installed.

After sorting that I would have still been in the same position as I didn't have gnutls, but configure carried on without error trying to use my installed ffmpeg.

Of course when I say without error, there was of course one that showed ffmpeg still didn't build, but I would have not normally noticed it as configure then carried on till the end as if all was OK.
Reply
#12
From now on, pastebin a full config.log (found inside the git directory) at very least.
Reply

Logout Mark Read Team Forum Stats Members Help
Build error with git0