Source code for benchbuild.projects.benchbuild.ffmpeg
from plumbum import local
from benchbuild import project
from benchbuild.settings import CFG
from benchbuild.utils import compiler, download, run, wrapping
from benchbuild.utils.cmd import make, tar
[docs]@download.with_wget({
"3.1.3":
"http://ffmpeg.org/releases/ffmpeg-3.1.3.tar.bz2"
})
class LibAV(project.Project):
""" LibAV benchmark """
NAME = 'ffmpeg'
DOMAIN = 'multimedia'
GROUP = 'benchbuild'
VERSION = '3.1.3'
SRC_FILE = "ffmpeg.tar.bz2"
fate_dir = "fate-samples"
fate_uri = "rsync://fate-suite.libav.org/fate-suite/"
[docs] def run_tests(self, runner):
unpack_dir = "ffmpeg-{0}".format(self.version)
with local.cwd(unpack_dir):
wrapping.wrap(self.name, self)
runner(make["V=1", "-i", "fate"])
[docs] def compile(self):
self.download()
tar('xfj', self.src_file)
unpack_dir = "ffmpeg-{0}".format(self.version)
clang = compiler.cc(self)
with local.cwd(unpack_dir):
download.Rsync(self.fate_uri, self.fate_dir)
configure = local["./configure"]
run.run(configure[
"--disable-shared", "--cc=" + str(clang), "--extra-ldflags=" +
" ".join(self.ldflags), "--samples=" + self.fate_dir])
run.run(make["clean"])
run.run(make["-j{0}".format(str(CFG["jobs"])), "all"])