Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH v2] package/libcamera-apps: enable LIBAV only if libdrm is present
@ 2023-02-20  7:18 Marcus Folkesson
  2023-02-20 21:17 ` Thomas Petazzoni via buildroot
  0 siblings, 1 reply; 3+ messages in thread
From: Marcus Folkesson @ 2023-02-20  7:18 UTC (permalink / raw)
  To: buildroot; +Cc: Marcus Folkesson, Yann E . MORIN

Since commit 35266e84043f880d7591e52b71a8c5b8d0e4717d, libcamera-apps
does enable LIBAV by default which depends on libdrm.

Fixes:
- http://autobuild.buildroot.net/results/548f2a3b353ce4693fb60d7fb1e06e02af22991c/

/home/buildroot/autobuild/run/instance-1/output-1/build/libcamera-apps-1.1.1/encoder/libav_encoder.cpp:13:10: fatal error: libdrm/drm_fourcc.h: No such file or directory
   13 | #include <libdrm/drm_fourcc.h>
      |          ^~~~~~~~~~~~~~~~~~~~~

Signed-off-by: Marcus Folkesson <marcus.folkesson@gmail.com>
---

Notes:
    v2:
        -Add dependency to ffmpeg

 package/libcamera-apps/Config.in         | 1 +
 package/libcamera-apps/libcamera-apps.mk | 4 +++-
 2 files changed, 4 insertions(+), 1 deletion(-)

diff --git a/package/libcamera-apps/Config.in b/package/libcamera-apps/Config.in
index 711fd6de05..d0cc6a4210 100644
--- a/package/libcamera-apps/Config.in
+++ b/package/libcamera-apps/Config.in
@@ -15,6 +15,7 @@ config BR2_PACKAGE_LIBCAMERA_APPS
 	select BR2_PACKAGE_TIFF
 	select BR2_PACKAGE_XLIB_LIBX11 if BR2_PACKAGE_XORG7 && (BR2_PACKAGE_HAS_LIBEGL || BR2_PACKAGE_HAS_LIBGL)
 	select BR2_PACKAGE_LIBDRM if BR2_PACKAGE_XORG7 && (BR2_PACKAGE_HAS_LIBEGL || BR2_PACKAGE_HAS_LIBGL)
+	select BR2_PACKAGE_FFMPEG if BR2_PACKAGE_LIBDRM
 	select BR2_PACKAGE_LIBEPOXY if BR2_PACKAGE_XORG7 && (BR2_PACKAGE_HAS_LIBEGL || BR2_PACKAGE_HAS_LIBGL)
 	select BR2_PACKAGE_QT5BASE_GUI if BR2_PACKAGE_QT5
 	select BR2_PACKAGE_QT5BASE_WIDGETS if BR2_PACKAGE_QT5
diff --git a/package/libcamera-apps/libcamera-apps.mk b/package/libcamera-apps/libcamera-apps.mk
index 290ee9a026..1464875298 100644
--- a/package/libcamera-apps/libcamera-apps.mk
+++ b/package/libcamera-apps/libcamera-apps.mk
@@ -23,10 +23,12 @@ LIBCAMERA_APPS_CONF_OPTS = \
 	-DENABLE_TFLITE=0
 
 ifeq ($(BR2_PACKAGE_LIBDRM),y)
-LIBCAMERA_APPS_DEPENDENCIES += libdrm
+LIBCAMERA_APPS_DEPENDENCIES += ffmpeg libdrm
 LIBCAMERA_APPS_CONF_OPTS += -DENABLE_DRM=1
+LIBCAMERA_APPS_CONF_OPTS += -DENABLE_LIBAV=1
 else
 LIBCAMERA_APPS_CONF_OPTS += -DENABLE_DRM=0
+LIBCAMERA_APPS_CONF_OPTS += -DENABLE_LIBAV=0
 endif
 
 ifeq ($(BR2_PACKAGE_XORG7),y)
-- 
2.38.1

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [Buildroot] [PATCH v2] package/libcamera-apps: enable LIBAV only if libdrm is present
  2023-02-20  7:18 [Buildroot] [PATCH v2] package/libcamera-apps: enable LIBAV only if libdrm is present Marcus Folkesson
@ 2023-02-20 21:17 ` Thomas Petazzoni via buildroot
  2023-02-20 21:34   ` Thomas Petazzoni via buildroot
  0 siblings, 1 reply; 3+ messages in thread
From: Thomas Petazzoni via buildroot @ 2023-02-20 21:17 UTC (permalink / raw)
  To: Marcus Folkesson; +Cc: Yann E . MORIN, buildroot

Hello Marcus,

On Mon, 20 Feb 2023 08:18:46 +0100
Marcus Folkesson <marcus.folkesson@gmail.com> wrote:

> Since commit 35266e84043f880d7591e52b71a8c5b8d0e4717d, libcamera-apps
> does enable LIBAV by default which depends on libdrm.
> 
> Fixes:
> - http://autobuild.buildroot.net/results/548f2a3b353ce4693fb60d7fb1e06e02af22991c/
> 
> /home/buildroot/autobuild/run/instance-1/output-1/build/libcamera-apps-1.1.1/encoder/libav_encoder.cpp:13:10: fatal error: libdrm/drm_fourcc.h: No such file or directory
>    13 | #include <libdrm/drm_fourcc.h>
>       |          ^~~~~~~~~~~~~~~~~~~~~
> 
> Signed-off-by: Marcus Folkesson <marcus.folkesson@gmail.com>

I need to do some test builds, but I believe this patch is not correct.
What the error message seems to say is that when you build libav
support in libcamera-apps, then libdrm support is needed.

But what you're patch is doing is that it's forcing to have libva as
soon as libdrm is available, which I'm not sure is needed.

> diff --git a/package/libcamera-apps/Config.in b/package/libcamera-apps/Config.in
> index 711fd6de05..d0cc6a4210 100644
> --- a/package/libcamera-apps/Config.in
> +++ b/package/libcamera-apps/Config.in
> @@ -15,6 +15,7 @@ config BR2_PACKAGE_LIBCAMERA_APPS
>  	select BR2_PACKAGE_TIFF
>  	select BR2_PACKAGE_XLIB_LIBX11 if BR2_PACKAGE_XORG7 && (BR2_PACKAGE_HAS_LIBEGL || BR2_PACKAGE_HAS_LIBGL)
>  	select BR2_PACKAGE_LIBDRM if BR2_PACKAGE_XORG7 && (BR2_PACKAGE_HAS_LIBEGL || BR2_PACKAGE_HAS_LIBGL)
> +	select BR2_PACKAGE_FFMPEG if BR2_PACKAGE_LIBDRM
>  	select BR2_PACKAGE_LIBEPOXY if BR2_PACKAGE_XORG7 && (BR2_PACKAGE_HAS_LIBEGL || BR2_PACKAGE_HAS_LIBGL)
>  	select BR2_PACKAGE_QT5BASE_GUI if BR2_PACKAGE_QT5
>  	select BR2_PACKAGE_QT5BASE_WIDGETS if BR2_PACKAGE_QT5
> diff --git a/package/libcamera-apps/libcamera-apps.mk b/package/libcamera-apps/libcamera-apps.mk
> index 290ee9a026..1464875298 100644
> --- a/package/libcamera-apps/libcamera-apps.mk
> +++ b/package/libcamera-apps/libcamera-apps.mk
> @@ -23,10 +23,12 @@ LIBCAMERA_APPS_CONF_OPTS = \
>  	-DENABLE_TFLITE=0
>  
>  ifeq ($(BR2_PACKAGE_LIBDRM),y)
> -LIBCAMERA_APPS_DEPENDENCIES += libdrm
> +LIBCAMERA_APPS_DEPENDENCIES += ffmpeg libdrm
>  LIBCAMERA_APPS_CONF_OPTS += -DENABLE_DRM=1
> +LIBCAMERA_APPS_CONF_OPTS += -DENABLE_LIBAV=1
>  else
>  LIBCAMERA_APPS_CONF_OPTS += -DENABLE_DRM=0
> +LIBCAMERA_APPS_CONF_OPTS += -DENABLE_LIBAV=0
>  endif

Could you instead try something like this:

ifeq ($(BR2_PACKAGE_FFMPEG)$(BR2_PACKAGE_LIBDRM),yy)
LIBCAMERA_APPS_DEPENDENCIES += ffmpeg libdrm
LIBCAMERA_APPS_CONF_OPTS += -DENABLE_LIBAV=1
else
LIBCAMERA_APPS_CONF_OPTS += -DENABLE_LIBAV=0
endif

To test this, you need to test 4 different cases:

 - libcamera-apps enabled, ffmpeg disabled, libdrm disabled
 - libcamera-apps enabled, ffmpeg enabled, libdrm disabled
 - libcamera-apps enabled, ffmpeg disabled, libdrm enabled
 - libcamera-apps enabled, ffmpeg enabled, libdrm enabled

Best regards,

Thomas
-- 
Thomas Petazzoni, co-owner and CEO, Bootlin
Embedded Linux and Kernel engineering and training
https://bootlin.com
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [Buildroot] [PATCH v2] package/libcamera-apps: enable LIBAV only if libdrm is present
  2023-02-20 21:17 ` Thomas Petazzoni via buildroot
@ 2023-02-20 21:34   ` Thomas Petazzoni via buildroot
  0 siblings, 0 replies; 3+ messages in thread
From: Thomas Petazzoni via buildroot @ 2023-02-20 21:34 UTC (permalink / raw)
  To: Marcus Folkesson; +Cc: Yann E . MORIN, buildroot

On Mon, 20 Feb 2023 22:17:21 +0100
Thomas Petazzoni <thomas.petazzoni@bootlin.com> wrote:

> I need to do some test builds, but I believe this patch is not correct.

I confirm the patch is not correct: if you have a configuration with
libcamera-apps and libdrm (but ffmpeg disabled), it builds just fine,
and DRM support in camera-apps is enabled.

In this configuration, your patch forces a dependency on ffmpeg, which
is not correct.

Could you have a look at my previous suggestion instead?

Thanks a lot,

Thomas
-- 
Thomas Petazzoni, co-owner and CEO, Bootlin
Embedded Linux and Kernel engineering and training
https://bootlin.com
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2023-02-21  2:10 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-02-20  7:18 [Buildroot] [PATCH v2] package/libcamera-apps: enable LIBAV only if libdrm is present Marcus Folkesson
2023-02-20 21:17 ` Thomas Petazzoni via buildroot
2023-02-20 21:34   ` Thomas Petazzoni via buildroot

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox