[FFmpeg-devel] [PATCH V2 1/2] configure: sort decoder/encoder/filter/... names in alphabet order
Alexander Strasser
eclipse7 at gmx.net
Tue Apr 23 03:40:14 EEST 2019
Hi!
On 2019-04-15 21:23 +0800, Guo, Yejun wrote:
> take decoder names an example, with the default page length, shell command
> 'pr' needs two pages for all the decoder names. The names are firstly printed
> in the first page, then in the second page. So, as a whole, the names are
> sorted neither in column order nor in row order. It's a little confused.
>
> One method is to calculate the proper page length, so all the names are printed
> in one page by 'pr -l', and so strictly in alphabet order, column by column.
>
> Another method is to use command printf instead of pr, because buybox doesn't
> have pr. This patch refines print_in_columns to print the names with printf
> in alphabet order, very similar with 'pr -l', except the case when the last
> column is not fully filled with names.
Looks promising. Though this kind of change is basically
a bit difficult.
There is some risk that it won't work as expected on all
currently supported shells or perform differently.
For the performance as long as it is not grave, it should
not be a problem. Actually this implementation looks faster
here.
If it won't work as expected the risk is kind of limited,
as long as it doesn't modify global state that matters
and it does not abort the configure script, "only" the
informative / diagnostic output will be flawed, but the
build itself will be fine.
> Signed-off-by: Guo, Yejun <yejun.guo at intel.com>
> ---
> configure | 34 +++++++++++++++++++++++++---------
> 1 file changed, 25 insertions(+), 9 deletions(-)
>
> diff --git a/configure b/configure
> index c2580b3..45a9126 100755
> --- a/configure
> +++ b/configure
> @@ -3830,14 +3830,30 @@ die_unknown(){
> }
>
> print_in_columns() {
> - cols=$(expr $ncols / 24)
> - cat | tr ' ' '\n' | sort | pr -r "-$cols" -w $ncols -t
> + width=24
> + cols=$(expr $ncols / $width)
> + rows=$(expr $(expr $# + $cols - 1) / $cols)
> + eval format="%-${width}s"
Why do you use eval here?
> + for row in $(seq 1 $rows); do
I think the 1 argument to seq isn't needed here and below.
> + index=$row
> + line=""
> + lfmt=""
> + for col in $(seq 1 $cols); do
> + if [ $index -le $# ]; then
> + eval item=\$${index}
This will not work on all shells when trying to expand
the 10th parameter and following.
Excerpt of the relevant POSIX section:
When a positional parameter with more than one digit is specified, the application shall enclose the digits in braces (see Parameter Expansion).
> + line=$line" "$item
> + lfmt=$lfmt$format
> + fi
> + index=$(expr $index + $rows)
> + done
> + printf "$lfmt\n" $line
> + done
The function will pad the rightmost column up to the column
width. It is usually not a visual problem in itself, but it
could lead to additional line breaks. Especially considering
that the typical values are significantly less than 24 chars.
> }
>
> show_list() {
> suffix=_$1
> shift
> - echo $* | sed s/$suffix//g | print_in_columns
> + print_in_columns $(echo $* | sed s/$suffix//g | tr ' ' '\n' | sort)
You are changing the interface of the print_in_columns:
1. passing input as paramters
2. making the sort external
Point 1 makes it a bit harder to read; preprocessing + sorting
pipelines are soaked into a command expansion that gets splitted
into the individual parameters.
Point 2 makes it more flexible, so it shouldn't be a problem.
If we decide to implement it this way, it might be better to
mention that change in the commit message explicitly.
[...]
I have experimented locally, inspired by your patch, I came
up with this version:
print_in_columns() {
col_width=24
cols=$(expr $ncols / $col_width)
rows=$(expr $(expr $# + $cols - 1) / $cols)
for idx in $(seq $rows); do
slice=
fmt=
for col in $(seq $cols); do
if test $idx -le $#; then
eval slice='"$slice "${'$idx'}'
fmt="${fmt}%-${col_width}s"
fi
idx=$(expr $idx + $rows)
done
printf "$fmt\n" $slice
done | sed 's/ *$//'
}
Tested with bash, dash and mksh.
Alexander
P.S.
Below follows the diff for a random configure command I tested here,
compared to the current implementation.
It's equivalent to the output of your implementation, minus the
trailing spaces after the last column. Speed is nearly the same.
diff --git a/configure-z.log b/configure-b.log
index e9a1834f4a..ca0bafdeef 100644
--- a/configure-z.log
+++ b/configure-b.log
@@ -60,157 +60,157 @@ Programs:
ffmpeg ffplay ffprobe
Enabled decoders:
-aac atrac1 eatqi
-aac_fixed atrac3 eightbps
-aac_latm atrac3al eightsvx_exp
-aasc atrac3p eightsvx_fib
-ac3 atrac3pal escape124
-ac3_fixed atrac9 escape130
-adpcm_4xm aura evrc
-adpcm_adx aura2 exr
-adpcm_afc avrn ffv1
-adpcm_agm avrp ffvhuff
-adpcm_aica avs ffwavesynth
-adpcm_ct avui fic
-adpcm_dtk ayuv fits
-adpcm_ea bethsoftvid flac
-adpcm_ea_maxis_xa bfi flashsv
-adpcm_ea_r1 bink flashsv2
-adpcm_ea_r2 binkaudio_dct flic
-adpcm_ea_r3 binkaudio_rdft flv
-adpcm_ea_xas bintext fmvc
-adpcm_g722 bitpacked fourxm
-adpcm_g726 bmp fraps
-adpcm_g726le bmv_audio frwu
-adpcm_ima_amv bmv_video g2m
-adpcm_ima_apc brender_pix g723_1
-adpcm_ima_dat4 c93 g729
-adpcm_ima_dk3 cavs gdv
-adpcm_ima_dk4 ccaption gif
-adpcm_ima_ea_eacs cdgraphics gremlin_dpcm
-adpcm_ima_ea_sead cdxl gsm
-adpcm_ima_iss cfhd gsm_ms
-adpcm_ima_oki cinepak h261
-adpcm_ima_qt clearvideo h263
-adpcm_ima_rad cljr h263_v4l2m2m
-adpcm_ima_smjpeg cllc h263i
-adpcm_ima_wav comfortnoise h263p
-adpcm_ima_ws cook h264
-adpcm_ms cpia h264_crystalhd
-adpcm_mtaf cscd h264_v4l2m2m
-adpcm_psx cyuv hap
-adpcm_sbpro_2 dca hcom
-adpcm_sbpro_3 dds hevc
-adpcm_sbpro_4 dfa hevc_v4l2m2m
-adpcm_swf dirac hnm4_video
-adpcm_thp dnxhd hq_hqa
-adpcm_thp_le dolby_e hqx
-adpcm_vima dpx huffyuv
-adpcm_xa dsd_lsbf hymt
-adpcm_yamaha dsd_lsbf_planar iac
-agm dsd_msbf idcin
-aic dsd_msbf_planar idf
-alac dsicinaudio iff_ilbm
-alias_pix dsicinvideo ilbc
-als dss_sp imc
-amrnb dst imm4
-amrwb dvaudio indeo2
-amv dvbsub indeo3
-anm dvdsub indeo4
-ansi dvvideo indeo5
-ape dxa interplay_acm
-apng dxtory interplay_dpcm
-aptx dxv interplay_video
-aptx_hd eac3 jacosub
-arbc eacmv jpeg2000
-ass eamad jpegls
-asv1 eatgq jv
-asv2 eatgv kgv1
-kmvc pcm_dvd rv20
-lagarith pcm_f16le rv30
-loco pcm_f24le rv40
-lscr pcm_f32be s302m
-m101 pcm_f32le sami
-mace3 pcm_f64be sanm
-mace6 pcm_f64le sbc
-magicyuv pcm_lxf scpr
-mdec pcm_mulaw screenpresso
-metasound pcm_s16be sdx2_dpcm
-microdvd pcm_s16be_planar sgi
-mimic pcm_s16le sgirle
-mjpeg pcm_s16le_planar sheervideo
-mjpegb pcm_s24be shorten
-mlp pcm_s24daud sipr
-mmvideo pcm_s24le smackaud
-motionpixels pcm_s24le_planar smacker
-movtext pcm_s32be smc
-mp1 pcm_s32le smvjpeg
-mp1float pcm_s32le_planar snow
-mp2 pcm_s64be sol_dpcm
-mp2float pcm_s64le sonic
-mp3 pcm_s8 sp5x
-mp3adu pcm_s8_planar speedhq
-mp3adufloat pcm_u16be srgc
-mp3float pcm_u16le srt
-mp3on4 pcm_u24be ssa
-mp3on4float pcm_u24le stl
-mpc7 pcm_u32be subrip
-mpc8 pcm_u32le subviewer
-mpeg1_v4l2m2m pcm_u8 subviewer1
-mpeg1video pcm_vidc sunrast
-mpeg2_crystalhd pcm_zork svq1
-mpeg2_v4l2m2m pcx svq3
-mpeg2video pgm tak
-mpeg4 pgmyuv targa
-mpeg4_crystalhd pgssub targa_y216
-mpeg4_v4l2m2m pictor tdsc
-mpegvideo pixlet text
-mpl2 pjs theora
-msa1 png thp
-mscc ppm tiertexseqvideo
-msmpeg4_crystalhd prores tiff
-msmpeg4v1 prosumer tmv
-msmpeg4v2 psd truehd
-msmpeg4v3 ptx truemotion1
-msrle qcelp truemotion2
-mss1 qdm2 truemotion2rt
-mss2 qdmc truespeech
-msvideo1 qdraw tscc
-mszh qpeg tscc2
-mts2 qtrle tta
-mvc1 r10k twinvq
-mvc2 r210 txd
-mwsc ra_144 ulti
-mxpeg ra_288 utvideo
-nellymoser ralf v210
-nuv rasc v210x
-on2avc rawvideo v308
-opus realtext v408
-paf_audio rl2 v410
-paf_video roq vb
-pam roq_dpcm vble
-pbm rpza vc1
-pcm_alaw rscc vc1_crystalhd
-pcm_bluray rv10 vc1_v4l2m2m
-vc1image wcmv xan_wc4
-vcr1 webp xbin
-vmdaudio webvtt xbm
-vmdvideo wmalossless xface
-vmnc wmapro xl
-vorbis wmav1 xma1
-vp3 wmav2 xma2
-vp5 wmavoice xpm
-vp6 wmv1 xsub
-vp6a wmv2 xwd
-vp6f wmv3 y41p
-vp7 wmv3_crystalhd ylc
-vp8 wmv3image yop
-vp8_v4l2m2m wnv1 yuv4
-vp9 wrapped_avframe zero12v
-vp9_v4l2m2m ws_snd1 zerocodec
-vplayer xan_dpcm zlib
-vqa xan_wc3 zmbv
-wavpack
+aac fourxm pixlet
+aac_fixed fraps pjs
+aac_latm frwu png
+aasc g2m ppm
+ac3 g723_1 prores
+ac3_fixed g729 prosumer
+adpcm_4xm gdv psd
+adpcm_adx gif ptx
+adpcm_afc gremlin_dpcm qcelp
+adpcm_agm gsm qdm2
+adpcm_aica gsm_ms qdmc
+adpcm_ct h261 qdraw
+adpcm_dtk h263 qpeg
+adpcm_ea h263_v4l2m2m qtrle
+adpcm_ea_maxis_xa h263i r10k
+adpcm_ea_r1 h263p r210
+adpcm_ea_r2 h264 ra_144
+adpcm_ea_r3 h264_crystalhd ra_288
+adpcm_ea_xas h264_v4l2m2m ralf
+adpcm_g722 hap rasc
+adpcm_g726 hcom rawvideo
+adpcm_g726le hevc realtext
+adpcm_ima_amv hevc_v4l2m2m rl2
+adpcm_ima_apc hnm4_video roq
+adpcm_ima_dat4 hq_hqa roq_dpcm
+adpcm_ima_dk3 hqx rpza
+adpcm_ima_dk4 huffyuv rscc
+adpcm_ima_ea_eacs hymt rv10
+adpcm_ima_ea_sead iac rv20
+adpcm_ima_iss idcin rv30
+adpcm_ima_oki idf rv40
+adpcm_ima_qt iff_ilbm s302m
+adpcm_ima_rad ilbc sami
+adpcm_ima_smjpeg imc sanm
+adpcm_ima_wav imm4 sbc
+adpcm_ima_ws indeo2 scpr
+adpcm_ms indeo3 screenpresso
+adpcm_mtaf indeo4 sdx2_dpcm
+adpcm_psx indeo5 sgi
+adpcm_sbpro_2 interplay_acm sgirle
+adpcm_sbpro_3 interplay_dpcm sheervideo
+adpcm_sbpro_4 interplay_video shorten
+adpcm_swf jacosub sipr
+adpcm_thp jpeg2000 smackaud
+adpcm_thp_le jpegls smacker
+adpcm_vima jv smc
+adpcm_xa kgv1 smvjpeg
+adpcm_yamaha kmvc snow
+agm lagarith sol_dpcm
+aic loco sonic
+alac lscr sp5x
+alias_pix m101 speedhq
+als mace3 srgc
+amrnb mace6 srt
+amrwb magicyuv ssa
+amv mdec stl
+anm metasound subrip
+ansi microdvd subviewer
+ape mimic subviewer1
+apng mjpeg sunrast
+aptx mjpegb svq1
+aptx_hd mlp svq3
+arbc mmvideo tak
+ass motionpixels targa
+asv1 movtext targa_y216
+asv2 mp1 tdsc
+atrac1 mp1float text
+atrac3 mp2 theora
+atrac3al mp2float thp
+atrac3p mp3 tiertexseqvideo
+atrac3pal mp3adu tiff
+atrac9 mp3adufloat tmv
+aura mp3float truehd
+aura2 mp3on4 truemotion1
+avrn mp3on4float truemotion2
+avrp mpc7 truemotion2rt
+avs mpc8 truespeech
+avui mpeg1_v4l2m2m tscc
+ayuv mpeg1video tscc2
+bethsoftvid mpeg2_crystalhd tta
+bfi mpeg2_v4l2m2m twinvq
+bink mpeg2video txd
+binkaudio_dct mpeg4 ulti
+binkaudio_rdft mpeg4_crystalhd utvideo
+bintext mpeg4_v4l2m2m v210
+bitpacked mpegvideo v210x
+bmp mpl2 v308
+bmv_audio msa1 v408
+bmv_video mscc v410
+brender_pix msmpeg4_crystalhd vb
+c93 msmpeg4v1 vble
+cavs msmpeg4v2 vc1
+ccaption msmpeg4v3 vc1_crystalhd
+cdgraphics msrle vc1_v4l2m2m
+cdxl mss1 vc1image
+cfhd mss2 vcr1
+cinepak msvideo1 vmdaudio
+clearvideo mszh vmdvideo
+cljr mts2 vmnc
+cllc mvc1 vorbis
+comfortnoise mvc2 vp3
+cook mwsc vp5
+cpia mxpeg vp6
+cscd nellymoser vp6a
+cyuv nuv vp6f
+dca on2avc vp7
+dds opus vp8
+dfa paf_audio vp8_v4l2m2m
+dirac paf_video vp9
+dnxhd pam vp9_v4l2m2m
+dolby_e pbm vplayer
+dpx pcm_alaw vqa
+dsd_lsbf pcm_bluray wavpack
+dsd_lsbf_planar pcm_dvd wcmv
+dsd_msbf pcm_f16le webp
+dsd_msbf_planar pcm_f24le webvtt
+dsicinaudio pcm_f32be wmalossless
+dsicinvideo pcm_f32le wmapro
+dss_sp pcm_f64be wmav1
+dst pcm_f64le wmav2
+dvaudio pcm_lxf wmavoice
+dvbsub pcm_mulaw wmv1
+dvdsub pcm_s16be wmv2
+dvvideo pcm_s16be_planar wmv3
+dxa pcm_s16le wmv3_crystalhd
+dxtory pcm_s16le_planar wmv3image
+dxv pcm_s24be wnv1
+eac3 pcm_s24daud wrapped_avframe
+eacmv pcm_s24le ws_snd1
+eamad pcm_s24le_planar xan_dpcm
+eatgq pcm_s32be xan_wc3
+eatgv pcm_s32le xan_wc4
+eatqi pcm_s32le_planar xbin
+eightbps pcm_s64be xbm
+eightsvx_exp pcm_s64le xface
+eightsvx_fib pcm_s8 xl
+escape124 pcm_s8_planar xma1
+escape130 pcm_u16be xma2
+evrc pcm_u16le xpm
+exr pcm_u24be xsub
+ffv1 pcm_u24le xwd
+ffvhuff pcm_u32be y41p
+ffwavesynth pcm_u32le ylc
+fic pcm_u8 yop
+fits pcm_vidc yuv4
+flac pcm_zork zero12v
+flashsv pcx zerocodec
+flashsv2 pgm zlib
+flic pgmyuv zmbv
+flv pgssub
+fmvc pictor
Enabled encoders:
a64multi jpegls pgmyuv
@@ -271,13 +271,13 @@ huffyuv pcx zlib
jpeg2000 pgm zmbv
Enabled hwaccels:
-h263_vaapi mpeg1_xvmc vc1_vaapi
-h264_vaapi mpeg2_vaapi vc1_vdpau
-h264_vdpau mpeg2_vdpau vp8_vaapi
-hevc_vaapi mpeg2_xvmc vp9_vaapi
-hevc_vdpau mpeg4_vaapi wmv3_vaapi
-mjpeg_vaapi mpeg4_vdpau wmv3_vdpau
-mpeg1_vdpau
+h263_vaapi mpeg1_xvmc vc1_vdpau
+h264_vaapi mpeg2_vaapi vp8_vaapi
+h264_vdpau mpeg2_vdpau vp9_vaapi
+hevc_vaapi mpeg2_xvmc wmv3_vaapi
+hevc_vdpau mpeg4_vaapi wmv3_vdpau
+mjpeg_vaapi mpeg4_vdpau
+mpeg1_vdpau vc1_vaapi
Enabled parsers:
aac dvd_nav mpegvideo
@@ -297,104 +297,104 @@ dvaudio mpeg4video vp9
dvbsub mpegaudio xma
Enabled demuxers:
-aa ea ircam
-aac ea_cdata iss
-ac3 eac3 iv8
-acm epaf ivf
-act ffmetadata ivr
-adf filmstrip jacosub
-adp fits jv
-ads flac kux
-adx flic live_flv
-aea flv lmlm4
-afc fourxm loas
-aiff frm lrc
-aix fsb lvf
-amr g722 lxf
-amrnb g723_1 m4v
-amrwb g726 matroska
-anm g726le mgsts
-apc g729 microdvd
-ape gdv mjpeg
-apng genh mjpeg_2000
-aptx gif mlp
-aptx_hd gsm mlv
-aqtitle gxf mm
-asf h261 mmf
-asf_o h263 mov
-ass h264 mp3
-ast hcom mpc
-au hevc mpc8
-avi hls mpegps
-avr hnm mpegts
-avs ico mpegtsraw
-avs2 idcin mpegvideo
-bethsoftvid idf mpjpeg
-bfi iff mpl2
-bfstm ilbc mpsub
-bink image2 msf
-bintext image2_alias_pix msnwc_tcp
-bit image2_brender_pix mtaf
-bmv image2pipe mtv
-boa image_bmp_pipe musx
-brstm image_dds_pipe mv
-c93 image_dpx_pipe mvi
-caf image_exr_pipe mxf
-cavsvideo image_gif_pipe mxg
-cdg image_j2k_pipe nc
-cdxl image_jpeg_pipe nistsphere
-cine image_jpegls_pipe nsp
-codec2 image_pam_pipe nsv
-codec2raw image_pbm_pipe nut
-concat image_pcx_pipe nuv
-data image_pgm_pipe ogg
-daud image_pgmyuv_pipe oma
-dcstr image_pictor_pipe paf
-dfa image_png_pipe pcm_alaw
-dhav image_ppm_pipe pcm_f32be
-dirac image_psd_pipe pcm_f32le
-dnxhd image_qdraw_pipe pcm_f64be
-dsf image_sgi_pipe pcm_f64le
-dsicin image_sunrast_pipe pcm_mulaw
-dss image_svg_pipe pcm_s16be
-dts image_tiff_pipe pcm_s16le
-dtshd image_webp_pipe pcm_s24be
-dv image_xpm_pipe pcm_s24le
-dvbsub image_xwd_pipe pcm_s32be
-dvbtxt ingenient pcm_s32le
-dxa ipmovie pcm_s8
-pcm_u16be sdr2 ty
-pcm_u16le sds v210
-pcm_u24be sdx v210x
-pcm_u24le segafilm vag
-pcm_u32be ser vc1
-pcm_u32le shorten vc1t
-pcm_u8 siff vividas
-pcm_vidc sln vivo
-pjs smacker vmd
-pmp smjpeg vobsub
-pva smush voc
-pvf sol vpk
-qcp sox vplayer
-r3d spdif vqf
-rawvideo srt w64
-realtext stl wav
-redspark str wc3
-rl2 subviewer webm_dash_manifest
-rm subviewer1 webvtt
-roq sup wsaud
-rpl svag wsd
-rsd swf wsvqa
-rso tak wtv
-rtp tedcaptions wv
-rtsp thp wve
-s337m threedostr xa
-sami tiertexseq xbin
-sap tmv xmv
-sbc truehd xvag
-sbg tta xwma
-scc tty yop
-sdp txd yuv4mpegpipe
+aa idf pcm_s32le
+aac iff pcm_s8
+ac3 ilbc pcm_u16be
+acm image2 pcm_u16le
+act image2_alias_pix pcm_u24be
+adf image2_brender_pix pcm_u24le
+adp image2pipe pcm_u32be
+ads image_bmp_pipe pcm_u32le
+adx image_dds_pipe pcm_u8
+aea image_dpx_pipe pcm_vidc
+afc image_exr_pipe pjs
+aiff image_gif_pipe pmp
+aix image_j2k_pipe pva
+amr image_jpeg_pipe pvf
+amrnb image_jpegls_pipe qcp
+amrwb image_pam_pipe r3d
+anm image_pbm_pipe rawvideo
+apc image_pcx_pipe realtext
+ape image_pgm_pipe redspark
+apng image_pgmyuv_pipe rl2
+aptx image_pictor_pipe rm
+aptx_hd image_png_pipe roq
+aqtitle image_ppm_pipe rpl
+asf image_psd_pipe rsd
+asf_o image_qdraw_pipe rso
+ass image_sgi_pipe rtp
+ast image_sunrast_pipe rtsp
+au image_svg_pipe s337m
+avi image_tiff_pipe sami
+avr image_webp_pipe sap
+avs image_xpm_pipe sbc
+avs2 image_xwd_pipe sbg
+bethsoftvid ingenient scc
+bfi ipmovie sdp
+bfstm ircam sdr2
+bink iss sds
+bintext iv8 sdx
+bit ivf segafilm
+bmv ivr ser
+boa jacosub shorten
+brstm jv siff
+c93 kux sln
+caf live_flv smacker
+cavsvideo lmlm4 smjpeg
+cdg loas smush
+cdxl lrc sol
+cine lvf sox
+codec2 lxf spdif
+codec2raw m4v srt
+concat matroska stl
+data mgsts str
+daud microdvd subviewer
+dcstr mjpeg subviewer1
+dfa mjpeg_2000 sup
+dhav mlp svag
+dirac mlv swf
+dnxhd mm tak
+dsf mmf tedcaptions
+dsicin mov thp
+dss mp3 threedostr
+dts mpc tiertexseq
+dtshd mpc8 tmv
+dv mpegps truehd
+dvbsub mpegts tta
+dvbtxt mpegtsraw tty
+dxa mpegvideo txd
+ea mpjpeg ty
+ea_cdata mpl2 v210
+eac3 mpsub v210x
+epaf msf vag
+ffmetadata msnwc_tcp vc1
+filmstrip mtaf vc1t
+fits mtv vividas
+flac musx vivo
+flic mv vmd
+flv mvi vobsub
+fourxm mxf voc
+frm mxg vpk
+fsb nc vplayer
+g722 nistsphere vqf
+g723_1 nsp w64
+g726 nsv wav
+g726le nut wc3
+g729 nuv webm_dash_manifest
+gdv ogg webvtt
+genh oma wsaud
+gif paf wsd
+gsm pcm_alaw wsvqa
+gxf pcm_f32be wtv
+h261 pcm_f32le wv
+h263 pcm_f64be wve
+h264 pcm_f64le xa
+hcom pcm_mulaw xbin
+hevc pcm_s16be xmv
+hls pcm_s16le xvag
+hnm pcm_s24be xwma
+ico pcm_s24le yop
+idcin pcm_s32be yuv4mpegpipe
Enabled muxers:
a64 hevc pcm_s24le
@@ -453,142 +453,142 @@ hash pcm_s16le wv
hds pcm_s24be yuv4mpegpipe
Enabled protocols:
-async http rtmpt
-cache httpproxy rtp
-concat icecast srtp
-crypto md5 subfile
-data mmsh tcp
-ffrtmphttp mmst tee
-file pipe udp
-ftp prompeg udplite
-gopher rtmp unix
-hls
+async http rtp
+cache httpproxy srtp
+concat icecast subfile
+crypto md5 tcp
+data mmsh tee
+ffrtmphttp mmst udp
+file pipe udplite
+ftp prompeg unix
+gopher rtmp
+hls rtmpt
Enabled filters:
-abench astats detelecine
-abitscope astreamselect dilation
-acompressor atadenoise displace
-acontrast atempo doubleweave
-acopy atrim drawbox
-acrossfade avectorscope drawgraph
-acrossover avgblur drawgrid
-acrusher azmq drmeter
-acue bandpass dynaudnorm
-adeclick bandreject earwax
-adeclip bass ebur128
-adelay bbox edgedetect
-aderivative bench elbg
-adrawgraph biquad entropy
-aecho bitplanenoise eq
-aemphasis blackdetect equalizer
-aeval blackframe erosion
-aevalsrc blend extractplanes
-afade bm3d extrastereo
-afftdn boxblur fade
-afftfilt bwdif fftdnoiz
-afifo cellauto fftfilt
-afir channelmap field
-aformat channelsplit fieldhint
-agate chorus fieldmatch
-agraphmonitor chromahold fieldorder
-ahistogram chromakey fifo
-aiir chromashift fillborders
-aintegral ciescope find_rect
-ainterleave codecview firequalizer
-alimiter color flanger
-allpass colorbalance floodfill
-allrgb colorchannelmixer format
-allyuv colorkey fps
-aloop colorlevels framepack
-alphaextract colormatrix framerate
-alphamerge colorspace framestep
-amerge compand freezedetect
-ametadata compensationdelay fspp
-amix concat gblur
-amovie convolution geq
-amplify convolve gradfun
-amultiply copy graphmonitor
-anequalizer cover_rect greyedge
-anlmdn crop haas
-anoisesrc cropdetect haldclut
-anull crossfeed haldclutsrc
-anullsink crystalizer hdcd
-anullsrc cue headphone
-apad curves hflip
-aperms datascope highpass
-aphasemeter dcshift highshelf
-aphaser dctdnoiz hilbert
-apulsator deband histeq
-arealtime deblock histogram
-aresample decimate hqdn3d
-areverse deconvolve hqx
-aselect dedot hstack
-asendcmd deflate hue
-asetnsamples deflicker hwdownload
-asetpts deinterlace_vaapi hwmap
-asetrate dejudder hwupload
-asettb delogo hysteresis
-ashowinfo denoise_vaapi idet
-asidedata deshake il
-asplit despill inflate
-interlace premultiply smptebars
-interleave prewitt smptehdbars
-join procamp_vaapi sobel
-kerndeint pseudocolor spectrumsynth
-lenscorrection psnr split
-life pullup spp
-limiter qp sr
-loop random ssim
-loudnorm readeia608 stereo3d
-lowpass readvitc stereotools
-lowshelf realtime stereowiden
-lumakey remap streamselect
-lut removegrain super2xsai
-lut1d removelogo superequalizer
-lut2 repeatfields surround
-lut3d replaygain swaprect
-lutrgb reverse swapuv
-lutyuv rgbashift tblend
-mandelbrot rgbtestsrc telecine
-maskedclamp roberts testsrc
-maskedmerge rotate testsrc2
-maskfun sab threshold
-mcdeint scale thumbnail
-mcompand scale2ref tile
-mergeplanes scale_vaapi tinterlace
-mestimate select tlut2
-metadata selectivecolor tmix
-midequalizer sendcmd tonemap
-minterpolate separatefields tpad
-mix setdar transpose
-movie setfield transpose_vaapi
-mpdecimate setparams treble
-mptestsrc setpts tremolo
-negate setrange trim
-nlmeans setsar unpremultiply
-nnedi settb unsharp
-noformat sharpness_vaapi uspp
-noise showcqt vaguedenoiser
-normalize showfreqs vectorscope
-null showinfo vflip
-nullsink showpalette vfrdet
-nullsrc showspectrum vibrance
-oscilloscope showspectrumpic vibrato
-overlay showvolume vignette
-owdenoise showwaves vmafmotion
-pad showwavespic volume
-pal100bars shuffleframes volumedetect
-pal75bars shuffleplanes vstack
-palettegen sidechaincompress w3fdif
-paletteuse sidechaingate waveform
-pan sidedata weave
-perms signalstats xbr
-perspective signature xstack
-phase silencedetect yadif
-pixdesctest silenceremove yuvtestsrc
-pixscope sinc zmq
-pp sine zoompan
-pp7 smartblur
+abench deflate pan
+abitscope deflicker perms
+acompressor deinterlace_vaapi perspective
+acontrast dejudder phase
+acopy delogo pixdesctest
+acrossfade denoise_vaapi pixscope
+acrossover deshake pp
+acrusher despill pp7
+acue detelecine premultiply
+adeclick dilation prewitt
+adeclip displace procamp_vaapi
+adelay doubleweave pseudocolor
+aderivative drawbox psnr
+adrawgraph drawgraph pullup
+aecho drawgrid qp
+aemphasis drmeter random
+aeval dynaudnorm readeia608
+aevalsrc earwax readvitc
+afade ebur128 realtime
+afftdn edgedetect remap
+afftfilt elbg removegrain
+afifo entropy removelogo
+afir eq repeatfields
+aformat equalizer replaygain
+agate erosion reverse
+agraphmonitor extractplanes rgbashift
+ahistogram extrastereo rgbtestsrc
+aiir fade roberts
+aintegral fftdnoiz rotate
+ainterleave fftfilt sab
+alimiter field scale
+allpass fieldhint scale2ref
+allrgb fieldmatch scale_vaapi
+allyuv fieldorder select
+aloop fifo selectivecolor
+alphaextract fillborders sendcmd
+alphamerge find_rect separatefields
+amerge firequalizer setdar
+ametadata flanger setfield
+amix floodfill setparams
+amovie format setpts
+amplify fps setrange
+amultiply framepack setsar
+anequalizer framerate settb
+anlmdn framestep sharpness_vaapi
+anoisesrc freezedetect showcqt
+anull fspp showfreqs
+anullsink gblur showinfo
+anullsrc geq showpalette
+apad gradfun showspectrum
+aperms graphmonitor showspectrumpic
+aphasemeter greyedge showvolume
+aphaser haas showwaves
+apulsator haldclut showwavespic
+arealtime haldclutsrc shuffleframes
+aresample hdcd shuffleplanes
+areverse headphone sidechaincompress
+aselect hflip sidechaingate
+asendcmd highpass sidedata
+asetnsamples highshelf signalstats
+asetpts hilbert signature
+asetrate histeq silencedetect
+asettb histogram silenceremove
+ashowinfo hqdn3d sinc
+asidedata hqx sine
+asplit hstack smartblur
+astats hue smptebars
+astreamselect hwdownload smptehdbars
+atadenoise hwmap sobel
+atempo hwupload spectrumsynth
+atrim hysteresis split
+avectorscope idet spp
+avgblur il sr
+azmq inflate ssim
+bandpass interlace stereo3d
+bandreject interleave stereotools
+bass join stereowiden
+bbox kerndeint streamselect
+bench lenscorrection super2xsai
+biquad life superequalizer
+bitplanenoise limiter surround
+blackdetect loop swaprect
+blackframe loudnorm swapuv
+blend lowpass tblend
+bm3d lowshelf telecine
+boxblur lumakey testsrc
+bwdif lut testsrc2
+cellauto lut1d threshold
+channelmap lut2 thumbnail
+channelsplit lut3d tile
+chorus lutrgb tinterlace
+chromahold lutyuv tlut2
+chromakey mandelbrot tmix
+chromashift maskedclamp tonemap
+ciescope maskedmerge tpad
+codecview maskfun transpose
+color mcdeint transpose_vaapi
+colorbalance mcompand treble
+colorchannelmixer mergeplanes tremolo
+colorkey mestimate trim
+colorlevels metadata unpremultiply
+colormatrix midequalizer unsharp
+colorspace minterpolate uspp
+compand mix vaguedenoiser
+compensationdelay movie vectorscope
+concat mpdecimate vflip
+convolution mptestsrc vfrdet
+convolve negate vibrance
+copy nlmeans vibrato
+cover_rect nnedi vignette
+crop noformat vmafmotion
+cropdetect noise volume
+crossfeed normalize volumedetect
+crystalizer null vstack
+cue nullsink w3fdif
+curves nullsrc waveform
+datascope oscilloscope weave
+dcshift overlay xbr
+dctdnoiz owdenoise xstack
+deband pad yadif
+deblock pal100bars yuvtestsrc
+decimate pal75bars zmq
+deconvolve palettegen zoompan
+dedot paletteuse
Enabled bsfs:
aac_adtstoasc h264_redundant_pps noise
@@ -604,20 +604,20 @@ h264_metadata mpeg2_metadata vp9_superframe
h264_mp4toannexb mpeg4_unpack_bframes vp9_superframe_split
Enabled indevs:
-alsa oss v4l2
-fbdev sndio xcbgrab
-lavfi
+alsa oss xcbgrab
+fbdev sndio
+lavfi v4l2
Enabled outdevs:
-alsa sdl2 v4l2
-fbdev sndio xv
-oss
+alsa sdl2 xv
+fbdev sndio
+oss v4l2
License: GPL version 2 or later
libavfilter/filter_list.c is unchanged
libavdevice/indev_list.c is unchanged
libavdevice/outdev_list.c is unchanged
-real 0m24.882s
-user 0m11.817s
-sys 0m4.488s
+real 0m17.654s
+user 0m13.339s
+sys 0m4.852s
More information about the ffmpeg-devel
mailing list