summaryrefslogtreecommitdiff
path: root/pkg/ffmpeg/list.lua
diff options
context:
space:
mode:
authorMichael Forney <mforney@mforney.org>2018-04-25 16:02:53 -0700
committerMichael Forney <mforney@mforney.org>2018-05-10 12:30:59 -0700
commitf8f4562b49cd6c59b0a3384335497dc1077b9621 (patch)
treec7817ec20e7f8925bdd74d80aa7af22cb65bd2c2 /pkg/ffmpeg/list.lua
parentcc4725802a003e8667f7f57a14d9ad3e168fc24e (diff)
ffmpeg: Update to 4.0
Diffstat (limited to 'pkg/ffmpeg/list.lua')
-rw-r--r--pkg/ffmpeg/list.lua45
1 files changed, 45 insertions, 0 deletions
diff --git a/pkg/ffmpeg/list.lua b/pkg/ffmpeg/list.lua
new file mode 100644
index 00000000..66cfbcda
--- /dev/null
+++ b/pkg/ffmpeg/list.lua
@@ -0,0 +1,45 @@
+local optionshdr = arg[1]
+local type = arg[2]
+local var = arg[3]
+
+local options = {}
+for line in io.lines(optionshdr) do
+ local cfg, val = line:match('^#define CONFIG_(%g+) (%g+)$')
+ if cfg then
+ options[cfg] = val == '1'
+ end
+end
+
+print('static const '..type..' *const '..var..'[] = {')
+for line in io.lines() do
+ local name = line:match('^extern .*'..type..' +ff_(%g+);$')
+ if name then
+ local cfg
+ if var == 'filter_list' then
+ local i = name:find('_', 1, true)
+ if i then
+ cfg = name:sub(i + 1)..'_filter'
+ end
+ elseif var == 'outdev_list' then
+ if name:sub(-6) == '_muxer' then
+ cfg = name:sub(1, -7)..'_outdev'
+ end
+ elseif var == 'indev_list' then
+ if name:sub(-8) == '_demuxer' then
+ cfg = name:sub(1, -9)..'_indev'
+ end
+ else
+ cfg = name
+ end
+ if cfg and options[cfg:upper()] then
+ print('&ff_'..name..',')
+ end
+ end
+end
+if var == 'filter_list' then
+ print('&ff_asrc_abuffer,')
+ print('&ff_vsrc_buffer,')
+ print('&ff_asink_abuffer,')
+ print('&ff_vsink_buffer,')
+end
+print('NULL};')