Le sunnuntaina 17. joulukuuta 2023, 14.36.08 EET Martin Storsjö a écrit : > The names of the cpu flags, when parsed from a string with > av_parse_cpu_caps, are parsed by the libavutil eval functions. These > interpret dashes as subtractions. Therefore, these previous cpu flag > names haven't been possible to set. > > Use the official names for these extensions, as the previous ad-hoc > names wasn't parseable. > > libavutil/tests/cpu tests that the cpu flags can be set, and prints > the detected flags.
Acked-by: Rémi Denis-Courmont <r...@remlab.net> > --- > v3: Fixed the name zve64d. Kept the cpuflags names all lowercase for > consistency with the other cpuflags. > --- > libavutil/cpu.c | 12 ++++++------ > libavutil/tests/cpu.c | 10 ++++++++++ > 2 files changed, 16 insertions(+), 6 deletions(-) > > diff --git a/libavutil/cpu.c b/libavutil/cpu.c > index 1e0607d581..48d195168c 100644 > --- a/libavutil/cpu.c > +++ b/libavutil/cpu.c > @@ -186,12 +186,12 @@ int av_parse_cpu_caps(unsigned *flags, const char *s) > { "rvi", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = AV_CPU_FLAG_RVI > }, .unit = "flags" }, { "rvf", NULL, 0, AV_OPT_TYPE_CONST, { > .i64 = AV_CPU_FLAG_RVF }, .unit = "flags" }, { "rvd", NULL, 0, > AV_OPT_TYPE_CONST, { .i64 = AV_CPU_FLAG_RVD }, .unit = "flags" }, - > { "rvv-i32", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = > AV_CPU_FLAG_RVV_I32 }, .unit = "flags" }, - { "rvv-f32", NULL, > 0, AV_OPT_TYPE_CONST, { .i64 = AV_CPU_FLAG_RVV_F32 }, .unit = "flags" > }, - { "rvv-i64", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = > AV_CPU_FLAG_RVV_I64 }, .unit = "flags" }, - { "rvv", NULL, > 0, AV_OPT_TYPE_CONST, { .i64 = AV_CPU_FLAG_RVV_F64 }, .unit = "flags" > }, - { "rvb-addr",NULL, 0, AV_OPT_TYPE_CONST, { .i64 = > AV_CPU_FLAG_RVB_ADDR }, .unit = "flags" }, - { "rvb-basic",NULL, > 0, AV_OPT_TYPE_CONST, { .i64 = AV_CPU_FLAG_RVB_BASIC }, .unit = "flags" > }, + { "zve32x", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = > AV_CPU_FLAG_RVV_I32 }, .unit = "flags" }, + { "zve32f", NULL, > 0, AV_OPT_TYPE_CONST, { .i64 = AV_CPU_FLAG_RVV_F32 }, .unit = "flags" > }, + { "zve64x", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = > AV_CPU_FLAG_RVV_I64 }, .unit = "flags" }, + { "zve64d", NULL, > 0, AV_OPT_TYPE_CONST, { .i64 = AV_CPU_FLAG_RVV_F64 }, .unit = "flags" > }, + { "zba", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = > AV_CPU_FLAG_RVB_ADDR }, .unit = "flags" }, + { "zbb", NULL, > 0, AV_OPT_TYPE_CONST, { .i64 = AV_CPU_FLAG_RVB_BASIC }, .unit = "flags" > }, #endif > { NULL }, > }; > diff --git a/libavutil/tests/cpu.c b/libavutil/tests/cpu.c > index 200f20388a..d91bfeab5c 100644 > --- a/libavutil/tests/cpu.c > +++ b/libavutil/tests/cpu.c > @@ -84,6 +84,16 @@ static const struct { > #elif ARCH_LOONGARCH > { AV_CPU_FLAG_LSX, "lsx" }, > { AV_CPU_FLAG_LASX, "lasx" }, > +#elif ARCH_RISCV > + { AV_CPU_FLAG_RVI, "rvi" }, > + { AV_CPU_FLAG_RVF, "rvf" }, > + { AV_CPU_FLAG_RVD, "rvd" }, > + { AV_CPU_FLAG_RVB_ADDR, "zba" }, > + { AV_CPU_FLAG_RVB_BASIC, "zbb" }, > + { AV_CPU_FLAG_RVV_I32, "zve32x" }, > + { AV_CPU_FLAG_RVV_F32, "zve32f" }, > + { AV_CPU_FLAG_RVV_I64, "zve64x" }, > + { AV_CPU_FLAG_RVV_F64, "zve64d" }, > #endif > { 0 } > }; -- Rémi Denis-Courmont http://www.remlab.net/ _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".