Date   

Re: Same patch in two different layers

Otavio Salvador
 

Please remove meta-imx ;-)

Em qua., 31 de mai. de 2023 às 14:38, Mauro Ziliani
<mauro@...> escreveu:


Hi

I'm working on a Maaxboard and Kirkstone.

Building pulseaudio-15.0 bitbake found the patch in 2 layers

The patch is
0001-Fix-pulseaudio-mutex-issue-when-do-pause-in-gstreame.patch and it
is in

./meta-freescale/recipes-multimedia/pulseaudio/pulseaudio/imx-nxp-bsp/

and in

./meta-imx/meta-bsp/recipes-multimedia/pulseaudio/pulseaudio/


Bitbake give me error because the patch is already applied.


How can remove one of two patch by bbappend?


Best regards,

M



--
Otavio Salvador O.S. Systems
http://www.ossystems.com.br http://code.ossystems.com.br
Mobile: +55 (53) 9 9981-7854 Mobile: +1 (347) 903-9750


Same patch in two different layers

Mauro Ziliani
 

Hi

I'm working on a Maaxboard and Kirkstone.

Building pulseaudio-15.0  bitbake found the patch in 2 layers

The patch is 0001-Fix-pulseaudio-mutex-issue-when-do-pause-in-gstreame.patch and it is in

./meta-freescale/recipes-multimedia/pulseaudio/pulseaudio/imx-nxp-bsp/

and in

./meta-imx/meta-bsp/recipes-multimedia/pulseaudio/pulseaudio/


Bitbake give me error because the patch is already applied.


How can remove one of two patch by bbappend?


Best regards,

  M


Re: Understanding pads setup

Fabio Estevam
 

Hi Mauro,

On Tue, Mar 28, 2023 at 6:51 AM Mauro Ziliani <mauro@...> wrote:

Hi Fabio.

In the schematic of the board, the pin J18 is connected to lvds transceiver as DI1_DISP_CLK.
DI1_DISP_CLK is also used on the imx51-evk.

I don't understand why you want to include DI1_DISP_CLK into imx51-pinfunc.h.

The i.MX51 Reference Manual states that the DI1_DISP_CLK has no mux
option. It can only work as DI1_DISP_CLK functionality, so you don't
need to include it in imx51-pinfunc.h.


Re: Understanding pads setup

Mauro Ziliani
 

Hi Fabio.

In the schematic of the board, the pin J18 is connected to lvds transceiver as DI1_DISP_CLK.

I compared the size of the chip and I see there 2 versions: 13x13 mm where J18 is DI1_PIN2, while in the 19x19 J18 is DI1_DISP_CLK.




Il 14/03/23 01:39, Fabio Estevam ha scritto:
Hi Mauro,

On Sun, Mar 12, 2023 at 3:50 PM Mauro Ziliani <mauro@...> wrote:
Hi all

I'm working on and mx51evk babbage board.

I have a lvds display connected ti disp1 pads.

I need to define DI1_DISP_CLK for pad J18 of the BGA (the chip is 19x19mm)
Why? There is no mux option for the DI1_DISP_CLK pin.




[PATCH V2 1/1] gstreamer1.0-plugins-base: set default videosink for IMXQM/IMXQXP

Ming Liu <liu.ming50@...>
 

From: Ming Liu <liu.ming50@...>

The default 'autovideosink' gives very bad performance when playing
H264/H265 videos on IMXQM/IMXQXP machines. Let's choose
'imxvideoconvert_g2d ! autovideosink' as the default videosink, so the
end users dont need manually pass 'imxvideoconvert_g2d' pipeline to
gst-play-1.0.

Signed-off-by: Ming Liu <liu.ming50@...>
---
...e-default-videosink-autosink-options.patch | 106 ++++++++++++++++++
.../gstreamer1.0-plugins-base_1.20.3.imx.bb | 14 ++-
2 files changed, 118 insertions(+), 2 deletions(-)
create mode 100644 recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-Introduce-default-videosink-autosink-options.patch

diff --git a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-Introduce-default-videosink-autosink-options.patch b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-Introduce-default-videosink-autosink-options.patch
new file mode 100644
index 00000000..9465899e
--- /dev/null
+++ b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-Introduce-default-videosink-autosink-options.patch
@@ -0,0 +1,106 @@
+From c929a3fd4a10a2d5f57933b40447aa76ce0b6c5a Mon Sep 17 00:00:00 2001
+From: Ming Liu <liu.ming50@...>
+Date: Sun, 5 Mar 2023 13:52:05 +0100
+Subject: [PATCH] Introduce default videosink/autosink options
+
+So the end users can choose the default videosink/autosink at build
+time. It now supports pipeline as default videosink/autosink.
+
+Upstream-Status: Submitted [https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1299]
+
+Signed-off-by: Ming Liu <liu.ming50@...>
+---
+ gst/playback/gstplaysink.c | 10 ++++++++--
+ meson.build | 5 ++---
+ meson_options.txt | 5 +++++
+ tools/gst-play.c | 7 +++++++
+ 4 files changed, 22 insertions(+), 5 deletions(-)
+
+diff --git a/gst/playback/gstplaysink.c b/gst/playback/gstplaysink.c
+index dc8bfdacd..1abb4ac7e 100755
+--- a/gst/playback/gstplaysink.c
++++ b/gst/playback/gstplaysink.c
+@@ -1770,7 +1770,10 @@ gen_video_chain (GstPlaySink * playsink, gboolean raw, gboolean async)
+ /* if default sink from config.h is different then try it too */
+ if (strcmp (DEFAULT_VIDEOSINK, "autovideosink")) {
+ GST_DEBUG_OBJECT (playsink, "trying " DEFAULT_VIDEOSINK);
+- elem = gst_element_factory_make (DEFAULT_VIDEOSINK, "videosink");
++ if (strchr (DEFAULT_VIDEOSINK, ' ') != NULL)
++ elem = gst_parse_bin_from_description (DEFAULT_VIDEOSINK, TRUE, NULL);
++ else
++ elem = gst_element_factory_make (DEFAULT_VIDEOSINK, "videosink");
+ chain->sink = try_element (playsink, elem, TRUE);
+ }
+ }
+@@ -2713,7 +2716,10 @@ gen_audio_chain (GstPlaySink * playsink, gboolean raw)
+ /* if default sink from config.h is different then try it too */
+ if (strcmp (DEFAULT_AUDIOSINK, "autoaudiosink")) {
+ GST_DEBUG_OBJECT (playsink, "trying " DEFAULT_AUDIOSINK);
+- elem = gst_element_factory_make (DEFAULT_AUDIOSINK, "audiosink");
++ if (strchr (DEFAULT_AUDIOSINK, ' ') != NULL)
++ elem = gst_parse_bin_from_description (DEFAULT_AUDIOSINK, TRUE, NULL);
++ else
++ elem = gst_element_factory_make (DEFAULT_AUDIOSINK, "audiosink");
+ chain->sink = try_element (playsink, elem, TRUE);
+ }
+ }
+diff --git a/meson.build b/meson.build
+index 5ad1ab3ad..a6280eccd 100644
+--- a/meson.build
++++ b/meson.build
+@@ -280,9 +280,8 @@ endif
+ core_conf.set_quoted('GST_PACKAGE_NAME', gst_package_name)
+ core_conf.set_quoted('GST_PACKAGE_ORIGIN', get_option('package-origin'))
+
+-# FIXME: These should be configure options
+-core_conf.set_quoted('DEFAULT_VIDEOSINK', 'autovideosink')
+-core_conf.set_quoted('DEFAULT_AUDIOSINK', 'autoaudiosink')
++core_conf.set_quoted('DEFAULT_VIDEOSINK', get_option('defaultvideosink'))
++core_conf.set_quoted('DEFAULT_AUDIOSINK', get_option('defaultaudiosink'))
+
+ # Set whether the audioresampling method should be detected at runtime
+ core_conf.set('AUDIORESAMPLE_FORMAT_' + get_option('audioresample_format').to_upper(), true)
+diff --git a/meson_options.txt b/meson_options.txt
+index 7010b9162..49bd1a728 100644
+--- a/meson_options.txt
++++ b/meson_options.txt
+@@ -21,6 +21,11 @@ option('opengl_module_name', type : 'string', value : '',
+ option('gles2_module_name', type : 'string', value : '',
+ description : 'The file to pass to g_module_open to open the libGLESv2 library (default: libGLESv2)')
+
++option('defaultaudiosink', type : 'string', value : 'autoaudiosink',
++ description : 'The default audiosink')
++option('defaultvideosink', type : 'string', value : 'autovideosink',
++ description : 'The default videosink')
++
+ # Feature option for opengl plugin and integration library
+ option('gl', type : 'feature', value : 'auto', description : 'OpenGL integration library and OpenGL plugin')
+ option('gl-graphene', type : 'feature', value : 'auto', description : 'Use Graphene in OpenGL plugin')
+diff --git a/tools/gst-play.c b/tools/gst-play.c
+index 0e858d282..4c1e92e42 100644
+--- a/tools/gst-play.c
++++ b/tools/gst-play.c
+@@ -205,6 +205,7 @@ play_new (gchar ** uris, const gchar * audio_sink, const gchar * video_sink,
+ else
+ g_warning ("Couldn't create specified audio sink '%s'", audio_sink);
+ }
++
+ if (video_sink != NULL) {
+ if (strchr (video_sink, ' ') != NULL)
+ sink = gst_parse_bin_from_description (video_sink, TRUE, NULL);
+@@ -1674,6 +1675,12 @@ main (int argc, char **argv)
+ playlist_file = NULL;
+ }
+
++ if (audio_sink == NULL)
++ audio_sink = g_strdup(DEFAULT_AUDIOSINK);
++
++ if (video_sink == NULL)
++ video_sink = g_strdup(DEFAULT_VIDEOSINK);
++
+ if (playlist->len == 0 && (filenames == NULL || *filenames == NULL)) {
+ gst_printerr (_("Usage: %s FILE1|URI1 [FILE2|URI2] [FILE3|URI3] ..."),
+ "gst-play-" GST_API_VERSION);
+--
+2.25.1
+
diff --git a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.20.3.imx.bb b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.20.3.imx.bb
index 0ef9daea..b3da7438 100644
--- a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.20.3.imx.bb
+++ b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.20.3.imx.bb
@@ -121,7 +121,9 @@ SRC_URI:remove = " \
file://0003-viv-fb-Make-sure-config.h-is-included.patch \
file://0002-ssaparse-enhance-SSA-text-lines-parsing.patch"
SRC_URI:prepend = "${GST1.0-PLUGINS-BASE_SRC};branch=${SRCBRANCH} "
-SRC_URI += "file://0001-gstallocatorphymem.c-Typecast-result-of-gst_phymem_g.patch"
+SRC_URI:append = " \
+ file://0001-gstallocatorphymem.c-Typecast-result-of-gst_phymem_g.patch \
+ file://0001-Introduce-default-videosink-autosink-options.patch"
GST1.0-PLUGINS-BASE_SRC ?= "gitsm://github.com/nxp-imx/gst-plugins-base.git;protocol=https"
SRCBRANCH = "MM_04.07.02_2210_L5.15.y"
SRCREV = "cbf542ce3e0bad1009d5ecf72707e870c375c3f0"
@@ -130,6 +132,9 @@ S = "${WORKDIR}/git"

inherit use-imx-headers

+DEFAULT_AUDIOSINK ?= "autoaudiosink"
+DEFAULT_VIDEOSINK ?= "autovideosink"
+
PACKAGECONFIG_GL:imxgpu2d = \
"${@bb.utils.contains('DISTRO_FEATURES', 'opengl x11', 'opengl viv-fb', '', d)}"
PACKAGECONFIG_GL:imxgpu3d = \
@@ -144,7 +149,12 @@ PACKAGECONFIG:append:imxgpu2d = " g2d"
PACKAGECONFIG[g2d] = ",,virtual/libg2d"
PACKAGECONFIG[viv-fb] = ",,virtual/libgles2"

-EXTRA_OEMESON += "-Dc_args="${CFLAGS} -I${STAGING_INCDIR_IMX}""
+DEFAULT_AUDIOSINK ?= "autoaudiosink"
+DEFAULT_VIDEOSINK ?= "autovideosink"
+DEFAULT_VIDEOSINK:mx8qm-nxp-bsp = "imxvideoconvert_g2d ! autovideosink"
+DEFAULT_VIDEOSINK:mx8qxp-nxp-bsp = "imxvideoconvert_g2d ! autovideosink"
+
+EXTRA_OEMESON += "-Ddefaultaudiosink="${DEFAULT_AUDIOSINK}" -Ddefaultvideosink="${DEFAULT_VIDEOSINK}" -Dc_args="${CFLAGS} -I${STAGING_INCDIR_IMX}""

# links with imx-gpu libs which are pre-built for glibc
# gcompat will address it during runtime
--
2.25.1


[PATCH V2 0/1] gstreamer1.0-plugins-base: set default videosink for IMXQM/IMXQXP

Ming Liu <liu.ming50@...>
 

From: Ming Liu <liu.ming50@...>

Changes in V2:
- Changed the Submiited link to: https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1299

Ming Liu (1):
gstreamer1.0-plugins-base: set default videosink for IMXQM/IMXQXP

...e-default-videosink-autosink-options.patch | 106 ++++++++++++++++++
.../gstreamer1.0-plugins-base_1.20.3.imx.bb | 14 ++-
2 files changed, 118 insertions(+), 2 deletions(-)
create mode 100644 recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-Introduce-default-videosink-autosink-options.patch

--
2.25.1


Re: [PATCH] gstreamer1.0-plugins-base: set default videosink for IMXQM/IMXQXP

Andrey Zhizhikin
 

Hello Ming,

On Tue, Mar 14, 2023 at 9:56 AM Ming Liu <liu.ming50@...> wrote:

From: Ming Liu <liu.ming50@...>

The default 'autovideosink' gives very bad performance when playing
H264/H265 videos on IMXQM/IMXQXP machines. Let's choose
'imxvideoconvert_g2d ! autovideosink' as the default videosink, so the
end users dont need manually pass 'imxvideoconvert_g2d' pipeline to
gst-play-1.0.

Signed-off-by: Ming Liu <liu.ming50@...>
---
...e-default-videosink-autosink-options.patch | 106 ++++++++++++++++++
.../gstreamer1.0-plugins-base_1.20.3.imx.bb | 14 ++-
2 files changed, 118 insertions(+), 2 deletions(-)
create mode 100644 recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-Introduce-default-videosink-autosink-options.patch

diff --git a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-Introduce-default-videosink-autosink-options.patch b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-Introduce-default-videosink-autosink-options.patch
new file mode 100644
index 00000000..9ad0385d
--- /dev/null
+++ b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-Introduce-default-videosink-autosink-options.patch
@@ -0,0 +1,106 @@
+From c929a3fd4a10a2d5f57933b40447aa76ce0b6c5a Mon Sep 17 00:00:00 2001
+From: Ming Liu <liu.ming50@...>
+Date: Sun, 5 Mar 2023 13:52:05 +0100
+Subject: [PATCH] Introduce default videosink/autosink options
+
+So the end users can choose the default videosink/autosink at build
+time. It now supports pipeline as default videosink/autosink.
+
+Upstream-Status: Pending [https://github.com/nxp-imx/gst-plugins-base/pull/2]
I'm sorry, but this not the upstream URL this patch refers to.
GStreamer upstream development happens here [1], and what the patch is
pointing to is (as the description suggests) NXP fork of the upstream
GStreamer repository.

I do not think that the 'Upstream-Status:' tag can be used here like
this, as it shall be rather:
'Upstream-Status: Inappropriate [nxp-imx specific]'

+
+Signed-off-by: Ming Liu <liu.ming50@...>
+---
+ gst/playback/gstplaysink.c | 10 ++++++++--
+ meson.build | 5 ++---
+ meson_options.txt | 5 +++++
+ tools/gst-play.c | 7 +++++++
+ 4 files changed, 22 insertions(+), 5 deletions(-)
+
+diff --git a/gst/playback/gstplaysink.c b/gst/playback/gstplaysink.c
+index dc8bfdacd..1abb4ac7e 100755
+--- a/gst/playback/gstplaysink.c
++++ b/gst/playback/gstplaysink.c
+@@ -1770,7 +1770,10 @@ gen_video_chain (GstPlaySink * playsink, gboolean raw, gboolean async)
+ /* if default sink from config.h is different then try it too */
+ if (strcmp (DEFAULT_VIDEOSINK, "autovideosink")) {
+ GST_DEBUG_OBJECT (playsink, "trying " DEFAULT_VIDEOSINK);
+- elem = gst_element_factory_make (DEFAULT_VIDEOSINK, "videosink");
++ if (strchr (DEFAULT_VIDEOSINK, ' ') != NULL)
++ elem = gst_parse_bin_from_description (DEFAULT_VIDEOSINK, TRUE, NULL);
++ else
++ elem = gst_element_factory_make (DEFAULT_VIDEOSINK, "videosink");
+ chain->sink = try_element (playsink, elem, TRUE);
+ }
+ }
+@@ -2713,7 +2716,10 @@ gen_audio_chain (GstPlaySink * playsink, gboolean raw)
+ /* if default sink from config.h is different then try it too */
+ if (strcmp (DEFAULT_AUDIOSINK, "autoaudiosink")) {
+ GST_DEBUG_OBJECT (playsink, "trying " DEFAULT_AUDIOSINK);
+- elem = gst_element_factory_make (DEFAULT_AUDIOSINK, "audiosink");
++ if (strchr (DEFAULT_AUDIOSINK, ' ') != NULL)
++ elem = gst_parse_bin_from_description (DEFAULT_AUDIOSINK, TRUE, NULL);
++ else
++ elem = gst_element_factory_make (DEFAULT_AUDIOSINK, "audiosink");
+ chain->sink = try_element (playsink, elem, TRUE);
+ }
+ }
+diff --git a/meson.build b/meson.build
+index 5ad1ab3ad..a6280eccd 100644
+--- a/meson.build
++++ b/meson.build
+@@ -280,9 +280,8 @@ endif
+ core_conf.set_quoted('GST_PACKAGE_NAME', gst_package_name)
+ core_conf.set_quoted('GST_PACKAGE_ORIGIN', get_option('package-origin'))
+
+-# FIXME: These should be configure options
+-core_conf.set_quoted('DEFAULT_VIDEOSINK', 'autovideosink')
+-core_conf.set_quoted('DEFAULT_AUDIOSINK', 'autoaudiosink')
++core_conf.set_quoted('DEFAULT_VIDEOSINK', get_option('defaultvideosink'))
++core_conf.set_quoted('DEFAULT_AUDIOSINK', get_option('defaultaudiosink'))
+
+ # Set whether the audioresampling method should be detected at runtime
+ core_conf.set('AUDIORESAMPLE_FORMAT_' + get_option('audioresample_format').to_upper(), true)
+diff --git a/meson_options.txt b/meson_options.txt
+index 7010b9162..49bd1a728 100644
+--- a/meson_options.txt
++++ b/meson_options.txt
+@@ -21,6 +21,11 @@ option('opengl_module_name', type : 'string', value : '',
+ option('gles2_module_name', type : 'string', value : '',
+ description : 'The file to pass to g_module_open to open the libGLESv2 library (default: libGLESv2)')
+
++option('defaultaudiosink', type : 'string', value : 'autoaudiosink',
++ description : 'The default audiosink')
++option('defaultvideosink', type : 'string', value : 'autovideosink',
++ description : 'The default videosink')
++
+ # Feature option for opengl plugin and integration library
+ option('gl', type : 'feature', value : 'auto', description : 'OpenGL integration library and OpenGL plugin')
+ option('gl-graphene', type : 'feature', value : 'auto', description : 'Use Graphene in OpenGL plugin')
+diff --git a/tools/gst-play.c b/tools/gst-play.c
+index 0e858d282..4c1e92e42 100644
+--- a/tools/gst-play.c
++++ b/tools/gst-play.c
+@@ -205,6 +205,7 @@ play_new (gchar ** uris, const gchar * audio_sink, const gchar * video_sink,
+ else
+ g_warning ("Couldn't create specified audio sink '%s'", audio_sink);
+ }
++
+ if (video_sink != NULL) {
+ if (strchr (video_sink, ' ') != NULL)
+ sink = gst_parse_bin_from_description (video_sink, TRUE, NULL);
+@@ -1674,6 +1675,12 @@ main (int argc, char **argv)
+ playlist_file = NULL;
+ }
+
++ if (audio_sink == NULL)
++ audio_sink = g_strdup(DEFAULT_AUDIOSINK);
++
++ if (video_sink == NULL)
++ video_sink = g_strdup(DEFAULT_VIDEOSINK);
++
+ if (playlist->len == 0 && (filenames == NULL || *filenames == NULL)) {
+ gst_printerr (_("Usage: %s FILE1|URI1 [FILE2|URI2] [FILE3|URI3] ..."),
+ "gst-play-" GST_API_VERSION);
+--
+2.25.1
+
diff --git a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.20.3.imx.bb b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.20.3.imx.bb
index 0ef9daea..b3da7438 100644
--- a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.20.3.imx.bb
+++ b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.20.3.imx.bb
@@ -121,7 +121,9 @@ SRC_URI:remove = " \
file://0003-viv-fb-Make-sure-config.h-is-included.patch \
file://0002-ssaparse-enhance-SSA-text-lines-parsing.patch"
SRC_URI:prepend = "${GST1.0-PLUGINS-BASE_SRC};branch=${SRCBRANCH} "
-SRC_URI += "file://0001-gstallocatorphymem.c-Typecast-result-of-gst_phymem_g.patch"
+SRC_URI:append = " \
+ file://0001-gstallocatorphymem.c-Typecast-result-of-gst_phymem_g.patch \
+ file://0001-Introduce-default-videosink-autosink-options.patch"
GST1.0-PLUGINS-BASE_SRC ?= "gitsm://github.com/nxp-imx/gst-plugins-base.git;protocol=https"
SRCBRANCH = "MM_04.07.02_2210_L5.15.y"
SRCREV = "cbf542ce3e0bad1009d5ecf72707e870c375c3f0"
@@ -130,6 +132,9 @@ S = "${WORKDIR}/git"

inherit use-imx-headers

+DEFAULT_AUDIOSINK ?= "autoaudiosink"
+DEFAULT_VIDEOSINK ?= "autovideosink"
+
PACKAGECONFIG_GL:imxgpu2d = \
"${@bb.utils.contains('DISTRO_FEATURES', 'opengl x11', 'opengl viv-fb', '', d)}"
PACKAGECONFIG_GL:imxgpu3d = \
@@ -144,7 +149,12 @@ PACKAGECONFIG:append:imxgpu2d = " g2d"
PACKAGECONFIG[g2d] = ",,virtual/libg2d"
PACKAGECONFIG[viv-fb] = ",,virtual/libgles2"

-EXTRA_OEMESON += "-Dc_args="${CFLAGS} -I${STAGING_INCDIR_IMX}""
+DEFAULT_AUDIOSINK ?= "autoaudiosink"
+DEFAULT_VIDEOSINK ?= "autovideosink"
+DEFAULT_VIDEOSINK:mx8qm-nxp-bsp = "imxvideoconvert_g2d ! autovideosink"
+DEFAULT_VIDEOSINK:mx8qxp-nxp-bsp = "imxvideoconvert_g2d ! autovideosink"
+
+EXTRA_OEMESON += "-Ddefaultaudiosink="${DEFAULT_AUDIOSINK}" -Ddefaultvideosink="${DEFAULT_VIDEOSINK}" -Dc_args="${CFLAGS} -I${STAGING_INCDIR_IMX}""
This all can be solved with PACKAGECONFIG, why it is needed to extend
the Meson options?


# links with imx-gpu libs which are pre-built for glibc
# gcompat will address it during runtime
--
2.25.1
Link: [1]: https://gitlab.freedesktop.org/gstreamer/gstreamer


--
Regards,
Andrey.


[PATCH] gstreamer1.0-plugins-base: set default videosink for IMXQM/IMXQXP

Ming Liu <liu.ming50@...>
 

From: Ming Liu <liu.ming50@...>

The default 'autovideosink' gives very bad performance when playing
H264/H265 videos on IMXQM/IMXQXP machines. Let's choose
'imxvideoconvert_g2d ! autovideosink' as the default videosink, so the
end users dont need manually pass 'imxvideoconvert_g2d' pipeline to
gst-play-1.0.

Signed-off-by: Ming Liu <liu.ming50@...>
---
...e-default-videosink-autosink-options.patch | 106 ++++++++++++++++++
.../gstreamer1.0-plugins-base_1.20.3.imx.bb | 14 ++-
2 files changed, 118 insertions(+), 2 deletions(-)
create mode 100644 recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-Introduce-default-videosink-autosink-options.patch

diff --git a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-Introduce-default-videosink-autosink-options.patch b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-Introduce-default-videosink-autosink-options.patch
new file mode 100644
index 00000000..9ad0385d
--- /dev/null
+++ b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/0001-Introduce-default-videosink-autosink-options.patch
@@ -0,0 +1,106 @@
+From c929a3fd4a10a2d5f57933b40447aa76ce0b6c5a Mon Sep 17 00:00:00 2001
+From: Ming Liu <liu.ming50@...>
+Date: Sun, 5 Mar 2023 13:52:05 +0100
+Subject: [PATCH] Introduce default videosink/autosink options
+
+So the end users can choose the default videosink/autosink at build
+time. It now supports pipeline as default videosink/autosink.
+
+Upstream-Status: Pending [https://github.com/nxp-imx/gst-plugins-base/pull/2]
+
+Signed-off-by: Ming Liu <liu.ming50@...>
+---
+ gst/playback/gstplaysink.c | 10 ++++++++--
+ meson.build | 5 ++---
+ meson_options.txt | 5 +++++
+ tools/gst-play.c | 7 +++++++
+ 4 files changed, 22 insertions(+), 5 deletions(-)
+
+diff --git a/gst/playback/gstplaysink.c b/gst/playback/gstplaysink.c
+index dc8bfdacd..1abb4ac7e 100755
+--- a/gst/playback/gstplaysink.c
++++ b/gst/playback/gstplaysink.c
+@@ -1770,7 +1770,10 @@ gen_video_chain (GstPlaySink * playsink, gboolean raw, gboolean async)
+ /* if default sink from config.h is different then try it too */
+ if (strcmp (DEFAULT_VIDEOSINK, "autovideosink")) {
+ GST_DEBUG_OBJECT (playsink, "trying " DEFAULT_VIDEOSINK);
+- elem = gst_element_factory_make (DEFAULT_VIDEOSINK, "videosink");
++ if (strchr (DEFAULT_VIDEOSINK, ' ') != NULL)
++ elem = gst_parse_bin_from_description (DEFAULT_VIDEOSINK, TRUE, NULL);
++ else
++ elem = gst_element_factory_make (DEFAULT_VIDEOSINK, "videosink");
+ chain->sink = try_element (playsink, elem, TRUE);
+ }
+ }
+@@ -2713,7 +2716,10 @@ gen_audio_chain (GstPlaySink * playsink, gboolean raw)
+ /* if default sink from config.h is different then try it too */
+ if (strcmp (DEFAULT_AUDIOSINK, "autoaudiosink")) {
+ GST_DEBUG_OBJECT (playsink, "trying " DEFAULT_AUDIOSINK);
+- elem = gst_element_factory_make (DEFAULT_AUDIOSINK, "audiosink");
++ if (strchr (DEFAULT_AUDIOSINK, ' ') != NULL)
++ elem = gst_parse_bin_from_description (DEFAULT_AUDIOSINK, TRUE, NULL);
++ else
++ elem = gst_element_factory_make (DEFAULT_AUDIOSINK, "audiosink");
+ chain->sink = try_element (playsink, elem, TRUE);
+ }
+ }
+diff --git a/meson.build b/meson.build
+index 5ad1ab3ad..a6280eccd 100644
+--- a/meson.build
++++ b/meson.build
+@@ -280,9 +280,8 @@ endif
+ core_conf.set_quoted('GST_PACKAGE_NAME', gst_package_name)
+ core_conf.set_quoted('GST_PACKAGE_ORIGIN', get_option('package-origin'))
+
+-# FIXME: These should be configure options
+-core_conf.set_quoted('DEFAULT_VIDEOSINK', 'autovideosink')
+-core_conf.set_quoted('DEFAULT_AUDIOSINK', 'autoaudiosink')
++core_conf.set_quoted('DEFAULT_VIDEOSINK', get_option('defaultvideosink'))
++core_conf.set_quoted('DEFAULT_AUDIOSINK', get_option('defaultaudiosink'))
+
+ # Set whether the audioresampling method should be detected at runtime
+ core_conf.set('AUDIORESAMPLE_FORMAT_' + get_option('audioresample_format').to_upper(), true)
+diff --git a/meson_options.txt b/meson_options.txt
+index 7010b9162..49bd1a728 100644
+--- a/meson_options.txt
++++ b/meson_options.txt
+@@ -21,6 +21,11 @@ option('opengl_module_name', type : 'string', value : '',
+ option('gles2_module_name', type : 'string', value : '',
+ description : 'The file to pass to g_module_open to open the libGLESv2 library (default: libGLESv2)')
+
++option('defaultaudiosink', type : 'string', value : 'autoaudiosink',
++ description : 'The default audiosink')
++option('defaultvideosink', type : 'string', value : 'autovideosink',
++ description : 'The default videosink')
++
+ # Feature option for opengl plugin and integration library
+ option('gl', type : 'feature', value : 'auto', description : 'OpenGL integration library and OpenGL plugin')
+ option('gl-graphene', type : 'feature', value : 'auto', description : 'Use Graphene in OpenGL plugin')
+diff --git a/tools/gst-play.c b/tools/gst-play.c
+index 0e858d282..4c1e92e42 100644
+--- a/tools/gst-play.c
++++ b/tools/gst-play.c
+@@ -205,6 +205,7 @@ play_new (gchar ** uris, const gchar * audio_sink, const gchar * video_sink,
+ else
+ g_warning ("Couldn't create specified audio sink '%s'", audio_sink);
+ }
++
+ if (video_sink != NULL) {
+ if (strchr (video_sink, ' ') != NULL)
+ sink = gst_parse_bin_from_description (video_sink, TRUE, NULL);
+@@ -1674,6 +1675,12 @@ main (int argc, char **argv)
+ playlist_file = NULL;
+ }
+
++ if (audio_sink == NULL)
++ audio_sink = g_strdup(DEFAULT_AUDIOSINK);
++
++ if (video_sink == NULL)
++ video_sink = g_strdup(DEFAULT_VIDEOSINK);
++
+ if (playlist->len == 0 && (filenames == NULL || *filenames == NULL)) {
+ gst_printerr (_("Usage: %s FILE1|URI1 [FILE2|URI2] [FILE3|URI3] ..."),
+ "gst-play-" GST_API_VERSION);
+--
+2.25.1
+
diff --git a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.20.3.imx.bb b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.20.3.imx.bb
index 0ef9daea..b3da7438 100644
--- a/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.20.3.imx.bb
+++ b/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.20.3.imx.bb
@@ -121,7 +121,9 @@ SRC_URI:remove = " \
file://0003-viv-fb-Make-sure-config.h-is-included.patch \
file://0002-ssaparse-enhance-SSA-text-lines-parsing.patch"
SRC_URI:prepend = "${GST1.0-PLUGINS-BASE_SRC};branch=${SRCBRANCH} "
-SRC_URI += "file://0001-gstallocatorphymem.c-Typecast-result-of-gst_phymem_g.patch"
+SRC_URI:append = " \
+ file://0001-gstallocatorphymem.c-Typecast-result-of-gst_phymem_g.patch \
+ file://0001-Introduce-default-videosink-autosink-options.patch"
GST1.0-PLUGINS-BASE_SRC ?= "gitsm://github.com/nxp-imx/gst-plugins-base.git;protocol=https"
SRCBRANCH = "MM_04.07.02_2210_L5.15.y"
SRCREV = "cbf542ce3e0bad1009d5ecf72707e870c375c3f0"
@@ -130,6 +132,9 @@ S = "${WORKDIR}/git"

inherit use-imx-headers

+DEFAULT_AUDIOSINK ?= "autoaudiosink"
+DEFAULT_VIDEOSINK ?= "autovideosink"
+
PACKAGECONFIG_GL:imxgpu2d = \
"${@bb.utils.contains('DISTRO_FEATURES', 'opengl x11', 'opengl viv-fb', '', d)}"
PACKAGECONFIG_GL:imxgpu3d = \
@@ -144,7 +149,12 @@ PACKAGECONFIG:append:imxgpu2d = " g2d"
PACKAGECONFIG[g2d] = ",,virtual/libg2d"
PACKAGECONFIG[viv-fb] = ",,virtual/libgles2"

-EXTRA_OEMESON += "-Dc_args="${CFLAGS} -I${STAGING_INCDIR_IMX}""
+DEFAULT_AUDIOSINK ?= "autoaudiosink"
+DEFAULT_VIDEOSINK ?= "autovideosink"
+DEFAULT_VIDEOSINK:mx8qm-nxp-bsp = "imxvideoconvert_g2d ! autovideosink"
+DEFAULT_VIDEOSINK:mx8qxp-nxp-bsp = "imxvideoconvert_g2d ! autovideosink"
+
+EXTRA_OEMESON += "-Ddefaultaudiosink="${DEFAULT_AUDIOSINK}" -Ddefaultvideosink="${DEFAULT_VIDEOSINK}" -Dc_args="${CFLAGS} -I${STAGING_INCDIR_IMX}""

# links with imx-gpu libs which are pre-built for glibc
# gcompat will address it during runtime
--
2.25.1


Re: Understanding pads setup

Fabio Estevam
 

Hi Mauro,

On Sun, Mar 12, 2023 at 3:50 PM Mauro Ziliani <mauro@...> wrote:

Hi all

I'm working on and mx51evk babbage board.

I have a lvds display connected ti disp1 pads.

I need to define DI1_DISP_CLK for pad J18 of the BGA (the chip is 19x19mm)
Why? There is no mux option for the DI1_DISP_CLK pin.


Re: Understanding pads setup

Mauro Ziliani
 

Thank you.


Il 13/03/23 08:54, Marco Cavallini ha scritto:
Hi Mauro,

you can refer to our IMX6 definitive GPIO guide related to iMX6 in our wiki
and adapt it to the required settings that you can see in the kernel documentation for imx53-pinctrl.txt

Ciao
--
Marco Cavallini | KOAN sas
Bergamo - Italia
embedded software engineering
https://KoanSoftware.com





Re: Understanding pads setup

Marco Cavallini
 

Hi Mauro,

you can refer to our IMX6 definitive GPIO guide related to iMX6 in our wiki
and adapt it to the required settings that you can see in the kernel documentation for imx53-pinctrl.txt

Ciao
--
Marco Cavallini | KOAN sas
Bergamo - Italia
embedded software engineering
https://KoanSoftware.com


Understanding pads setup

Mauro Ziliani
 

Hi all

I'm working on and mx51evk babbage board.

I have a lvds display connected ti disp1 pads.

I need to define DI1_DISP_CLK for pad J18 of the BGA (the chip is 19x19mm)


I know the pad definition is made by 5+1 values

<mux_reg conf_reg input_reg mux_mode input_val    CONFIG>


I don't find MX51_PAD_DI1_DISP_CLK__DI1_DISP_CLK or similar in imx51-pinfunc.h

I find MX51_PAD_DI2_DISP_CLK__DI2_DISP_CLK defined with this values.


#define MX51_PAD_DI2_DISP_CLK__DI2_DISP_CLK     0x34c 0x754 0x000 0x0 0x0


But I don't know how to use the 5 values.


Where I can find some example o detailed info about?


MZ


Re: Cannot reset root password with yocto build #kirkstone

vivsundar@...
 

I was trying to boot through NFS. So the problem was that sysinit v3.01 is not allowing root login through NFS.  After changing the nfs server side parameters(added no_root_squash,insecure /etc/exports) i am able to boot with NFS.

This is the root cause. I am able the change the password using above mentioned procedure.


Re: Not able to login as root user with the RFS generated. #kirkstone

vivsundar@...
 

The problem is that sysinit v3.01 is not allowing root login through NFS.  After changing the nfs server side parameters(added no_root_squash,insecure /etc/exports) i am able to boot with NFS


Re: langdale branch missing

Otavio Salvador
 



Em ter., 10 de jan. de 2023 às 05:17, Mario Schuknecht <mario.schuknecht@...> escreveu:
Will there be a langdale branch?
Or will only the master branch be used in the future?

 
--
Otavio Salvador                             O.S. Systems
http://www.ossystems.com.br        http://code.ossystems.com.br
Mobile: +55 (53) 9 9981-7854          Mobile: +1 (347) 903-9750


Not able to login as root user with the RFS generated. #kirkstone

vivsundar@...
 
Edited

I am using a imx6 based custom board 
Made the build system ready using the following guide: https://www.nxp.com/docs/en/user-guide/IMX_YOCTO_PROJECT_USERS_GUIDE.pdf

After cloning the yocto source, initialized the build with: DISTRO=fsl-imx-fb MACHINE=imx6dlsabresd source imx-setup-release.sh -b build_imx

Then started the build using: bitbake -k core-image-minimal.

The core-image-minimal-xxxx-xxx.tar is generated.  But when the board is booted with this RFS image, it did not accept any password for the root user.

I checked the local.conf. It has:
EXTRA_IMAGE_FEATURES ?= "debug-tweaks"
Yet it did not accept a blank password or any other password.

I had a look at /etc/shadow file.  The root user's password field is empty. 
I tried to change the password manually in /etc/shadow file, but it did not work out.

Added the following line in local.conf
INHERIT += "extrausers"
EXTRA_USERS_PARAMS = "usermod -p '\$6\$rYOC7GCfUdPrKZdt\$GbxrFaYxl0Wdk9ZyuR/HarDrChctvbHQqdmdtGS.dxCq0FUxLVdxgvdBCoofs4NLcc/0GZ3pbMcrNeT3KwCFk/' root;"
I can see that when i add this line the /etc/shadow file is updated with the password hash.  But that too did not work.

Can any one point out what should i do to fix the login issue.


langdale branch missing

Mario Schuknecht
 

Hello,

Will there be a langdale branch?
Or will only the master branch be used in the future?

Regards,
Mario


Re: Cannot reset root password with yocto build #kirkstone

Otavio Salvador
 

Hello,

You can use a task for this, see below:

inherit extrausers

# Default root password
ROOT_USER_PASSWORD ?= "xxx"
change_root_password() {
    echo 'root:${ROOT_USER_PASSWORD}' | chpasswd -R ${IMAGE_ROOTFS} root
}

ROOTFS_POSTPROCESS_COMMAND += "change_root_password ; "

Em seg., 2 de jan. de 2023 às 05:48, <vivsundar@...> escreveu:

Hi all,

I am usnig the imx6 freescale processor.
I am trying to build rootFS with yocto build "5.15-kirkstone" branch
I use Sysvinit for my bootup sequence.
I cannot reset the root password. I have tried the following things:

Added the following line in local.conf
INHERIT += "extrausers"
EXTRA_USERS_PARAMS = "usermod -p '\$6\$rYOC7GCfUdPrKZdt\$GbxrFaYxl0Wdk9ZyuR/HarDrChctvbHQqdmdtGS.dxCq0FUxLVdxgvdBCoofs4NLcc/0GZ3pbMcrNeT3KwCFk/' root;"
I can see that when i add this line the /etc/shadow file is updated with the password hash

Manually changed the /etc/shadow file with the hash
root:$6$rYOC7GCfUdPrKZdt$GbxrFaYxl0Wdk9ZyuR/HarDrChctvbHQqdmdtGS.dxCq0FUxLVdxgvdBCoofs4NLcc/0GZ3pbMcrNeT3KwCFk/:15069:0:99999:7:::

But yet no use.

I tried to add
IMAGE_FEATURES = " debug-tweaks"
EXTRA_IMAGE_FEATURES = " empty-root-password"
EXTRA_IMAGE_FEATURES += " ssh-server-dropbear"
EXTRA_IMAGE_FEATURES += " allow-empty-password"
EXTRA_IMAGE_FEATURES += " allow-root-login"

but yet no use.

I am using sysvinit V3.01 in the build.

Can some one point what file should i change in order to change the root password?




--
Otavio Salvador                             O.S. Systems
http://www.ossystems.com.br        http://code.ossystems.com.br
Mobile: +55 (53) 9 9981-7854          Mobile: +1 (347) 903-9750


Cannot reset root password with yocto build #kirkstone

vivsundar@...
 

Hi all,

I am usnig the imx6 freescale processor.
I am trying to build rootFS with yocto build "5.15-kirkstone" branch
I use Sysvinit for my bootup sequence.
I cannot reset the root password. I have tried the following things:

Added the following line in local.conf
INHERIT += "extrausers"
EXTRA_USERS_PARAMS = "usermod -p '\$6\$rYOC7GCfUdPrKZdt\$GbxrFaYxl0Wdk9ZyuR/HarDrChctvbHQqdmdtGS.dxCq0FUxLVdxgvdBCoofs4NLcc/0GZ3pbMcrNeT3KwCFk/' root;"
I can see that when i add this line the /etc/shadow file is updated with the password hash

Manually changed the /etc/shadow file with the hash
root:$6$rYOC7GCfUdPrKZdt$GbxrFaYxl0Wdk9ZyuR/HarDrChctvbHQqdmdtGS.dxCq0FUxLVdxgvdBCoofs4NLcc/0GZ3pbMcrNeT3KwCFk/:15069:0:99999:7:::

But yet no use.

I tried to add
IMAGE_FEATURES = " debug-tweaks"
EXTRA_IMAGE_FEATURES = " empty-root-password"
EXTRA_IMAGE_FEATURES += " ssh-server-dropbear"
EXTRA_IMAGE_FEATURES += " allow-empty-password"
EXTRA_IMAGE_FEATURES += " allow-root-login"

but yet no use.

I am using sysvinit V3.01 in the build.

Can some one point what file should i change in order to change the root password?


Can not find gbm version to satisfy x11 requirement

Mistyron <ron.eggler@...>
 

Hi,

I need to include x11 in my build and consequently set DISTRO_FEATURES_append = " x11" in my local.conf.
Upon invocation of bitbake however, I get an error like:

| checking for GLAMOR... yes
| checking for GBM... no
| configure: error: Glamor for Xorg requires gbm >= 10.2.0
| NOTE: The following config.log files may provide further information.

and the libgbm version on openembedded is only at 10.0.0.
Can someone help me to resolve this conflict issue?