diff mbox series

[2/3] package/libimxvpuapi2: new package

Message ID 20220112094250.27022-2-sebastien.szymanski@armadeus.com
State Changes Requested
Headers show
Series [1/3] package/libimxdmabuffer: new package | expand

Commit Message

Sébastien Szymanski Jan. 12, 2022, 9:42 a.m. UTC
This is version 2 of libimxvpuapi.
The API has been rewritten, and is incompatible with the older one.
Currently, the following platforms are supported (listed with their VPUs):
* i.MX6 (Chips&Media CODA960 codec)
* i.MX8m (Hantro G1/G2 decoder, no encoder)
* i.MX8mm (Hantro G1/G2 decoder, Hantro H1 encoder)

Signed-off-by: Sébastien Szymanski <sebastien.szymanski@armadeus.com>
---
 package/Config.in                        |  1 +
 package/libimxvpuapi2/Config.in          | 48 ++++++++++++++++++++++++
 package/libimxvpuapi2/libimxvpuapi2.hash |  3 ++
 package/libimxvpuapi2/libimxvpuapi2.mk   | 28 ++++++++++++++
 4 files changed, 80 insertions(+)
 create mode 100644 package/libimxvpuapi2/Config.in
 create mode 100644 package/libimxvpuapi2/libimxvpuapi2.hash
 create mode 100644 package/libimxvpuapi2/libimxvpuapi2.mk

Comments

Baruch Siach Jan. 12, 2022, 10:31 a.m. UTC | #1
Hi Sébastien,

On Wed, Jan 12 2022, Sébastien Szymanski wrote:
> This is version 2 of libimxvpuapi.
> The API has been rewritten, and is incompatible with the older one.
> Currently, the following platforms are supported (listed with their VPUs):
> * i.MX6 (Chips&Media CODA960 codec)
> * i.MX8m (Hantro G1/G2 decoder, no encoder)
> * i.MX8mm (Hantro G1/G2 decoder, Hantro H1 encoder)

Is there patch 1/3 in this series? I didn't show up in the list.

Thanks,
baruch

>
> Signed-off-by: Sébastien Szymanski <sebastien.szymanski@armadeus.com>
> ---
>  package/Config.in                        |  1 +
>  package/libimxvpuapi2/Config.in          | 48 ++++++++++++++++++++++++
>  package/libimxvpuapi2/libimxvpuapi2.hash |  3 ++
>  package/libimxvpuapi2/libimxvpuapi2.mk   | 28 ++++++++++++++
>  4 files changed, 80 insertions(+)
>  create mode 100644 package/libimxvpuapi2/Config.in
>  create mode 100644 package/libimxvpuapi2/libimxvpuapi2.hash
>  create mode 100644 package/libimxvpuapi2/libimxvpuapi2.mk
>
> diff --git a/package/Config.in b/package/Config.in
> index 8d844aa11e..009d2006f0 100644
> --- a/package/Config.in
> +++ b/package/Config.in
> @@ -1763,6 +1763,7 @@ menu "Multimedia"
>  	source "package/libebml/Config.in"
>  	source "package/libhdhomerun/Config.in"
>  	source "package/libimxvpuapi/Config.in"
> +	source "package/libimxvpuapi2/Config.in"
>  	source "package/libmatroska/Config.in"
>  	source "package/libmms/Config.in"
>  	source "package/libmpeg2/Config.in"
> diff --git a/package/libimxvpuapi2/Config.in b/package/libimxvpuapi2/Config.in
> new file mode 100644
> index 0000000000..0954718cc0
> --- /dev/null
> +++ b/package/libimxvpuapi2/Config.in
> @@ -0,0 +1,48 @@
> +comment "libimxvpuapi2 needs an i.MX platform with VPU support and libimxdmabuffer"
> +	depends on BR2_arm || BR2_aarch64
> +	depends on (!BR2_PACKAGE_FREESCALE_IMX_HAS_VPU \
> +		&& !BR2_PACKAGE_FREESCALE_IMX_HAS_VPU_HANTRO) \
> +		|| !BR2_PACKAGE_LIBIMXDMABUFFER
> +
> +config BR2_PACKAGE_LIBIMXVPUAPI2
> +	bool "libimxvpuapi2"
> +	depends on BR2_arm || BR2_aarch64 # Only relevant for i.MX
> +	depends on BR2_PACKAGE_FREESCALE_IMX_HAS_VPU || BR2_PACKAGE_FREESCALE_IMX_HAS_VPU_HANTRO
> +	depends on BR2_PACKAGE_LIBIMXDMABUFFER
> +	select BR2_PACKAGE_IMX_VPU if BR2_PACKAGE_FREESCALE_IMX_HAS_VPU
> +	select BR2_PACKAGE_IMX_VPU_HANTRO if BR2_PACKAGE_FREESCALE_IMX_HAS_VPU_HANTRO
> +	help
> +	  This library provides an API for using hardware video codecs
> +	  on i.MX platforms. The API abstracts away platform specific
> +	  details and allows for using the same code with different
> +	  hardware video codecs on different i.MX platforms.
> +
> +	  This is version 2 of libimxvpuapi. The API has been rewritten,
> +	  and is incompatible with the older one.
> +
> +	  https://github.com/Freescale/libimxvpuapi
> +
> +if BR2_PACKAGE_LIBIMXVPUAPI2
> +choice
> +	prompt "Platform"
> +
> +config BR2_PACKAGE_LIBIMXVPUAPI2_IMX6
> +	bool "i.MX6 (Coda)"
> +	depends on BR2_PACKAGE_IMX_VPU
> +
> +config BR2_PACKAGE_LIBIMXVPUAPI2_IMX8M
> +	bool "i.MX8M (Hantro)"
> +	depends on BR2_PACKAGE_IMX_VPU_HANTRO
> +
> +config BR2_PACKAGE_LIBIMXVPUAPI2_IMX8MM
> +	bool "i.MX8MM (Hantro)"
> +	depends on BR2_PACKAGE_IMX_VPU_HANTRO
> +endchoice
> +
> +config BR2_PACKAGE_LIBIMXVPUAPI2_PLATFORM
> +	string
> +	default "imx6" if BR2_PACKAGE_LIBIMXVPUAPI2_IMX6
> +	default "imx8m" if BR2_PACKAGE_LIBIMXVPUAPI2_IMX8M
> +	default "imx8mm" if BR2_PACKAGE_LIBIMXVPUAPI2_IMX8MM
> +
> +endif
> diff --git a/package/libimxvpuapi2/libimxvpuapi2.hash b/package/libimxvpuapi2/libimxvpuapi2.hash
> new file mode 100644
> index 0000000000..d26cf8767b
> --- /dev/null
> +++ b/package/libimxvpuapi2/libimxvpuapi2.hash
> @@ -0,0 +1,3 @@
> +# locally computed hash
> +sha256  611a5176e37e5132d97817e6d6048acf229f67efd2201e3f4aab6f720e7b67d1  libimxvpuapi2-2.2.0.tar.gz
> +sha256  4bb33cc4cd956b56b779b501f18cae46a9e26f8c8500cca86ed758b8bc5e1788  LICENSE
> diff --git a/package/libimxvpuapi2/libimxvpuapi2.mk b/package/libimxvpuapi2/libimxvpuapi2.mk
> new file mode 100644
> index 0000000000..6957171ad3
> --- /dev/null
> +++ b/package/libimxvpuapi2/libimxvpuapi2.mk
> @@ -0,0 +1,28 @@
> +################################################################################
> +#
> +# libimxvpuapi2
> +#
> +################################################################################
> +
> +LIBIMXVPUAPI2_VERSION = 2.2.0
> +LIBIMXVPUAPI2_SITE = $(call github,Freescale,libimxvpuapi,$(LIBIMXVPUAPI2_VERSION))
> +LIBIMXVPUAPI2_LICENSE = LGPL-2.1+
> +LIBIMXVPUAPI2_LICENSE_FILES = LICENSE
> +LIBIMXVPUAPI2_DEPENDENCIES = host-pkgconf host-python3 libimxdmabuffer
> +LIBIMXVPUAPI2_INSTALL_STAGING = YES
> +LIBIMXVPUAPI2_NEEDS_EXTERNAL_WAF = NO
> +
> +ifeq ($(BR2_PACKAGE_LIBIMXVPUAPI2_IMX6),y)
> +LIBIMXVPUAPI2_DEPENDENCIES += imx-vpu
> +endif
> +
> +ifeq ($(BR2_PACKAGE_LIBIMXVPUAPI2_IMX8M)$(BR2_PACKAGE_LIBIMXVPUAPI2_IMX8MM),y)
> +LIBIMXVPUAPI2_DEPENDENCIES += imx-vpu-hantro
> +endif
> +
> +LIBIMXVPUAPI2_CONF_OPTS += \
> +	--imx-headers=$(STAGING_DIR)/usr/include/ \
> +	--sysroot-path=$(STAGING_DIR) \
> +	--imx-platform=$(BR2_PACKAGE_LIBIMXVPUAPI2_PLATFORM)
> +
> +$(eval $(waf-package))
Sébastien Szymanski Jan. 12, 2022, 12:53 p.m. UTC | #2
Hi Baruch,

On 1/12/22 11:31, Baruch Siach wrote:
> Hi Sébastien,
> 
> On Wed, Jan 12 2022, Sébastien Szymanski wrote:
>> This is version 2 of libimxvpuapi.
>> The API has been rewritten, and is incompatible with the older one.
>> Currently, the following platforms are supported (listed with their VPUs):
>> * i.MX6 (Chips&Media CODA960 codec)
>> * i.MX8m (Hantro G1/G2 decoder, no encoder)
>> * i.MX8mm (Hantro G1/G2 decoder, Hantro H1 encoder)
> 
> Is there patch 1/3 in this series? I didn't show up in the list.

Yes. Looks like it took more time to reach the mailing list.

Regards,

> 
> Thanks,
> baruch
> 
>>
>> Signed-off-by: Sébastien Szymanski <sebastien.szymanski@armadeus.com>
>> ---
>>   package/Config.in                        |  1 +
>>   package/libimxvpuapi2/Config.in          | 48 ++++++++++++++++++++++++
>>   package/libimxvpuapi2/libimxvpuapi2.hash |  3 ++
>>   package/libimxvpuapi2/libimxvpuapi2.mk   | 28 ++++++++++++++
>>   4 files changed, 80 insertions(+)
>>   create mode 100644 package/libimxvpuapi2/Config.in
>>   create mode 100644 package/libimxvpuapi2/libimxvpuapi2.hash
>>   create mode 100644 package/libimxvpuapi2/libimxvpuapi2.mk
>>
>> diff --git a/package/Config.in b/package/Config.in
>> index 8d844aa11e..009d2006f0 100644
>> --- a/package/Config.in
>> +++ b/package/Config.in
>> @@ -1763,6 +1763,7 @@ menu "Multimedia"
>>   	source "package/libebml/Config.in"
>>   	source "package/libhdhomerun/Config.in"
>>   	source "package/libimxvpuapi/Config.in"
>> +	source "package/libimxvpuapi2/Config.in"
>>   	source "package/libmatroska/Config.in"
>>   	source "package/libmms/Config.in"
>>   	source "package/libmpeg2/Config.in"
>> diff --git a/package/libimxvpuapi2/Config.in b/package/libimxvpuapi2/Config.in
>> new file mode 100644
>> index 0000000000..0954718cc0
>> --- /dev/null
>> +++ b/package/libimxvpuapi2/Config.in
>> @@ -0,0 +1,48 @@
>> +comment "libimxvpuapi2 needs an i.MX platform with VPU support and libimxdmabuffer"
>> +	depends on BR2_arm || BR2_aarch64
>> +	depends on (!BR2_PACKAGE_FREESCALE_IMX_HAS_VPU \
>> +		&& !BR2_PACKAGE_FREESCALE_IMX_HAS_VPU_HANTRO) \
>> +		|| !BR2_PACKAGE_LIBIMXDMABUFFER
>> +
>> +config BR2_PACKAGE_LIBIMXVPUAPI2
>> +	bool "libimxvpuapi2"
>> +	depends on BR2_arm || BR2_aarch64 # Only relevant for i.MX
>> +	depends on BR2_PACKAGE_FREESCALE_IMX_HAS_VPU || BR2_PACKAGE_FREESCALE_IMX_HAS_VPU_HANTRO
>> +	depends on BR2_PACKAGE_LIBIMXDMABUFFER
>> +	select BR2_PACKAGE_IMX_VPU if BR2_PACKAGE_FREESCALE_IMX_HAS_VPU
>> +	select BR2_PACKAGE_IMX_VPU_HANTRO if BR2_PACKAGE_FREESCALE_IMX_HAS_VPU_HANTRO
>> +	help
>> +	  This library provides an API for using hardware video codecs
>> +	  on i.MX platforms. The API abstracts away platform specific
>> +	  details and allows for using the same code with different
>> +	  hardware video codecs on different i.MX platforms.
>> +
>> +	  This is version 2 of libimxvpuapi. The API has been rewritten,
>> +	  and is incompatible with the older one.
>> +
>> +	  https://github.com/Freescale/libimxvpuapi
>> +
>> +if BR2_PACKAGE_LIBIMXVPUAPI2
>> +choice
>> +	prompt "Platform"
>> +
>> +config BR2_PACKAGE_LIBIMXVPUAPI2_IMX6
>> +	bool "i.MX6 (Coda)"
>> +	depends on BR2_PACKAGE_IMX_VPU
>> +
>> +config BR2_PACKAGE_LIBIMXVPUAPI2_IMX8M
>> +	bool "i.MX8M (Hantro)"
>> +	depends on BR2_PACKAGE_IMX_VPU_HANTRO
>> +
>> +config BR2_PACKAGE_LIBIMXVPUAPI2_IMX8MM
>> +	bool "i.MX8MM (Hantro)"
>> +	depends on BR2_PACKAGE_IMX_VPU_HANTRO
>> +endchoice
>> +
>> +config BR2_PACKAGE_LIBIMXVPUAPI2_PLATFORM
>> +	string
>> +	default "imx6" if BR2_PACKAGE_LIBIMXVPUAPI2_IMX6
>> +	default "imx8m" if BR2_PACKAGE_LIBIMXVPUAPI2_IMX8M
>> +	default "imx8mm" if BR2_PACKAGE_LIBIMXVPUAPI2_IMX8MM
>> +
>> +endif
>> diff --git a/package/libimxvpuapi2/libimxvpuapi2.hash b/package/libimxvpuapi2/libimxvpuapi2.hash
>> new file mode 100644
>> index 0000000000..d26cf8767b
>> --- /dev/null
>> +++ b/package/libimxvpuapi2/libimxvpuapi2.hash
>> @@ -0,0 +1,3 @@
>> +# locally computed hash
>> +sha256  611a5176e37e5132d97817e6d6048acf229f67efd2201e3f4aab6f720e7b67d1  libimxvpuapi2-2.2.0.tar.gz
>> +sha256  4bb33cc4cd956b56b779b501f18cae46a9e26f8c8500cca86ed758b8bc5e1788  LICENSE
>> diff --git a/package/libimxvpuapi2/libimxvpuapi2.mk b/package/libimxvpuapi2/libimxvpuapi2.mk
>> new file mode 100644
>> index 0000000000..6957171ad3
>> --- /dev/null
>> +++ b/package/libimxvpuapi2/libimxvpuapi2.mk
>> @@ -0,0 +1,28 @@
>> +################################################################################
>> +#
>> +# libimxvpuapi2
>> +#
>> +################################################################################
>> +
>> +LIBIMXVPUAPI2_VERSION = 2.2.0
>> +LIBIMXVPUAPI2_SITE = $(call github,Freescale,libimxvpuapi,$(LIBIMXVPUAPI2_VERSION))
>> +LIBIMXVPUAPI2_LICENSE = LGPL-2.1+
>> +LIBIMXVPUAPI2_LICENSE_FILES = LICENSE
>> +LIBIMXVPUAPI2_DEPENDENCIES = host-pkgconf host-python3 libimxdmabuffer
>> +LIBIMXVPUAPI2_INSTALL_STAGING = YES
>> +LIBIMXVPUAPI2_NEEDS_EXTERNAL_WAF = NO
>> +
>> +ifeq ($(BR2_PACKAGE_LIBIMXVPUAPI2_IMX6),y)
>> +LIBIMXVPUAPI2_DEPENDENCIES += imx-vpu
>> +endif
>> +
>> +ifeq ($(BR2_PACKAGE_LIBIMXVPUAPI2_IMX8M)$(BR2_PACKAGE_LIBIMXVPUAPI2_IMX8MM),y)
>> +LIBIMXVPUAPI2_DEPENDENCIES += imx-vpu-hantro
>> +endif
>> +
>> +LIBIMXVPUAPI2_CONF_OPTS += \
>> +	--imx-headers=$(STAGING_DIR)/usr/include/ \
>> +	--sysroot-path=$(STAGING_DIR) \
>> +	--imx-platform=$(BR2_PACKAGE_LIBIMXVPUAPI2_PLATFORM)
>> +
>> +$(eval $(waf-package))
> 
>
Arnout Vandecappelle July 28, 2022, 8:36 a.m. UTC | #3
On 12/01/2022 10:42, Sébastien Szymanski wrote:
> This is version 2 of libimxvpuapi.
> The API has been rewritten, and is incompatible with the older one.
> Currently, the following platforms are supported (listed with their VPUs):
> * i.MX6 (Chips&Media CODA960 codec)
> * i.MX8m (Hantro G1/G2 decoder, no encoder)
> * i.MX8mm (Hantro G1/G2 decoder, Hantro H1 encoder)
> 
> Signed-off-by: Sébastien Szymanski <sebastien.szymanski@armadeus.com>
> ---
>   package/Config.in                        |  1 +
>   package/libimxvpuapi2/Config.in          | 48 ++++++++++++++++++++++++
>   package/libimxvpuapi2/libimxvpuapi2.hash |  3 ++
>   package/libimxvpuapi2/libimxvpuapi2.mk   | 28 ++++++++++++++
>   4 files changed, 80 insertions(+)
>   create mode 100644 package/libimxvpuapi2/Config.in
>   create mode 100644 package/libimxvpuapi2/libimxvpuapi2.hash
>   create mode 100644 package/libimxvpuapi2/libimxvpuapi2.mk
> 
> diff --git a/package/Config.in b/package/Config.in
> index 8d844aa11e..009d2006f0 100644
> --- a/package/Config.in
> +++ b/package/Config.in
> @@ -1763,6 +1763,7 @@ menu "Multimedia"
>   	source "package/libebml/Config.in"
>   	source "package/libhdhomerun/Config.in"
>   	source "package/libimxvpuapi/Config.in"
> +	source "package/libimxvpuapi2/Config.in"

  This one should also move to package/freescale-imx. libimxvpuapi really should 
go there as well.

>   	source "package/libmatroska/Config.in"
>   	source "package/libmms/Config.in"
>   	source "package/libmpeg2/Config.in"
> diff --git a/package/libimxvpuapi2/Config.in b/package/libimxvpuapi2/Config.in
> new file mode 100644
> index 0000000000..0954718cc0
> --- /dev/null
> +++ b/package/libimxvpuapi2/Config.in
> @@ -0,0 +1,48 @@
> +comment "libimxvpuapi2 needs an i.MX platform with VPU support and libimxdmabuffer"
> +	depends on BR2_arm || BR2_aarch64
> +	depends on (!BR2_PACKAGE_FREESCALE_IMX_HAS_VPU \
> +		&& !BR2_PACKAGE_FREESCALE_IMX_HAS_VPU_HANTRO) \

  The VPU presence is considered an architecture dependency, so there's no need 
to show a comment for them.

> +		|| !BR2_PACKAGE_LIBIMXDMABUFFER

  This should be select (see below) so no comment either. You do need a comment 
for the linux transitive dependency however.

> +
> +config BR2_PACKAGE_LIBIMXVPUAPI2
> +	bool "libimxvpuapi2"
> +	depends on BR2_arm || BR2_aarch64 # Only relevant for i.MX
> +	depends on BR2_PACKAGE_FREESCALE_IMX_HAS_VPU || BR2_PACKAGE_FREESCALE_IMX_HAS_VPU_HANTRO
> +	depends on BR2_PACKAGE_LIBIMXDMABUFFER

  This should be select, not depends on.

> +	select BR2_PACKAGE_IMX_VPU if BR2_PACKAGE_FREESCALE_IMX_HAS_VPU
> +	select BR2_PACKAGE_IMX_VPU_HANTRO if BR2_PACKAGE_FREESCALE_IMX_HAS_VPU_HANTRO
> +	help
> +	  This library provides an API for using hardware video codecs
> +	  on i.MX platforms. The API abstracts away platform specific
> +	  details and allows for using the same code with different
> +	  hardware video codecs on different i.MX platforms.
> +
> +	  This is version 2 of libimxvpuapi. The API has been rewritten,
> +	  and is incompatible with the older one.

  We heard from Gary Bisson that indeed we need both gst1-imx and gst1-imx2 
because the latter no longer supports some elements for imx6. Thus, we also need 
both libimxvpuapi and libimxvpuapi2. Please add that to the commit log.

> +
> +	  https://github.com/Freescale/libimxvpuapi
> +
> +if BR2_PACKAGE_LIBIMXVPUAPI2
> +choice
> +	prompt "Platform"
> +
> +config BR2_PACKAGE_LIBIMXVPUAPI2_IMX6
> +	bool "i.MX6 (Coda)"
> +	depends on BR2_PACKAGE_IMX_VPU
> +
> +config BR2_PACKAGE_LIBIMXVPUAPI2_IMX8M
> +	bool "i.MX8M (Hantro)"
> +	depends on BR2_PACKAGE_IMX_VPU_HANTRO
> +
> +config BR2_PACKAGE_LIBIMXVPUAPI2_IMX8MM
> +	bool "i.MX8MM (Hantro)"
> +	depends on BR2_PACKAGE_IMX_VPU_HANTRO
> +endchoice

  This choice should be removed, instead using the symbols from 
package/freescale-imx/Config.in.

> +
> +config BR2_PACKAGE_LIBIMXVPUAPI2_PLATFORM
> +	string
> +	default "imx6" if BR2_PACKAGE_LIBIMXVPUAPI2_IMX6
> +	default "imx8m" if BR2_PACKAGE_LIBIMXVPUAPI2_IMX8M
> +	default "imx8mm" if BR2_PACKAGE_LIBIMXVPUAPI2_IMX8MM
> +
> +endif
> diff --git a/package/libimxvpuapi2/libimxvpuapi2.hash b/package/libimxvpuapi2/libimxvpuapi2.hash
> new file mode 100644
> index 0000000000..d26cf8767b
> --- /dev/null
> +++ b/package/libimxvpuapi2/libimxvpuapi2.hash
> @@ -0,0 +1,3 @@
> +# locally computed hash
> +sha256  611a5176e37e5132d97817e6d6048acf229f67efd2201e3f4aab6f720e7b67d1  libimxvpuapi2-2.2.0.tar.gz
> +sha256  4bb33cc4cd956b56b779b501f18cae46a9e26f8c8500cca86ed758b8bc5e1788  LICENSE
> diff --git a/package/libimxvpuapi2/libimxvpuapi2.mk b/package/libimxvpuapi2/libimxvpuapi2.mk
> new file mode 100644
> index 0000000000..6957171ad3
> --- /dev/null
> +++ b/package/libimxvpuapi2/libimxvpuapi2.mk
> @@ -0,0 +1,28 @@
> +################################################################################
> +#
> +# libimxvpuapi2
> +#
> +################################################################################
> +
> +LIBIMXVPUAPI2_VERSION = 2.2.0
> +LIBIMXVPUAPI2_SITE = $(call github,Freescale,libimxvpuapi,$(LIBIMXVPUAPI2_VERSION))
> +LIBIMXVPUAPI2_LICENSE = LGPL-2.1+
> +LIBIMXVPUAPI2_LICENSE_FILES = LICENSE
> +LIBIMXVPUAPI2_DEPENDENCIES = host-pkgconf host-python3 libimxdmabuffer
> +LIBIMXVPUAPI2_INSTALL_STAGING = YES
> +LIBIMXVPUAPI2_NEEDS_EXTERNAL_WAF = NO

  Again, this is the default.

> +
> +ifeq ($(BR2_PACKAGE_LIBIMXVPUAPI2_IMX6),y)
> +LIBIMXVPUAPI2_DEPENDENCIES += imx-vpu
> +endif
> +
> +ifeq ($(BR2_PACKAGE_LIBIMXVPUAPI2_IMX8M)$(BR2_PACKAGE_LIBIMXVPUAPI2_IMX8MM),y)
> +LIBIMXVPUAPI2_DEPENDENCIES += imx-vpu-hantro
> +endif
> +
> +LIBIMXVPUAPI2_CONF_OPTS += \
> +	--imx-headers=$(STAGING_DIR)/usr/include/ \

  Again, you need to point into the kernel build dir.

  Regards,
  Arnout

> +	--sysroot-path=$(STAGING_DIR) \
> +	--imx-platform=$(BR2_PACKAGE_LIBIMXVPUAPI2_PLATFORM)
> +
> +$(eval $(waf-package))
diff mbox series

Patch

diff --git a/package/Config.in b/package/Config.in
index 8d844aa11e..009d2006f0 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -1763,6 +1763,7 @@  menu "Multimedia"
 	source "package/libebml/Config.in"
 	source "package/libhdhomerun/Config.in"
 	source "package/libimxvpuapi/Config.in"
+	source "package/libimxvpuapi2/Config.in"
 	source "package/libmatroska/Config.in"
 	source "package/libmms/Config.in"
 	source "package/libmpeg2/Config.in"
diff --git a/package/libimxvpuapi2/Config.in b/package/libimxvpuapi2/Config.in
new file mode 100644
index 0000000000..0954718cc0
--- /dev/null
+++ b/package/libimxvpuapi2/Config.in
@@ -0,0 +1,48 @@ 
+comment "libimxvpuapi2 needs an i.MX platform with VPU support and libimxdmabuffer"
+	depends on BR2_arm || BR2_aarch64
+	depends on (!BR2_PACKAGE_FREESCALE_IMX_HAS_VPU \
+		&& !BR2_PACKAGE_FREESCALE_IMX_HAS_VPU_HANTRO) \
+		|| !BR2_PACKAGE_LIBIMXDMABUFFER
+
+config BR2_PACKAGE_LIBIMXVPUAPI2
+	bool "libimxvpuapi2"
+	depends on BR2_arm || BR2_aarch64 # Only relevant for i.MX
+	depends on BR2_PACKAGE_FREESCALE_IMX_HAS_VPU || BR2_PACKAGE_FREESCALE_IMX_HAS_VPU_HANTRO
+	depends on BR2_PACKAGE_LIBIMXDMABUFFER
+	select BR2_PACKAGE_IMX_VPU if BR2_PACKAGE_FREESCALE_IMX_HAS_VPU
+	select BR2_PACKAGE_IMX_VPU_HANTRO if BR2_PACKAGE_FREESCALE_IMX_HAS_VPU_HANTRO
+	help
+	  This library provides an API for using hardware video codecs
+	  on i.MX platforms. The API abstracts away platform specific
+	  details and allows for using the same code with different
+	  hardware video codecs on different i.MX platforms.
+
+	  This is version 2 of libimxvpuapi. The API has been rewritten,
+	  and is incompatible with the older one.
+
+	  https://github.com/Freescale/libimxvpuapi
+
+if BR2_PACKAGE_LIBIMXVPUAPI2
+choice
+	prompt "Platform"
+
+config BR2_PACKAGE_LIBIMXVPUAPI2_IMX6
+	bool "i.MX6 (Coda)"
+	depends on BR2_PACKAGE_IMX_VPU
+
+config BR2_PACKAGE_LIBIMXVPUAPI2_IMX8M
+	bool "i.MX8M (Hantro)"
+	depends on BR2_PACKAGE_IMX_VPU_HANTRO
+
+config BR2_PACKAGE_LIBIMXVPUAPI2_IMX8MM
+	bool "i.MX8MM (Hantro)"
+	depends on BR2_PACKAGE_IMX_VPU_HANTRO
+endchoice
+
+config BR2_PACKAGE_LIBIMXVPUAPI2_PLATFORM
+	string
+	default "imx6" if BR2_PACKAGE_LIBIMXVPUAPI2_IMX6
+	default "imx8m" if BR2_PACKAGE_LIBIMXVPUAPI2_IMX8M
+	default "imx8mm" if BR2_PACKAGE_LIBIMXVPUAPI2_IMX8MM
+
+endif
diff --git a/package/libimxvpuapi2/libimxvpuapi2.hash b/package/libimxvpuapi2/libimxvpuapi2.hash
new file mode 100644
index 0000000000..d26cf8767b
--- /dev/null
+++ b/package/libimxvpuapi2/libimxvpuapi2.hash
@@ -0,0 +1,3 @@ 
+# locally computed hash
+sha256  611a5176e37e5132d97817e6d6048acf229f67efd2201e3f4aab6f720e7b67d1  libimxvpuapi2-2.2.0.tar.gz
+sha256  4bb33cc4cd956b56b779b501f18cae46a9e26f8c8500cca86ed758b8bc5e1788  LICENSE
diff --git a/package/libimxvpuapi2/libimxvpuapi2.mk b/package/libimxvpuapi2/libimxvpuapi2.mk
new file mode 100644
index 0000000000..6957171ad3
--- /dev/null
+++ b/package/libimxvpuapi2/libimxvpuapi2.mk
@@ -0,0 +1,28 @@ 
+################################################################################
+#
+# libimxvpuapi2
+#
+################################################################################
+
+LIBIMXVPUAPI2_VERSION = 2.2.0
+LIBIMXVPUAPI2_SITE = $(call github,Freescale,libimxvpuapi,$(LIBIMXVPUAPI2_VERSION))
+LIBIMXVPUAPI2_LICENSE = LGPL-2.1+
+LIBIMXVPUAPI2_LICENSE_FILES = LICENSE
+LIBIMXVPUAPI2_DEPENDENCIES = host-pkgconf host-python3 libimxdmabuffer
+LIBIMXVPUAPI2_INSTALL_STAGING = YES
+LIBIMXVPUAPI2_NEEDS_EXTERNAL_WAF = NO
+
+ifeq ($(BR2_PACKAGE_LIBIMXVPUAPI2_IMX6),y)
+LIBIMXVPUAPI2_DEPENDENCIES += imx-vpu
+endif
+
+ifeq ($(BR2_PACKAGE_LIBIMXVPUAPI2_IMX8M)$(BR2_PACKAGE_LIBIMXVPUAPI2_IMX8MM),y)
+LIBIMXVPUAPI2_DEPENDENCIES += imx-vpu-hantro
+endif
+
+LIBIMXVPUAPI2_CONF_OPTS += \
+	--imx-headers=$(STAGING_DIR)/usr/include/ \
+	--sysroot-path=$(STAGING_DIR) \
+	--imx-platform=$(BR2_PACKAGE_LIBIMXVPUAPI2_PLATFORM)
+
+$(eval $(waf-package))