diff options
Diffstat (limited to 'pkg/ffmpeg/gen.lua')
| -rw-r--r-- | pkg/ffmpeg/gen.lua | 55 |
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'} |
