[FFmpeg-devel] [PATCH V5 1/2] configure: sort decoder/encoder/filter/... names in alphabet order
Guo, Yejun
yejun.guo at intel.com
Sun Apr 28 10:42:50 EEST 2019
> -----Original Message-----
> From: ffmpeg-devel [mailto:ffmpeg-devel-bounces at ffmpeg.org] On Behalf Of
> Alexander Strasser
> Sent: Sunday, April 28, 2019 9:18 AM
> To: FFmpeg development discussions and patches <ffmpeg-devel at ffmpeg.org>
> Subject: Re: [FFmpeg-devel] [PATCH V5 1/2] configure: sort
> decoder/encoder/filter/... names in alphabet order
>
>
> What do you think about using awk instead of shell?
>
> I have 2 POC patches attached. It's probably not 100% correct yet,
> but it kind of demonstrates what it would look like.
>
> The main advantage of using awk, is that it's more elegant and
> shorter. It's probably also less risky, because it's more isolated,
> e.g. as it was explained by avih, there is no widely supported way
> for locals across shells. We already use awk in configure for
> mandatory functions, so it's no new dependency.
>
> Please comment on the awk approach.
I did some change to make it correct on ubuntu 16.04, but looks issue on windows mingw.
print_in_columns() {
sort | tr '\n' ' ' | awk -v width="$ncols" '
{
#add int()
num_cols = int(width / 24); num_rows = int((NF + num_cols-1) / num_cols);
y = x = 1;
for (i = 1; i <= NF; i++) {
if (y > num_rows) {
y = 1; x++;
}
d[x,y] = $i;
y++;
}
print width
print num_cols
print num_rows
print NF
for (y = 1; y <= num_rows; y++) {
for (x = 1; x <= num_cols; x++) {
# it does not work for the case that the last column is not fully filled
#line = sprintf(x != num_cols ? "%s%-24s" : "%s%s", line, d[x,y]);
line = sprintf("%s%-24s", line, d[x,y]);
}
print line;
line = "";
}
}' | sed 's/ *$//'
}
on ubuntu 16.04, the output is:
Enabled bsfs:
135
5
7
33
aac_adtstoasc extract_extradata hevc_mp4toannexb mpeg4_unpack_bframes truehd_core
av1_frame_split filter_units imx_dump_header noise vp9_metadata
av1_metadata h264_metadata mjpeg2jpeg null vp9_raw_reorder
chomp h264_mp4toannexb mjpega_dump_header prores_metadata vp9_superframe
dca_core h264_redundant_pps mov2textsub remove_extradata vp9_superframe_split
dump_extradata hapqa_extract mp3_header_decompress text2movsub
eac3_core hevc_metadata mpeg2_metadata trace_headers
while on windows, the output is:
Enabled bsfs:
72
3
11
33
noiseh264_redundant_pps
nullextract
prores_metadata
remove_extradatamp4toannexb
text2movsubdump_header
trace_headers
truehd_corepega_dump_header
vp9_metadata
vp9_raw_reorderader_decompress
vp9_superframea
vp9_superframe_splitames
I did a quick check, but has not found the root cause yet.
>
> I'm not against the shell way, or a mixed approach, but before going
> either way and pushing I would rather have some more testing;
> especially on more exotic platforms.
>
>
> Thank you
> Alexander
More information about the ffmpeg-devel
mailing list