* [FFmpeg-devel] [PATCH] avutil: use getauxval on linux/android for CPU capabilities
@ 2022-02-04 20:16 Aman Karmani
2022-02-04 22:20 ` Martin Storsjö
0 siblings, 1 reply; 3+ messages in thread
From: Aman Karmani @ 2022-02-04 20:16 UTC (permalink / raw)
To: ffmpeg-devel; +Cc: Aman Karmani
From: Aman Karmani <aman@tmm1.net>
fixes #6578
Signed-off-by: Aman Karmani <aman@tmm1.net>
---
libavutil/arm/cpu.c | 17 ++++++++++++++---
1 file changed, 14 insertions(+), 3 deletions(-)
diff --git a/libavutil/arm/cpu.c b/libavutil/arm/cpu.c
index 81e85e2525..983e5a4d83 100644
--- a/libavutil/arm/cpu.c
+++ b/libavutil/arm/cpu.c
@@ -36,6 +36,7 @@
#include <stdint.h>
#include <stdio.h>
#include <string.h>
+#include <sys/auxv.h>
#include "libavutil/avstring.h"
#define AT_HWCAP 16
@@ -48,6 +49,15 @@
#define HWCAP_VFPv3 (1 << 13)
#define HWCAP_TLS (1 << 15)
+static int get_auxval(uint32_t *hwcap)
+{
+ unsigned long ret = getauxval(AT_HWCAP);
+ if (ret == 0)
+ return -1;
+ *hwcap = ret;
+ return 0;
+}
+
static int get_hwcap(uint32_t *hwcap)
{
struct { uint32_t a_type; uint32_t a_val; } auxv;
@@ -106,9 +116,10 @@ int ff_get_cpu_flags_arm(void)
int flags = CORE_CPU_FLAGS;
uint32_t hwcap;
- if (get_hwcap(&hwcap) < 0)
- if (get_cpuinfo(&hwcap) < 0)
- return flags;
+ if (get_auxval(&hwcap) < 0)
+ if (get_hwcap(&hwcap) < 0)
+ if (get_cpuinfo(&hwcap) < 0)
+ return flags;
#define check_cap(cap, flag) do { \
if (hwcap & HWCAP_ ## cap) \
--
2.33.0
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [FFmpeg-devel] [PATCH] avutil: use getauxval on linux/android for CPU capabilities
2022-02-04 20:16 [FFmpeg-devel] [PATCH] avutil: use getauxval on linux/android for CPU capabilities Aman Karmani
@ 2022-02-04 22:20 ` Martin Storsjö
2022-02-05 6:25 ` Aman Karmani
0 siblings, 1 reply; 3+ messages in thread
From: Martin Storsjö @ 2022-02-04 22:20 UTC (permalink / raw)
To: FFmpeg development discussions and patches; +Cc: Aman Karmani
On Fri, 4 Feb 2022, Aman Karmani wrote:
> From: Aman Karmani <aman@tmm1.net>
>
> fixes #6578
>
> Signed-off-by: Aman Karmani <aman@tmm1.net>
> ---
> libavutil/arm/cpu.c | 17 ++++++++++++++---
> 1 file changed, 14 insertions(+), 3 deletions(-)
It would be good if the commit message actually explained the upsides to
doing this.
It's also important to point out that this function didn't use to exist in
all Android versions (hence the /proc/cpuinfo parsing). The point when the
function appeared (Android 4.4, API 20, according to the referenced trac
issue) is kinda far in the past today, but I'm not sure if strictly all
users of the library have stopped supporting older versions still - at
least for some use cases I've heard of recently, Android 4.1 was still
supported.
If coupled with a configure check for the function, so that users
explicitly targeting an older version that lack it wouldn't get it, I
guess this could be more easily acceptable.
// Martin
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [FFmpeg-devel] [PATCH] avutil: use getauxval on linux/android for CPU capabilities
2022-02-04 22:20 ` Martin Storsjö
@ 2022-02-05 6:25 ` Aman Karmani
0 siblings, 0 replies; 3+ messages in thread
From: Aman Karmani @ 2022-02-05 6:25 UTC (permalink / raw)
To: Martin Storsjö; +Cc: FFmpeg development discussions and patches
On Fri, Feb 4, 2022 at 2:20 PM Martin Storsjö <martin@martin.st> wrote:
> On Fri, 4 Feb 2022, Aman Karmani wrote:
>
> > From: Aman Karmani <aman@tmm1.net>
> >
> > fixes #6578
> >
> > Signed-off-by: Aman Karmani <aman@tmm1.net>
> > ---
> > libavutil/arm/cpu.c | 17 ++++++++++++++---
> > 1 file changed, 14 insertions(+), 3 deletions(-)
>
> It would be good if the commit message actually explained the upsides to
> doing this.
>
> It's also important to point out that this function didn't use to exist in
> all Android versions (hence the /proc/cpuinfo parsing). The point when the
> function appeared (Android 4.4, API 20, according to the referenced trac
> issue) is kinda far in the past today, but I'm not sure if strictly all
> users of the library have stopped supporting older versions still - at
> least for some use cases I've heard of recently, Android 4.1 was still
> supported.
>
> If coupled with a configure check for the function, so that users
> explicitly targeting an older version that lack it wouldn't get it, I
> guess this could be more easily acceptable.
Thanks for the review.
I discovered some older Linux arm toolchains (< glibc 2.16) are also
missing the function, so a configure check seems prudent.
Sent v2 patch with the requested changes.
>
> // Martin
>
>
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2022-02-05 6:25 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-02-04 20:16 [FFmpeg-devel] [PATCH] avutil: use getauxval on linux/android for CPU capabilities Aman Karmani
2022-02-04 22:20 ` Martin Storsjö
2022-02-05 6:25 ` Aman Karmani
Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
This inbox may be cloned and mirrored by anyone:
git clone --mirror https://master.gitmailbox.com/ffmpegdev/0 ffmpegdev/git/0.git
# If you have public-inbox 1.1+ installed, you may
# initialize and index your mirror using the following commands:
public-inbox-init -V2 ffmpegdev ffmpegdev/ https://master.gitmailbox.com/ffmpegdev \
ffmpegdev@gitmailbox.com
public-inbox-index ffmpegdev
Example config snippet for mirrors.
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git