[FFmpeg-devel] [PATCH V2 1/2] configure: sort decoder/encoder/filter/... names in alphabet order
Guo, Yejun
yejun.guo at intel.com
Tue Apr 23 05:37:58 EEST 2019
> -----Original Message-----
> From: ffmpeg-devel [mailto:ffmpeg-devel-bounces at ffmpeg.org] On Behalf Of
> Alexander Strasser
> Sent: Tuesday, April 23, 2019 8:40 AM
> To: FFmpeg development discussions and patches <ffmpeg-devel at ffmpeg.org>
> Subject: Re: [FFmpeg-devel] [PATCH V2 1/2] configure: sort
> decoder/encoder/filter/... names in alphabet order
>
> 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?
I did many experiments, eval is for an old try and forgot to remove it for the new change. Will remove it.
>
>
> > + for row in $(seq 1 $rows); do
>
> I think the 1 argument to seq isn't needed here and below.
yes, you are right. Will remove it.
>
>
> > + 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).
thanks for pointing this, I did not try all shells.
will replace it like your following patch did:
eval line='$line" "${'$index'}'
>
>
> > + 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.
>
yes, there will be additional spaces to fill the 24 chars for each name. Will remove with sed as your patch did.
>
> > }
> >
> > 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.
will add in the commit message.
>
> [...]
>
> 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.
thanks for the patch, will merge it.
>
>
> 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
>
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request at ffmpeg.org with subject "unsubscribe".
More information about the ffmpeg-devel
mailing list