Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Thomas Petazzoni via buildroot <buildroot@buildroot.org>
To: Marcus Folkesson <marcus.folkesson@gmail.com>
Cc: "Yann E . MORIN" <yann.morin.1998@free.fr>, buildroot@buildroot.org
Subject: Re: [Buildroot] [PATCH v2] package/libcamera-apps: enable LIBAV only if libdrm is present
Date: Mon, 20 Feb 2023 22:17:21 +0100	[thread overview]
Message-ID: <20230220221721.3ebb047b@windsurf> (raw)
In-Reply-To: <20230220071846.2334907-1-marcus.folkesson@gmail.com>

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

  reply	other threads:[~2023-02-21  2:09 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
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 [this message]
2023-02-20 21:34   ` Thomas Petazzoni via buildroot

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20230220221721.3ebb047b@windsurf \
    --to=buildroot@buildroot.org \
    --cc=marcus.folkesson@gmail.com \
    --cc=thomas.petazzoni@bootlin.com \
    --cc=yann.morin.1998@free.fr \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox