[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