summaryrefslogtreecommitdiff
path: root/pkg/ffmpeg/gen.lua
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/ffmpeg/gen.lua')
-rw-r--r--pkg/ffmpeg/gen.lua55
1 files changed, 40 insertions, 15 deletions
diff --git a/pkg/ffmpeg/gen.lua b/pkg/ffmpeg/gen.lua
index d5acbf1a..5b39c0a8 100644
--- a/pkg/ffmpeg/gen.lua
+++ b/pkg/ffmpeg/gen.lua
@@ -25,6 +25,7 @@ pkg.hdrs = {
pkg.deps = {
'$outdir/config.asm',
'$outdir/config.h',
+ '$outdir/config_components.h',
'$gendir/headers',
}
@@ -35,6 +36,7 @@ local probe = {
}
build('cat', '$outdir/config.h', {'$dir/config-head.h', probe, '$dir/config.h', '$dir/config-tail.h'})
+build('copy', '$outdir/config_components.h', '$dir/config_components.h')
build('sed', '$outdir/config.asm', {probe, '$dir/config.h'}, {
expr=[[-n -e 's,^# *,%,p']],
})
@@ -45,15 +47,15 @@ build('awk', '$outdir/include/libavutil/avconfig.h', {'$dir/config.h', '|', '$di
expr='-f $dir/avconfig.awk',
})
-rule('genlist', 'lua $dir/list.lua $dir/config.h $type $var <$in >$out')
+rule('genlist', 'lua $dir/list.lua $dir/config_components.h $type $var <$in >$out')
local function genlist(out, src, type, var)
- build('genlist', out, {src, '|', '$dir/list.lua', '$dir/config.h'}, {type=type, var=var})
+ build('genlist', out, {src, '|', '$dir/list.lua', '$dir/config_components.h'}, {type=type, var=var})
table.insert(pkg.deps, out)
end
genlist('$outdir/internal/libavfilter/filter_list.c', '$srcdir/libavfilter/allfilters.c', 'AVFilter', 'filter_list')
-genlist('$outdir/internal/libavcodec/codec_list.c', '$srcdir/libavcodec/allcodecs.c', 'AVCodec', 'codec_list')
+genlist('$outdir/internal/libavcodec/codec_list.c', '$srcdir/libavcodec/allcodecs.c', 'FFCodec', 'codec_list')
genlist('$outdir/internal/libavcodec/parser_list.c', '$srcdir/libavcodec/parsers.c', 'AVCodecParser', 'parser_list')
-genlist('$outdir/internal/libavcodec/bsf_list.c', '$srcdir/libavcodec/bitstream_filters.c', 'AVBitStreamFilter', 'bitstream_filters')
+genlist('$outdir/internal/libavcodec/bsf_list.c', '$srcdir/libavcodec/bitstream_filters.c', 'FFBitStreamFilter', 'bitstream_filters')
genlist('$outdir/internal/libavformat/demuxer_list.c', '$srcdir/libavformat/allformats.c', 'AVInputFormat', 'demuxer_list')
genlist('$outdir/internal/libavformat/muxer_list.c', '$srcdir/libavformat/allformats.c', 'AVOutputFormat', 'muxer_list')
genlist('$outdir/internal/libavdevice/indev_list.c', '$srcdir/libavdevice/alldevices.c', 'AVInputFormat', 'indev_list')
@@ -65,10 +67,12 @@ build('awk', '$outdir/include/libavutil/ffversion.h', {'$dir/ver'}, {
})
local options = {}
-for line in iterlines('config.h', 1) do
- local cfg, val = line:match('^#define ([^ ]+) ([^ ]+)')
- if cfg then
- options[cfg] = val == '1'
+for _, file in ipairs{'config.h', 'config_components.h'} do
+ for line in iterlines(file, 1) do
+ local cfg, val = line:match('^#define ([^ ]+) ([^ ]+)')
+ if cfg then
+ options[cfg] = val == '1'
+ end
end
end
local sources = {
@@ -100,7 +104,7 @@ for line in iterlines('sources.txt', 1) do
end
end
-- combination option in libavutil/x86/Makefile
-if options.HAVE_MMX_EXTERNAL then
+if not options.HAVE_MMX_INLINE and options.HAVE_MMX_EXTERNAL and not options.HAVE_MM_EMPTY then
sources.libavutil['libavutil/x86/emms.asm'] = true
end
for lib, srcs in pairs(sources) do
@@ -151,9 +155,7 @@ lib('libavcodec.a', {
'avcodec.c',
'avdct.c',
'avpacket.c',
- 'avpicture.c',
'bitstream.c',
- 'bitstream_filter.c',
'bitstream_filters.c',
'bsf.c',
'codec_desc.c',
@@ -163,6 +165,7 @@ lib('libavcodec.a', {
'dirac.c',
'dv_profile.c',
'encode.c',
+ 'get_buffer.c',
'imgconvert.c',
'jni.c',
'mathtables.c',
@@ -175,6 +178,8 @@ lib('libavcodec.a', {
'qsv_api.c',
'raw.c',
'utils.c',
+ 'version.c',
+ 'vlc.c',
'vorbis_parser.c',
'xiph.c',
'x86/constants.c',
@@ -188,6 +193,7 @@ lib('libavdevice.a', {
'alldevices.c',
'avdevice.c',
'utils.c',
+ 'version.c',
}},
sources.libavdevice,
'libavcodec.a.d',
@@ -203,6 +209,7 @@ lib('libavfilter.a', {
'avfiltergraph.c',
'buffersink.c',
'buffersrc.c',
+ 'colorspace.c',
'drawutils.c',
'fifo.c',
'formats.c',
@@ -210,7 +217,7 @@ lib('libavfilter.a', {
'framequeue.c',
'graphdump.c',
'graphparser.c',
- 'transform.c',
+ 'version.c',
'video.c',
}},
sources.libavfilter,
@@ -221,21 +228,28 @@ cc('libavformat/protocols.c', {'$gendir/deps', '$outdir/internal/libavformat/pro
lib('libavformat.a', {
expand{'libavformat/', {
'allformats.c',
+ 'avformat.c',
'avio.c',
'aviobuf.c',
+ 'demux.c',
+ 'demux_utils.c',
'dump.c',
'format.c',
'id3v1.c',
'id3v2.c',
+ 'isom_tags.c',
'metadata.c',
'mux.c',
+ 'mux_utils.c',
'options.c',
'os_support.c',
'protocols.c.o',
'riff.c',
'sdp.c',
+ 'seek.c',
'url.c',
'utils.c',
+ 'version.c',
}},
sources.libavformat,
'libavcodec.a.d',
@@ -260,7 +274,9 @@ lib('libavutil.a', {
'color_utils.c',
'cpu.c',
'crc.c',
+ 'csp.c',
'des.c',
+ 'detection_bbox.c',
'dict.c',
'display.c',
'dovi_meta.c',
@@ -276,6 +292,7 @@ lib('libavutil.a', {
'frame.c',
'hash.c',
'hdr_dynamic_metadata.c',
+ 'hdr_dynamic_vivid_metadata.c',
'hmac.c',
'hwcontext.c',
'imgutils.c',
@@ -285,6 +302,7 @@ lib('libavutil.a', {
'lls.c',
'log.c',
'log2_tab.c',
+ 'lzo.c',
'mathematics.c',
'mastering_display_metadata.c',
'md5.c',
@@ -318,6 +336,8 @@ lib('libavutil.a', {
'tx_float.c',
'tx_double.c',
'tx_int32.c',
+ 'uuid.c',
+ 'version.c',
'video_enc_params.c',
'film_grain_params.c',
'x86/cpu.c',
@@ -330,6 +350,7 @@ lib('libavutil.a', {
'x86/float_dsp.asm',
'x86/imgutils.asm',
'x86/lls.asm',
+ 'x86/tx_float.asm',
}},
sources.libavutil,
})
@@ -344,6 +365,7 @@ lib('libswresample.a', {
'resample_dsp.c',
'swresample.c',
'swresample_frame.c',
+ 'version.c',
'x86/audio_convert.asm',
'x86/rematrix.asm',
'x86/resample.asm',
@@ -369,6 +391,7 @@ lib('libswscale.a', {
'swscale.c',
'swscale_unscaled.c',
'utils.c',
+ 'version.c',
'yuv2rgb.c',
'vscale.c',
'x86/rgb2rgb.c',
@@ -378,6 +401,7 @@ lib('libswscale.a', {
'x86/input.asm',
'x86/output.asm',
'x86/scale.asm',
+ 'x86/scale_avx2.asm',
'x86/rgb_2_rgb.asm',
'x86/yuv_2_rgb.asm',
'x86/yuv2yuvX.asm',
@@ -397,14 +421,15 @@ local libs = {
}
cc('fftools/cmdutils.c', {'$gendir/deps'})
+cc('fftools/opt_common.c', {'$gendir/deps'})
-exe('ffprobe', {paths[[fftools/(ffprobe.c cmdutils.c.o)]], libs})
+exe('ffprobe', {paths[[fftools/(ffprobe.c cmdutils.c.o opt_common.c.o)]], libs})
file('bin/ffprobe', '755', '$outdir/ffprobe')
-exe('ffmpeg', {paths[[fftools/(ffmpeg.c ffmpeg_opt.c ffmpeg_filter.c ffmpeg_hw.c cmdutils.c.o)]], libs})
+exe('ffmpeg', {paths[[fftools/(ffmpeg.c ffmpeg_filter.c ffmpeg_hw.c ffmpeg_mux.c ffmpeg_opt.c cmdutils.c.o opt_common.c.o)]], libs})
file('bin/ffmpeg', '755', '$outdir/ffmpeg')
-rule('texi2mdoc', [[$builddir/pkg/texi2mdoc/host/texi2mdoc -d 'November 7, 2018' -I $outdir $in >$out]])
+rule('texi2mdoc', [[$builddir/pkg/texi2mdoc/host/texi2mdoc -d 'August 31, 2022' -I $outdir $in >$out]])
build('texi2mdoc', '$outdir/ffprobe.1', {'$srcdir/doc/ffprobe.texi', '|', '$outdir/config.texi', '$builddir/pkg/texi2mdoc/host/texi2mdoc'})
build('texi2mdoc', '$outdir/ffmpeg.1', {'$srcdir/doc/ffmpeg.texi', '|', '$outdir/config.texi', '$builddir/pkg/texi2mdoc/host/texi2mdoc'})
man{'$outdir/ffprobe.1', '$outdir/ffmpeg.1'}