JeffyCN / rockchip_mirrors

Mirrors of a few Rockchip BSP repositories, some others in https://github.com/JeffyCN/mirrors.
Other
10 stars 2 forks source link

gst_mpp_dec_get_gst_buffer:<mppjpegdec0> unable to convert frame / can't process this frame #39

Closed NIKovachev closed 8 months ago

NIKovachev commented 8 months ago

Hi, I cannot get RGB format from mppjpegdec. I had an older version shipped with the debian gst that was working fine for all formats apart from RGB. For the RGB issue then I created isseu #31 . The same was marked as solved but now when I tested it even the RGBA is not working.

RGB error:

root@firefly:~/mirrors-gstreamer-rockchip/builddir# gst-launch-1.0 -v --gst-debug=2 shmsrc socket-path=/var/ramfs/camera_shm ! image/jpeg,width=3840,height=2160,framerate=20/1 ! mppjpegdec format=BGR dma-feature=1 max-errors=-1 ! fpsdisplaysink video-sink=fakesink text-overlay=false -ve
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0/GstFakeSink:fakesink0: sync = true
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:src: caps = image/jpeg, width=(int)3840, height=(int)2160, framerate=(fraction)20/1, parsed=(boolean)true
0:00:00.062638634 19674   0x559f432c60 WARN              video-info video-info.c:196:validate_colorimetry: color matrix RGB is only supported with RGB format, NV12 is not
0:00:00.062665759 19674   0x559f432c60 WARN              video-info video-info.c:520:gst_video_info_from_caps: invalid colorimetry, using default
/GstPipeline:pipeline0/GstMppJpegDec:mppjpegdec0.GstPad:src: caps = video/x-raw(memory:DMABuf), format=(string)BGR, width=(int)3840, height=(int)2160, interlace-mode=(string)progressive, multiview-mode=(string)mono, multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono, pixel-aspect-ratio=(fraction)1/1, colorimetry=(string)sRGB, framerate=(fraction)20/1
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0.GstGhostPad:sink.GstProxyPad:proxypad0: caps = video/x-raw(memory:DMABuf), format=(string)BGR, width=(int)3840, height=(int)2160, interlace-mode=(string)progressive, multiview-mode=(string)mono, multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono, pixel-aspect-ratio=(fraction)1/1, colorimetry=(string)sRGB, framerate=(fraction)20/1
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0/GstFakeSink:fakesink0.GstPad:sink: caps = video/x-raw(memory:DMABuf), format=(string)BGR, width=(int)3840, height=(int)2160, interlace-mode=(string)progressive, multiview-mode=(string)mono, multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono, pixel-aspect-ratio=(fraction)1/1, colorimetry=(string)sRGB, framerate=(fraction)20/1
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0.GstGhostPad:sink: caps = video/x-raw(memory:DMABuf), format=(string)BGR, width=(int)3840, height=(int)2160, interlace-mode=(string)progressive, multiview-mode=(string)mono, multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono, pixel-aspect-ratio=(fraction)1/1, colorimetry=(string)sRGB, framerate=(fraction)20/1
/GstPipeline:pipeline0/GstMppJpegDec:mppjpegdec0.GstPad:sink: caps = image/jpeg, width=(int)3840, height=(int)2160, framerate=(fraction)20/1, parsed=(boolean)true
0:00:00.062956842 19674   0x559f432c60 WARN            videodecoder gstvideodecoder.c:2573:gst_video_decoder_chain:<mppjpegdec0> Received buffer without a new-segment. Assuming timestamps start from 0.
0:00:00.073716567 19674   0x559f433180 WARN                  mppdec gstmppdec.c:591:gst_mpp_dec_get_frame:<mppjpegdec0> MPP is not able to generate pts
0:00:00.074007942 19674   0x559f433180 WARN                  mppdec gstmppdec.c:821:gst_mpp_dec_get_gst_buffer:<mppjpegdec0> unable to convert frame
0:00:00.074093109 19674   0x559f433180 WARN                  mppdec gstmppdec.c:966:gst_mpp_dec_loop:<mppjpegdec0> can't process this frame
0:00:00.133421321 19674   0x559f433180 WARN                  mppdec gstmppdec.c:821:gst_mpp_dec_get_gst_buffer:<mppjpegdec0> unable to convert frame
0:00:00.133531280 19674   0x559f433180 WARN                  mppdec gstmppdec.c:966:gst_mpp_dec_loop:<mppjpegdec0> can't process this frame
0:00:00.196971665 19674   0x559f433180 WARN                  mppdec gstmppdec.c:821:gst_mpp_dec_get_gst_buffer:<mppjpegdec0> unable to convert frame
0:00:00.197036707 19674   0x559f433180 WARN                  mppdec gstmppdec.c:966:gst_mpp_dec_loop:<mppjpegdec0> can't process this frame
0:00:00.254252374 19674   0x559f433180 WARN                  mppdec gstmppdec.c:821:gst_mpp_dec_get_gst_buffer:<mppjpegdec0> unable to convert frame

RGBA error:

root@firefly:~/mirrors-gstreamer-rockchip/builddir# gst-launch-1.0 -v --gst-debug=2 shmsrc socket-path=/var/ramfs/camera_shm ! image/jpeg,width=3840,height=2160,framerate=20/1 ! mppjpegdec format=BGR565 dma-feature=1 max-errors=-1 ! fpsdisplaysink video-sink=fakesink text-overlay=false -ve
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0/GstFakeSink:fakesink0: sync = true
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:src: caps = image/jpeg, width=(int)3840, height=(int)2160, framerate=(fraction)20/1, parsed=(boolean)true
0:00:00.060338336 19830   0x55a3276060 ERROR             mppjpegdec gstmppjpegdec.c:281:gst_mpp_jpeg_dec_set_format:<mppjpegdec0> unsupported video format
0:00:00.060379169 19830   0x55a3276060 WARN            videodecoder gstvideodecoder.c:811:gst_video_decoder_setcaps:<mppjpegdec0> Subclass refused caps
0:00:00.060823670 19830   0x55a3276060 ERROR             mppjpegdec gstmppjpegdec.c:281:gst_mpp_jpeg_dec_set_format:<mppjpegdec0> unsupported video format
0:00:00.060850503 19830   0x55a3276060 WARN            videodecoder gstvideodecoder.c:811:gst_video_decoder_setcaps:<mppjpegdec0> Subclass refused caps
0:00:00.061242504 19830   0x55a3276060 ERROR             mppjpegdec gstmppjpegdec.c:281:gst_mpp_jpeg_dec_set_format:<mppjpegdec0> unsupported video format
0:00:00.061267295 19830   0x55a3276060 WARN            videodecoder gstvideodecoder.c:811:gst_video_decoder_setcaps:<mppjpegdec0> Subclass refused caps
0:00:00.061321254 19830   0x55a3276060 WARN                 basesrc gstbasesrc.c:3127:gst_base_src_loop:<shmsrc0> error: Internal data stream error.
0:00:00.061337587 19830   0x55a3276060 WARN                 basesrc gstbasesrc.c:3127:gst_base_src_loop:<shmsrc0> error: streaming stopped, reason not-negotiated (-4)
ERROR: from element /GstPipeline:pipeline0/GstShmSrc:shmsrc0: Internal data stream error.
Additional debug info:
../libs/gst/base/gstbasesrc.c(3127): gst_base_src_loop (): /GstPipeline:pipeline0/GstShmSrc:shmsrc0:
streaming stopped, reason not-negotiated (-4)
ERROR: pipeline doesn't want to preroll.
Setting pipeline to NULL ...
0:00:00.061796088 19830   0x55a3276060 ERROR             mppjpegdec gstmppjpegdec.c:281:gst_mpp_jpeg_dec_set_format:<mppjpegdec0> unsupported video format
0:00:00.061819129 19830   0x55a3276060 WARN            videodecoder gstvideodecoder.c:811:gst_video_decoder_setcaps:<mppjpegdec0> Subclass refused caps
0:00:00.062001130 19830   0x55a3276060 ERROR             mppjpegdec gstmppjpegdec.c:281:gst_mpp_jpeg_dec_set_format:<mppjpegdec0> unsupported video format
0:00:00.062017171 19830   0x55a3276060 WARN            videodecoder gstvideodecoder.c:811:gst_video_decoder_setcaps:<mppjpegdec0> Subclass refused caps
Freeing pipeline ...
root@firefly:~/mirrors-gstreamer-rockchip/builddir# 
root@firefly:~/mirrors-gstreamer-rockchip/builddir# 
root@firefly:~/mirrors-gstreamer-rockchip/builddir# 
root@firefly:~/mirrors-gstreamer-rockchip/builddir# gst-launch-1.0 -v --gst-debug=2 shmsrc socket-path=/var/ramfs/camera_shm ! image/jpeg,width=3840,height=2160,framerate=20/1 ! mppjpegdec format=RGBA dma-feature=1 max-errors=-1 ! fpsdisplaysink video-sink=fakesink text-overlay=false -ve
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0/GstFakeSink:fakesink0: sync = true
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:src: caps = image/jpeg, width=(int)3840, height=(int)2160, framerate=(fraction)20/1, parsed=(boolean)true
0:00:00.116969648 20414   0x5583f1ec60 ERROR             mppjpegdec gstmppjpegdec.c:281:gst_mpp_jpeg_dec_set_format:<mppjpegdec0> unsupported video format
0:00:00.117071440 20414   0x5583f1ec60 WARN            videodecoder gstvideodecoder.c:811:gst_video_decoder_setcaps:<mppjpegdec0> Subclass refused caps
0:00:00.117737608 20414   0x5583f1ec60 ERROR             mppjpegdec gstmppjpegdec.c:281:gst_mpp_jpeg_dec_set_format:<mppjpegdec0> unsupported video format
0:00:00.117797400 20414   0x5583f1ec60 WARN            videodecoder gstvideodecoder.c:811:gst_video_decoder_setcaps:<mppjpegdec0> Subclass refused caps
0:00:00.118271650 20414   0x5583f1ec60 ERROR             mppjpegdec gstmppjpegdec.c:281:gst_mpp_jpeg_dec_set_format:<mppjpegdec0> unsupported video format
0:00:00.118327067 20414   0x5583f1ec60 WARN            videodecoder gstvideodecoder.c:811:gst_video_decoder_setcaps:<mppjpegdec0> Subclass refused caps
0:00:00.118507025 20414   0x5583f1ec60 WARN                 basesrc gstbasesrc.c:3127:gst_base_src_loop:<shmsrc0> error: Internal data stream error.
0:00:00.118564775 20414   0x5583f1ec60 WARN                 basesrc gstbasesrc.c:3127:gst_base_src_loop:<shmsrc0> error: streaming stopped, reason not-negotiated (-4)
ERROR: from element /GstPipeline:pipeline0/GstShmSrc:shmsrc0: Internal data stream error.
Additional debug info:
../libs/gst/base/gstbasesrc.c(3127): gst_base_src_loop (): /GstPipeline:pipeline0/GstShmSrc:shmsrc0:
streaming stopped, reason not-negotiated (-4)
ERROR: pipeline doesn't want to preroll.
Setting pipeline to NULL ...
0:00:00.119711902 20414   0x5583f1ec60 ERROR             mppjpegdec gstmppjpegdec.c:281:gst_mpp_jpeg_dec_set_format:<mppjpegdec0> unsupported video format
0:00:00.119783069 20414   0x5583f1ec60 WARN            videodecoder gstvideodecoder.c:811:gst_video_decoder_setcaps:<mppjpegdec0> Subclass refused caps
0:00:00.120452153 20414   0x5583f1ec60 ERROR             mppjpegdec gstmppjpegdec.c:281:gst_mpp_jpeg_dec_set_format:<mppjpegdec0> unsupported video format
0:00:00.120509903 20414   0x5583f1ec60 WARN            videodecoder gstvideodecoder.c:811:gst_video_decoder_setcaps:<mppjpegdec0> Subclass refused caps
Freeing pipeline ...
root@firefly:~/mirrors-gstreamer-rockchip/builddir# 
JeffyCN commented 8 months ago

it looks like something wrong in your rga setup

NIKovachev commented 8 months ago

Maybe I did something wrong? I downloaded the latest version of the mirrors-gstreamer-rockchip, compiled and installed to the latest gst provided by the debian repo. Do I need to do something else?

root@firefly:~/mirrors-gstreamer-rockchip/builddir# meson install
ninja: Entering directory `/root/mirrors-gstreamer-rockchip/builddir'
ninja: no work to do.
Installing gst/rkximage/libgstrkximage.so to /usr/local/lib/aarch64-linux-gnu/gstreamer-1.0
Installing gst/rockchipmpp/libgstrockchipmpp.so to /usr/local/lib/aarch64-linux-gnu/gstreamer-1.0
Installing gst/kmssrc/libgstkmssrc.so to /usr/local/lib/aarch64-linux-gnu/gstreamer-1.0
root@firefly:~/mirrors-gstreamer-rockchip/builddir# 
JeffyCN commented 8 months ago

if you are compiling it by yourself, maybe should install librga*-dev

NIKovachev commented 8 months ago

I have it installed. this is the whole meson output. I really appreciate your help!

root@firefly:~/mirrors-gstreamer-rockchip/builddir# apt search librga*-dev
Sorting... Done
Full Text Search... Done
librga-dev/now 2.2.0-1 arm64 [installed,local]
  Userspace interface to Rockchip RGA 2D accelerator

root@firefly:~/mirrors-gstreamer-rockchip/builddir# 

root@firefly:~/mirrors-gstreamer-rockchip# meson setup builddir && cd builddir
The Meson build system
Version: 1.3.0
Source dir: /root/mirrors-gstreamer-rockchip
Build dir: /root/mirrors-gstreamer-rockchip/builddir
Build type: native build
Project name: gst-plugins-bad
Project version: 1.14.4

C compiler for the host machine: cc (gcc 10.2.1 "cc (Debian 10.2.1-6) 10.2.1 20210110")
C linker for the host machine: cc ld.bfd 2.35.2
Host machine cpu family: aarch64
Host machine cpu: aarch64
Compiler for C supports arguments -fvisibility=hidden: YES 
Compiler for C supports arguments -fno-strict-aliasing: YES 
Message: Disabling GLib cast checks
Message: Disabling deprecated GLib API
Found pkg-config: YES (/usr/bin/pkg-config) 0.29.2
Run-time dependency gstreamer-1.0 found: YES 1.18.5
Run-time dependency gstreamer-base-1.0 found: YES 1.18.5
Run-time dependency gstreamer-allocators-1.0 found: YES 1.18.5
Run-time dependency gstreamer-video-1.0 found: YES 1.18.5
Run-time dependency gstreamer-pbutils-1.0 found: YES 1.18.5
Run-time dependency glib-2.0 found: YES 2.66.8
Run-time dependency x11 found: YES 1.7.2
Run-time dependency libdrm found: YES 2.4.104
Run-time dependency rockchip_mpp found: YES 1.3.8
Run-time dependency librga found: YES 2.1.0
meson.build:92: DEPRECATION: configuration_data.set10 with number. the `set10` method should only be used with booleans
Header "gst/video/video-format.h" has symbol "GST_VIDEO_FORMAT_NV12_10LE40" with dependency gstreamer-video-1.0: YES 
meson.build:107: DEPRECATION: configuration_data.set10 with number. the `set10` method should only be used with booleans
Header "gst/video/video-format.h" has symbol "GST_VIDEO_FORMAT_NV16_10LE40" with dependency gstreamer-video-1.0: NO 
Checking for function "drmModeGetFB2" with dependency libdrm: YES 
Checking for function "drmCloseBufferHandle" with dependency libdrm: NO 
Configuring config.h using configuration
Program python3 found: YES (/usr/bin/python3)
WARNING: You should add the boolean check kwarg to the run_command call.
         It currently defaults to false,
         but it will default to true in future releases of meson.
         See also: https://github.com/mesonbuild/meson/issues/9300
Build targets in project: 3

Found ninja-1.10.1 at /usr/bin/ninja
root@firefly:~/mirrors-gstreamer-rockchip/builddir# 
root@firefly:~/mirrors-gstreamer-rockchip/builddir# meson compile
INFO: autodetecting backend as ninja
INFO: calculating backend command to run: /usr/bin/ninja
[1/18] Compiling C object gst/rkximage/libgstrkximage.so.p/gstkmsbufferpool.c.o
../gst/rkximage/gstkmsbufferpool.c: In function ‘gst_kms_buffer_pool_get_options’:
../gst/rkximage/gstkmsbufferpool.c:53:50: warning: unused parameter ‘pool’ [-Wunused-parameter]
   53 | gst_kms_buffer_pool_get_options (GstBufferPool * pool)
      |                                  ~~~~~~~~~~~~~~~~^~~~
../gst/rkximage/gstkmsbufferpool.c: In function ‘gst_kms_buffer_pool_alloc_buffer’:
../gst/rkximage/gstkmsbufferpool.c:134:34: warning: unused parameter ‘params’ [-Wunused-parameter]
  134 |     GstBufferPoolAcquireParams * params)
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
[5/18] Compiling C object gst/rkximage/libgstrkximage.so.p/gstkmsutils.c.o
../gst/rkximage/gstkmsutils.c: In function ‘gst_video_format_from_drm’:
../gst/rkximage/gstkmsutils.c:82:17: warning: comparison of integer expressions of different signedness: ‘gint’ {aka ‘int’} and ‘long unsigned int’ [-Wsign-compare]
   82 |   for (i = 0; i < G_N_ELEMENTS (format_map); i++) {
      |                 ^
../gst/rkximage/gstkmsutils.c: In function ‘gst_drm_format_from_video’:
../gst/rkximage/gstkmsutils.c:95:17: warning: comparison of integer expressions of different signedness: ‘gint’ {aka ‘int’} and ‘long unsigned int’ [-Wsign-compare]
   95 |   for (i = 0; i < G_N_ELEMENTS (format_map); i++) {
      |                 ^
../gst/rkximage/gstkmsutils.c: In function ‘gst_kms_sink_caps_template_fill’:
../gst/rkximage/gstkmsutils.c:183:17: warning: comparison of integer expressions of different signedness: ‘gint’ {aka ‘int’} and ‘long unsigned int’ [-Wsign-compare]
  183 |   for (i = 0; i < G_N_ELEMENTS (format_map); i++) {
      |                 ^
../gst/rkximage/gstkmsutils.c: In function ‘gst_video_calculate_device_ratio’:
../gst/rkximage/gstkmsutils.c:229:17: warning: comparison of integer expressions of different signedness: ‘gint’ {aka ‘int’} and ‘long unsigned int’ [-Wsign-compare]
  229 |   for (i = 1; i < G_N_ELEMENTS (device_par_map); i++) {
      |                 ^
[13/18] Compiling C object gst/rkximage/libgstrkximage.so.p/gstkmsallocator.c.o
../gst/rkximage/gstkmsallocator.c: In function ‘gst_kms_memory_map’:
../gst/rkximage/gstkmsallocator.c:347:44: warning: unused parameter ‘maxsize’ [-Wunused-parameter]
  347 | gst_kms_memory_map (GstMemory * mem, gsize maxsize, GstMapFlags flags)
      |                                      ~~~~~~^~~~~~~
../gst/rkximage/gstkmsallocator.c:347:65: warning: unused parameter ‘flags’ [-Wunused-parameter]
  347 | gst_kms_memory_map (GstMemory * mem, gsize maxsize, GstMapFlags flags)
      |                                                     ~~~~~~~~~~~~^~~~~
../gst/rkximage/gstkmsallocator.c: In function ‘gst_kms_allocator_dmabuf_import’:
../gst/rkximage/gstkmsallocator.c:591:12: warning: missing initializer for field ‘pad’ of ‘struct drm_gem_close’ [-Wmissing-field-initializers]
  591 |     struct drm_gem_close arg = { kmsmem->gem_handle[i], };
      |            ^~~~~~~~~~~~~
In file included from /usr/include/xf86drm.h:40,
                 from ../gst/rkximage/gstkmsallocator.c:31:
/usr/include/libdrm/drm.h:599:8: note: ‘pad’ declared here
  599 |  __u32 pad;
      |        ^~~
[17/18] Compiling C object gst/rkximage/libgstrkximage.so.p/ximagesink.c.o
../gst/rkximage/ximagesink.c: In function ‘drm_plane_get_type’:
../gst/rkximage/ximagesink.c:131:17: warning: comparison of integer expressions of different signedness: ‘int’ and ‘uint32_t’ {aka ‘unsigned int’} [-Wsign-compare]
  131 |   for (i = 0; i < props->count_props; i++) {
      |                 ^
../gst/rkximage/ximagesink.c: In function ‘drm_find_plane_for_crtc_by_type’:
../gst/rkximage/ximagesink.c:149:17: warning: comparison of integer expressions of different signedness: ‘int’ and ‘uint32_t’ {aka ‘unsigned int’} [-Wsign-compare]
  149 |     if (crtc_id == res->crtcs[i]) {
      |                 ^~
../gst/rkximage/ximagesink.c:158:17: warning: comparison of integer expressions of different signedness: ‘int’ and ‘uint32_t’ {aka ‘unsigned int’} [-Wsign-compare]
  158 |   for (i = 0; i < pres->count_planes; i++) {
      |                 ^
../gst/rkximage/ximagesink.c: In function ‘drm_find_crtc_for_connector’:
../gst/rkximage/ximagesink.c:202:19: warning: comparison of integer expressions of different signedness: ‘int’ and ‘uint32_t’ {aka ‘unsigned int’} [-Wsign-compare]
  202 |       if (crtc_id == crtc->crtc_id) {
      |                   ^~
../gst/rkximage/ximagesink.c: In function ‘drm_find_used_connector_by_type’:
../gst/rkximage/ximagesink.c:240:33: warning: comparison of integer expressions of different signedness: ‘uint32_t’ {aka ‘unsigned int’} and ‘int’ [-Wsign-compare]
  240 |       if ((conn->connector_type == type)
      |                                 ^~
../gst/rkximage/ximagesink.c: In function ‘drm_find_main_monitor’:
../gst/rkximage/ximagesink.c:280:26: warning: comparison of integer expressions of different signedness: ‘int’ and ‘long unsigned int’ [-Wsign-compare]
  280 |   for (i = 0; !conn && i < G_N_ELEMENTS (priority); i++)
      |                          ^
../gst/rkximage/ximagesink.c: In function ‘check_afbc’:
../gst/rkximage/ximagesink.c:379:17: warning: comparison of integer expressions of different signedness: ‘gint’ {aka ‘int’} and ‘uint32_t’ {aka ‘unsigned int’} [-Wsign-compare]
  379 |   for (i = 0; i < props->count_props && !value; i++) {
      |                 ^
../gst/rkximage/ximagesink.c:408:17: warning: comparison of integer expressions of different signedness: ‘gint’ {aka ‘int’} and ‘__u32’ {aka ‘unsigned int’} [-Wsign-compare]
  408 |   for (i = 0; i < header->count_formats; i++) {
      |                 ^
../gst/rkximage/ximagesink.c:412:19: warning: comparison of integer expressions of different signedness: ‘gint’ {aka ‘int’} and ‘__u32’ {aka ‘unsigned int’} [-Wsign-compare]
  412 |     for (j = 0; j < header->count_modifiers; j++) {
      |                   ^
../gst/rkximage/ximagesink.c:415:14: warning: comparison of integer expressions of different signedness: ‘gint’ {aka ‘int’} and ‘__u32’ {aka ‘unsigned int’} [-Wsign-compare]
  415 |       if ((i < mod->offset) || (i > mod->offset + 63))
      |              ^
../gst/rkximage/ximagesink.c:415:35: warning: comparison of integer expressions of different signedness: ‘gint’ {aka ‘int’} and ‘__u32’ {aka ‘unsigned int’} [-Wsign-compare]
  415 |       if ((i < mod->offset) || (i > mod->offset + 63))
      |                                   ^
../gst/rkximage/ximagesink.c: In function ‘drm_ensure_allowed_caps’:
../gst/rkximage/ximagesink.c:446:17: warning: comparison of integer expressions of different signedness: ‘int’ and ‘uint32_t’ {aka ‘unsigned int’} [-Wsign-compare]
  446 |   for (i = 0; i < plane->count_formats; i++) {
      |                 ^
../gst/rkximage/ximagesink.c: In function ‘drm_plane_set_property’:
../gst/rkximage/ximagesink.c:510:17: warning: comparison of integer expressions of different signedness: ‘int’ and ‘uint32_t’ {aka ‘unsigned int’} [-Wsign-compare]
  510 |   for (i = 0; i < props->count_props; i++) {
      |                 ^
../gst/rkximage/ximagesink.c: In function ‘sync_handler’:
../gst/rkximage/ximagesink.c:884:20: warning: unused parameter ‘fd’ [-Wunused-parameter]
  884 | sync_handler (gint fd, guint frame, guint sec, guint usec, gpointer data)
      |               ~~~~~^~
../gst/rkximage/ximagesink.c:884:30: warning: unused parameter ‘frame’ [-Wunused-parameter]
  884 | sync_handler (gint fd, guint frame, guint sec, guint usec, gpointer data)
      |                        ~~~~~~^~~~~
../gst/rkximage/ximagesink.c:884:43: warning: unused parameter ‘sec’ [-Wunused-parameter]
  884 | sync_handler (gint fd, guint frame, guint sec, guint usec, gpointer data)
      |                                     ~~~~~~^~~
../gst/rkximage/ximagesink.c:884:54: warning: unused parameter ‘usec’ [-Wunused-parameter]
  884 | sync_handler (gint fd, guint frame, guint sec, guint usec, gpointer data)
      |                                                ~~~~~~^~~~
[18/18] Linking target gst/rkximage/libgstrkximage.so
root@firefly:~/mirrors-gstreamer-rockchip/builddir# 
JeffyCN commented 8 months ago

well, check the log again, "unsupported video format" it means the original decode format is not supported.

this logic is in gst_mpp_jpeg_dec_set_format, it parse the src_format from gst's input cap and filter out unsupported format.

did your setup environment changed a lot? i don't understand why it worked at before

JeffyCN commented 8 months ago

maybe try to add a jpegparser before the jpegdec, maybe it's because the cap doesn't contain the original format

NIKovachev commented 8 months ago

I tried to reinstall the linux image, just to be sure it's not messed up. I'm using the stock "AIO-3588Q-EDP_Debian11-r106b_v1.0.6c_230114". The only difference is the mirrors-gstreamer-rockchip. After the meson compile/install I copy the following files manualy:

cp gst/rkximage/libgstrkximage.so to /usr/local/lib/gstreamer-1.0
cp gst/rockchipmpp/libgstrockchipmpp.so to /usr/local/lib/gstreamer-1.0
cp gst/kmssrc/libgstkmssrc.so to /usr/local/lib/gstreamer-1.0

Unfortunately the output is still the same:

root@firefly:~/mirrors-gstreamer-rockchip/builddir# gst-launch-1.0 -v --gst-debug=2 shmsrc socket-path=/var/ramfs/camera_shm ! image/jpeg,width=3840,height=2160,framerate=20/1 ! jpegparse ! mppjpegdec format=RGB dma-feature=1 max-errors=-1 ! fpsdisplaysink video-sink="shmsink socket-path=/var/ramfs/camera_shm_rgb sync=true async=false wait-for-connection=false shm-size=100000000" text-overlay=false -ve
Setting pipeline to PAUSED ...
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0/GstShmSink:shmsink0: sync = true
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0/GstShmSink:shmsink0: sync = true
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:src: caps = image/jpeg, width=(int)3840, height=(int)2160, framerate=(fraction)20/1
/GstPipeline:pipeline0/GstJpegParse:jpegparse0.GstPad:sink: caps = image/jpeg, width=(int)3840, height=(int)2160, framerate=(fraction)20/1
/GstPipeline:pipeline0/GstJpegParse:jpegparse0.GstPad:src: caps = image/jpeg, parsed=(boolean)true, format=(string)UYVY, width=(int)3840, height=(int)2160, framerate=(fraction)20/1
0:00:00.076721811 74032   0x5582aad5e0 WARN              video-info video-info.c:196:validate_colorimetry: color matrix RGB is only supported with RGB format, NV12 is not
0:00:00.076788894 74032   0x5582aad5e0 WARN              video-info video-info.c:520:gst_video_info_from_caps: invalid colorimetry, using default
/GstPipeline:pipeline0/GstMppJpegDec:mppjpegdec0.GstPad:src: caps = video/x-raw(memory:DMABuf), format=(string)RGB, width=(int)3840, height=(int)2160, interlace-mode=(string)progressive, multiview-mode=(string)mono, multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono, pixel-aspect-ratio=(fraction)1/1, colorimetry=(string)sRGB, framerate=(fraction)20/1
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0.GstGhostPad:sink.GstProxyPad:proxypad0: caps = video/x-raw(memory:DMABuf), format=(string)RGB, width=(int)3840, height=(int)2160, interlace-mode=(string)progressive, multiview-mode=(string)mono, multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono, pixel-aspect-ratio=(fraction)1/1, colorimetry=(string)sRGB, framerate=(fraction)20/1
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0/GstShmSink:shmsink0.GstPad:sink: caps = video/x-raw(memory:DMABuf), format=(string)RGB, width=(int)3840, height=(int)2160, interlace-mode=(string)progressive, multiview-mode=(string)mono, multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono, pixel-aspect-ratio=(fraction)1/1, colorimetry=(string)sRGB, framerate=(fraction)20/1
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0.GstGhostPad:sink: caps = video/x-raw(memory:DMABuf), format=(string)RGB, width=(int)3840, height=(int)2160, interlace-mode=(string)progressive, multiview-mode=(string)mono, multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono, pixel-aspect-ratio=(fraction)1/1, colorimetry=(string)sRGB, framerate=(fraction)20/1
/GstPipeline:pipeline0/GstMppJpegDec:mppjpegdec0.GstPad:sink: caps = image/jpeg, parsed=(boolean)true, format=(string)UYVY, width=(int)3840, height=(int)2160, framerate=(fraction)20/1
0:00:00.135118524 74032   0x5582ab0180 WARN                  mppdec gstmppdec.c:591:gst_mpp_dec_get_frame:<mppjpegdec0> MPP is not able to generate pts
0:00:00.135330274 74032   0x5582ab0180 WARN                  mppdec gstmppdec.c:821:gst_mpp_dec_get_gst_buffer:<mppjpegdec0> unable to convert frame
0:00:00.135377816 74032   0x5582ab0180 WARN                  mppdec gstmppdec.c:966:gst_mpp_dec_loop:<mppjpegdec0> can't process this frame
0:00:00.172378721 74032   0x5582ab0180 WARN                  mppdec gstmppdec.c:821:gst_mpp_dec_get_gst_buffer:<mppjpegdec0> unable to convert frame
0:00:00.172437929 74032   0x5582ab0180 WARN                  mppdec gstmppdec.c:966:gst_mpp_dec_loop:<mppjpegdec0> can't process this frame
0:00:00.229863225 74032   0x5582ab0180 WARN                  mppdec gstmppdec.c:821:gst_mpp_dec_get_gst_buffer:<mppjpegdec0> unable to convert frame
0:00:00.229949558 74032   0x5582ab0180 WARN                  mppdec gstmppdec.c:966:gst_mpp_dec_loop:<mppjpegdec0> can't process this frame
0:00:00.292788317 74032   0x5582ab0180 WARN                  mppdec gstmppdec.c:821:gst_mpp_dec_get_gst_buffer:<mppjpegdec0> unable to convert frame
0:00:00.292876400 74032   0x5582ab0180 WARN                  mppdec gstmppdec.c:966:gst_mpp_dec_loop:<mppjpegdec0> can't process this frame
0:00:00.352258114 74032   0x5582ab0180 WARN                  mppdec gstmppdec.c:821:gst_mpp_dec_get_gst_buffer:<mppjpegdec0> unable to convert frame
0:00:00.352331906 74032   0x5582ab0180 WARN                  mppdec gstmppdec.c:966:gst_mpp_dec_loop:<mppjpegdec0> can't process this frame
^Chandling interrupt.
Interrupt: Stopping pipeline ...
EOS on shutdown enabled -- Forcing EOS on the pipeline
Waiting for EOS...
0:00:00.413471996 74032   0x5582ab0180 WARN                  mppdec gstmppdec.c:821:gst_mpp_dec_get_gst_buffer:<mppjpegdec0> unable to convert frame
0:00:00.413531205 74032   0x5582ab0180 WARN                  mppdec gstmppdec.c:966:gst_mpp_dec_loop:<mppjpegdec0> can't process this frame
0:00:00.416944874 74032   0x5582aad5e0 WARN            videodecoder gstvideodecoder.c:1246:gst_video_decoder_sink_event_default:<mppjpegdec0> error: No valid frames decoded before end of stream
0:00:00.417184624 74032   0x5582aad5e0 WARN            videodecoder gstvideodecoder.c:1246:gst_video_decoder_sink_event_default:<mppjpegdec0> error: no valid frames found
ERROR: from element /GstPipeline:pipeline0/GstMppJpegDec:mppjpegdec0: No valid frames decoded before end of stream
Additional debug info:
../gst-libs/gst/video/gstvideodecoder.c(1246): gst_video_decoder_sink_event_default (): /GstPipeline:pipeline0/GstMppJpegDec:mppjpegdec0:
no valid frames found
An error happened while waiting for EOS
Execution ended after 0:00:00.361290747
Setting pipeline to NULL ...
0:00:00.421981962 74032   0x55827fef60 WARN                 shmsink gstshmsink.c:840:pollthread_func:<shmsink0> error: Failed waiting on fd activity
0:00:00.422017253 74032   0x55827fef60 WARN                 shmsink gstshmsink.c:840:pollthread_func:<shmsink0> error: gst_poll_wait returned -1, errno: 16
ERROR: from element /GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0/GstShmSink:shmsink0: Failed waiting on fd activity
Additional debug info:
../sys/shm/gstshmsink.c(840): pollthread_func (): /GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0/GstShmSink:shmsink0:
gst_poll_wait returned -1, errno: 16
An error happened while waiting for EOS
Freeing pipeline ...
root@firefly:~/mirrors-gstreamer-rockchip/builddir# 
JeffyCN commented 8 months ago

the rgba works again right?(it would use mpp's internal postproc to convert)

the bgr is not supported by mpp(gst_mpp_jpeg_dec_pp_formats), so it would use rga instead, so maybe check is there any rga related error log in kernel dmesg

or capture all logs with GST_DEBUG=mpp*:5 and upload it here

NIKovachev commented 8 months ago

Yes ARGB is working fine now! There is an error indeed. The gst.out with gst-debug=5 is attached. The GST_DEBUG=mpp*:5 output is below as well.

root@firefly:~# gst-launch-1.0 -v --gst-debug=5 shmsrc socket-path=/var/ramfs/camera_shm ! image/jpeg,width=3840,height=2160,framerate=20/1 ! mppjpegdec format=RGB dma-feature=1 max-errors=-1 ! fpsdisplaysink video-sink="shmsink socket-path=/var/ramfs/camera_shm_rgb sync=true async=false wait-for-connection=false shm-size=100000000" text-overlay=false -ve &> gst.out 
^Croot@firefly:~tail /var/log/messages 
Dec  5 18:49:59 firefly mpp[15020]: mpp_info: mpp version: 2edfc6db author: Chandler Chen 2022-11-22 [vepu540c_hevc]: fix argb8888 encode error
Dec  5 18:49:59 firefly mpp[15020]: mpp_info: mpp version: 2edfc6db author: Chandler Chen 2022-11-22 [vepu540c_hevc]: fix argb8888 encode error
Dec  5 18:49:59 firefly mpp[15020]: mpp_info: mpp version: 2edfc6db author: Chandler Chen 2022-11-22 [vepu540c_hevc]: fix argb8888 encode error
Dec  5 18:49:59 firefly mpp[15020]: mpp_info: mpp version: 2edfc6db author: Chandler Chen 2022-11-22 [vepu540c_hevc]: fix argb8888 encode error
Dec  5 18:49:59 firefly mpp[15020]: mpp_info: mpp version: 2edfc6db author: Chandler Chen 2022-11-22 [vepu540c_hevc]: fix argb8888 encode error
Dec  5 18:50:44 firefly mpp[15183]: mpp_info: mpp version: 2edfc6db author: Chandler Chen 2022-11-22 [vepu540c_hevc]: fix argb8888 encode error
Dec  5 18:50:44 firefly mpp[15183]: mpp_info: mpp version: 2edfc6db author: Chandler Chen 2022-11-22 [vepu540c_hevc]: fix argb8888 encode error
Dec  5 18:50:44 firefly mpp[15183]: mpp_info: mpp version: 2edfc6db author: Chandler Chen 2022-11-22 [vepu540c_hevc]: fix argb8888 encode error
Dec  5 18:50:44 firefly mpp[15183]: mpp_info: mpp version: 2edfc6db author: Chandler Chen 2022-11-22 [vepu540c_hevc]: fix argb8888 encode error
Dec  5 18:50:44 firefly mpp[15183]: mpp_info: mpp version: 2edfc6db author: Chandler Chen 2022-11-22 [vepu540c_hevc]: fix argb8888 encode error
root@firefly:~# date
Tue Dec  5 18:50:53 UTC 2023
root@firefly:~# 

[gst.zip](https://github.com/JeffyCN/rockchip_mirrors/files/13569727/gst.zip)

The GST_DEBUG=mpp*:5

root@firefly:~# gst-launch-1.0 -v --gst-debug=2 shmsrc socket-path=/var/ramfs/camera_shm ! image/jpeg,width=3840,height=2160,framerate=20/1 ! mppjpegdec format=RGB dma-feature=1 max-errors=-1 ! fpsdisplaysink video-sink="shmsink socket-path=/var/ramfs/camera_shm_rgb sync=true async=false wait-for-connection=false shm-size=100000000" text-overlay=false -ve 
Setting pipeline to PAUSED ...
0:00:00.058264531 15953   0x558cb21d80 DEBUG             mppjpegdec gstmppjpegdec.c:181:gst_mpp_jpeg_dec_start:<mppjpegdec0> starting
0:00:00.058353489 15953   0x558cb21d80 DEBUG                 mppdec gstmppdec.c:247:gst_mpp_dec_start:<mppjpegdec0> starting
0:00:00.058405406 15953   0x558cb21d80 DEBUG                 mppdec gstmppdec.c:271:gst_mpp_dec_start:<mppjpegdec0> started
0:00:00.058412989 15953   0x558cb21d80 DEBUG             mppjpegdec gstmppjpegdec.c:202:gst_mpp_jpeg_dec_start:<mppjpegdec0> started
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0/GstShmSink:shmsink0: sync = true
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
0:00:00.059091989 15953   0x558cb318c0 DEBUG                 mppdec gstmppdec.c:326:gst_mpp_dec_drain:<mppjpegdec0> draining
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0/GstShmSink:shmsink0: sync = true
0:00:00.059139239 15953   0x558cb318c0 DEBUG                 mppdec gstmppdec.c:225:gst_mpp_dec_reset:<mppjpegdec0> resetting
0:00:00.095072883 15953   0x558cb318c0 DEBUG                 mppdec gstmppdec.c:348:gst_mpp_dec_set_format:<mppjpegdec0> setting format: image/jpeg, width=(int)3840, height=(int)2160, framerate=(fraction)20/1, parsed=(boolean)true
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:src: caps = image/jpeg, width=(int)3840, height=(int)2160, framerate=(fraction)20/1, parsed=(boolean)true
0:00:00.097000217 15953   0x558cb318c0 DEBUG                    mpp gstmpp.c:344:gst_mpp_video_info_update_format: update format to RGB (3840x2160)
0:00:00.097291593 15953   0x558cb318c0 INFO              mppjpegdec gstmppjpegdec.c:296:gst_mpp_jpeg_dec_set_format:<mppjpegdec0> convert from NV12 (3840x2160) to RGB (3840x2160)
0:00:00.097340593 15953   0x558cb318c0 DEBUG                    mpp gstmpp.c:344:gst_mpp_video_info_update_format: update format to NV12 (3840x2160)
0:00:00.097477384 15953   0x558cb318c0 WARN              video-info video-info.c:196:validate_colorimetry: color matrix RGB is only supported with RGB format, NV12 is not
0:00:00.097517634 15953   0x558cb318c0 WARN              video-info video-info.c:520:gst_video_info_from_caps: invalid colorimetry, using default
/GstPipeline:pipeline0/GstMppJpegDec:mppjpegdec0.GstPad:src: caps = video/x-raw(memory:DMABuf), format=(string)RGB, width=(int)3840, height=(int)2160, interlace-mode=(string)progressive, multiview-mode=(string)mono, multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono, pixel-aspect-ratio=(fraction)1/1, colorimetry=(string)sRGB, framerate=(fraction)20/1
0:00:00.098501260 15953   0x558cb318c0 WARN            videodecoder gstvideodecoder.c:2573:gst_video_decoder_chain:<mppjpegdec0> Received buffer without a new-segment. Assuming timestamps start from 0.
0:00:00.098544427 15953   0x558cb318c0 DEBUG                 mppdec gstmppdec.c:988:gst_mpp_dec_handle_frame:<mppjpegdec0> handling frame 0
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0.GstGhostPad:sink.GstProxyPad:proxypad0: caps = video/x-raw(memory:DMABuf), format=(string)RGB, width=(int)3840, height=(int)2160, interlace-mode=(string)progressive, multiview-mode=(string)mono, multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono, pixel-aspect-ratio=(fraction)1/1, colorimetry=(string)sRGB, framerate=(fraction)20/1
0:00:00.098617343 15953   0x558cb318c0 DEBUG                 mppdec gstmppdec.c:1008:gst_mpp_dec_handle_frame:<mppjpegdec0> starting decoding thread
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0/GstShmSink:shmsink0.GstPad:sink: caps = video/x-raw(memory:DMABuf), format=(string)RGB, width=(int)3840, height=(int)2160, interlace-mode=(string)progressive, multiview-mode=(string)mono, multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono, pixel-aspect-ratio=(fraction)1/1, colorimetry=(string)sRGB, framerate=(fraction)20/1
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0.GstGhostPad:sink: caps = video/x-raw(memory:DMABuf), format=(string)RGB, width=(int)3840, height=(int)2160, interlace-mode=(string)progressive, multiview-mode=(string)mono, multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono, pixel-aspect-ratio=(fraction)1/1, colorimetry=(string)sRGB, framerate=(fraction)20/1
/GstPipeline:pipeline0/GstMppJpegDec:mppjpegdec0.GstPad:sink: caps = image/jpeg, width=(int)3840, height=(int)2160, framerate=(fraction)20/1, parsed=(boolean)true
0:00:00.152787247 15953   0x558cb318c0 DEBUG                 mppdec gstmppdec.c:988:gst_mpp_dec_handle_frame:<mppjpegdec0> handling frame 1
0:00:00.159583375 15953   0x558cb34180 WARN                  mppdec gstmppdec.c:591:gst_mpp_dec_get_frame:<mppjpegdec0> MPP is not able to generate pts
0:00:00.159627125 15953   0x558cb34180 DEBUG                 mppdec gstmppdec.c:607:gst_mpp_dec_get_frame:<mppjpegdec0> using original pts
0:00:00.159645209 15953   0x558cb34180 DEBUG                 mppdec gstmppdec.c:609:gst_mpp_dec_get_frame:<mppjpegdec0> using first frame (#1)
0:00:00.159661834 15953   0x558cb34180 DEBUG           mppallocator gstmppallocator.c:162:gst_mpp_allocator_import_mppbuf:<mppallocator0> import MPP buffer
0:00:00.159791917 15953   0x558cb34180 WARN                  mppdec gstmppdec.c:821:gst_mpp_dec_get_gst_buffer:<mppjpegdec0> unable to convert frame
0:00:00.159834500 15953   0x558cb34180 WARN                  mppdec gstmppdec.c:966:gst_mpp_dec_loop:<mppjpegdec0> can't process this frame
0:00:00.159846459 15953   0x558cb34180 DEBUG                 mppdec gstmppdec.c:969:gst_mpp_dec_loop:<mppjpegdec0> drop frame
0:00:00.196970686 15953   0x558cb34180 DEBUG                 mppdec gstmppdec.c:625:gst_mpp_dec_get_frame:<mppjpegdec0> receiving pts=99:99:99.999999999
0:00:00.197010645 15953   0x558cb34180 DEBUG                 mppdec gstmppdec.c:646:gst_mpp_dec_get_frame:<mppjpegdec0> using matched frame (#0)
0:00:00.197029311 15953   0x558cb34180 DEBUG           mppallocator gstmppallocator.c:162:gst_mpp_allocator_import_mppbuf:<mppallocator0> import MPP buffer
0:00:00.197063436 15953   0x558cb34180 WARN                  mppdec gstmppdec.c:821:gst_mpp_dec_get_gst_buffer:<mppjpegdec0> unable to convert frame
0:00:00.197100770 15953   0x558cb34180 WARN                  mppdec gstmppdec.c:966:gst_mpp_dec_loop:<mppjpegdec0> can't process this frame
0:00:00.197125853 15953   0x558cb34180 DEBUG                 mppdec gstmppdec.c:969:gst_mpp_dec_loop:<mppjpegdec0> drop frame
0:00:00.212447236 15953   0x558cb318c0 DEBUG                 mppdec gstmppdec.c:988:gst_mpp_dec_handle_frame:<mppjpegdec0> handling frame 2
0:00:00.251028923 15953   0x558cb34180 DEBUG                 mppdec gstmppdec.c:625:gst_mpp_dec_get_frame:<mppjpegdec0> receiving pts=99:99:99.999999999
0:00:00.251160465 15953   0x558cb34180 DEBUG                 mppdec gstmppdec.c:696:gst_mpp_dec_get_frame:<mppjpegdec0> using guested frame (#2)
0:00:00.251241548 15953   0x558cb34180 DEBUG           mppallocator gstmppallocator.c:162:gst_mpp_allocator_import_mppbuf:<mppallocator0> import MPP buffer
0:00:00.251332256 15953   0x558cb34180 WARN                  mppdec gstmppdec.c:821:gst_mpp_dec_get_gst_buffer:<mppjpegdec0> unable to convert frame
0:00:00.251389715 15953   0x558cb34180 WARN                  mppdec gstmppdec.c:966:gst_mpp_dec_loop:<mppjpegdec0> can't process this frame
0:00:00.251421215 15953   0x558cb34180 DEBUG                 mppdec gstmppdec.c:969:gst_mpp_dec_loop:<mppjpegdec0> drop frame
0:00:00.273747643 15953   0x558cb318c0 DEBUG                 mppdec gstmppdec.c:988:gst_mpp_dec_handle_frame:<mppjpegdec0> handling frame 3
0:00:00.309688120 15953   0x558cb34180 DEBUG                 mppdec gstmppdec.c:625:gst_mpp_dec_get_frame:<mppjpegdec0> receiving pts=99:99:99.999999999
0:00:00.309728954 15953   0x558cb34180 DEBUG                 mppdec gstmppdec.c:696:gst_mpp_dec_get_frame:<mppjpegdec0> using guested frame (#3)
0:00:00.309748204 15953   0x558cb34180 DEBUG           mppallocator gstmppallocator.c:162:gst_mpp_allocator_import_mppbuf:<mppallocator0> import MPP buffer
0:00:00.309788162 15953   0x558cb34180 WARN                  mppdec gstmppdec.c:821:gst_mpp_dec_get_gst_buffer:<mppjpegdec0> unable to convert frame
0:00:00.309832204 15953   0x558cb34180 WARN                  mppdec gstmppdec.c:966:gst_mpp_dec_loop:<mppjpegdec0> can't process this frame
0:00:00.309856704 15953   0x558cb34180 DEBUG                 mppdec gstmppdec.c:969:gst_mpp_dec_loop:<mppjpegdec0> drop frame
0:00:00.334442383 15953   0x558cb318c0 DEBUG                 mppdec gstmppdec.c:988:gst_mpp_dec_handle_frame:<mppjpegdec0> handling frame 4
0:00:00.372293861 15953   0x558cb34180 DEBUG                 mppdec gstmppdec.c:625:gst_mpp_dec_get_frame:<mppjpegdec0> receiving pts=99:99:99.999999999
0:00:00.372343736 15953   0x558cb34180 DEBUG                 mppdec gstmppdec.c:696:gst_mpp_dec_get_frame:<mppjpegdec0> using guested frame (#4)
0:00:00.372391278 15953   0x558cb34180 DEBUG           mppallocator gstmppallocator.c:162:gst_mpp_allocator_import_mppbuf:<mppallocator0> import MPP buffer
0:00:00.372450195 15953   0x558cb34180 WARN                  mppdec gstmppdec.c:821:gst_mpp_dec_get_gst_buffer:<mppjpegdec0> unable to convert frame
0:00:00.372488112 15953   0x558cb34180 WARN                  mppdec gstmppdec.c:966:gst_mpp_dec_loop:<mppjpegdec0> can't process this frame
0:00:00.372512903 15953   0x558cb34180 DEBUG                 mppdec gstmppdec.c:969:gst_mpp_dec_loop:<mppjpegdec0> drop frame
0:00:00.393301206 15953   0x558cb318c0 DEBUG                 mppdec gstmppdec.c:988:gst_mpp_dec_handle_frame:<mppjpegdec0> handling frame 5
0:00:00.429577016 15953   0x558cb34180 DEBUG                 mppdec gstmppdec.c:625:gst_mpp_dec_get_frame:<mppjpegdec0> receiving pts=99:99:99.999999999
0:00:00.429624850 15953   0x558cb34180 DEBUG                 mppdec gstmppdec.c:696:gst_mpp_dec_get_frame:<mppjpegdec0> using guested frame (#5)
0:00:00.429675600 15953   0x558cb34180 DEBUG           mppallocator gstmppallocator.c:162:gst_mpp_allocator_import_mppbuf:<mppallocator0> import MPP buffer
0:00:00.429731891 15953   0x558cb34180 WARN                  mppdec gstmppdec.c:821:gst_mpp_dec_get_gst_buffer:<mppjpegdec0> unable to convert frame
0:00:00.429769516 15953   0x558cb34180 WARN                  mppdec gstmppdec.c:966:gst_mpp_dec_loop:<mppjpegdec0> can't process this frame
0:00:00.429794308 15953   0x558cb34180 DEBUG                 mppdec gstmppdec.c:969:gst_mpp_dec_loop:<mppjpegdec0> drop frame
0:00:00.455737488 15953   0x558cb318c0 DEBUG                 mppdec gstmppdec.c:988:gst_mpp_dec_handle_frame:<mppjpegdec0> handling frame 6
0:00:00.492279007 15953   0x558cb34180 DEBUG                 mppdec gstmppdec.c:625:gst_mpp_dec_get_frame:<mppjpegdec0> receiving pts=99:99:99.999999999
0:00:00.492327716 15953   0x558cb34180 DEBUG                 mppdec gstmppdec.c:696:gst_mpp_dec_get_frame:<mppjpegdec0> using guested frame (#6)
0:00:00.492378174 15953   0x558cb34180 DEBUG           mppallocator gstmppallocator.c:162:gst_mpp_allocator_import_mppbuf:<mppallocator0> import MPP buffer
0:00:00.492433883 15953   0x558cb34180 WARN                  mppdec gstmppdec.c:821:gst_mpp_dec_get_gst_buffer:<mppjpegdec0> unable to convert frame
0:00:00.492472674 15953   0x558cb34180 WARN                  mppdec gstmppdec.c:966:gst_mpp_dec_loop:<mppjpegdec0> can't process this frame
0:00:00.492497758 15953   0x558cb34180 DEBUG                 mppdec gstmppdec.c:969:gst_mpp_dec_loop:<mppjpegdec0> drop frame
0:00:00.513958352 15953   0x558cb318c0 DEBUG                 mppdec gstmppdec.c:988:gst_mpp_dec_handle_frame:<mppjpegdec0> handling frame 7
0:00:00.549633579 15953   0x558cb34180 DEBUG                 mppdec gstmppdec.c:625:gst_mpp_dec_get_frame:<mppjpegdec0> receiving pts=99:99:99.999999999
0:00:00.549681704 15953   0x558cb34180 DEBUG                 mppdec gstmppdec.c:696:gst_mpp_dec_get_frame:<mppjpegdec0> using guested frame (#7)
0:00:00.549702996 15953   0x558cb34180 DEBUG           mppallocator gstmppallocator.c:162:gst_mpp_allocator_import_mppbuf:<mppallocator0> import MPP buffer
0:00:00.549761329 15953   0x558cb34180 WARN                  mppdec gstmppdec.c:821:gst_mpp_dec_get_gst_buffer:<mppjpegdec0> unable to convert frame
0:00:00.549799246 15953   0x558cb34180 WARN                  mppdec gstmppdec.c:966:gst_mpp_dec_loop:<mppjpegdec0> can't process this frame
0:00:00.549823454 15953   0x558cb34180 DEBUG                 mppdec gstmppdec.c:969:gst_mpp_dec_loop:<mppjpegdec0> drop frame
0:00:00.571689132 15953   0x558cb318c0 DEBUG                 mppdec gstmppdec.c:988:gst_mpp_dec_handle_frame:<mppjpegdec0> handling frame 8
0:00:00.608391360 15953   0x558cb34180 DEBUG                 mppdec gstmppdec.c:625:gst_mpp_dec_get_frame:<mppjpegdec0> receiving pts=99:99:99.999999999
0:00:00.608442693 15953   0x558cb34180 DEBUG                 mppdec gstmppdec.c:696:gst_mpp_dec_get_frame:<mppjpegdec0> using guested frame (#8)
0:00:00.608495777 15953   0x558cb34180 DEBUG           mppallocator gstmppallocator.c:162:gst_mpp_allocator_import_mppbuf:<mppallocator0> import MPP buffer
0:00:00.608557027 15953   0x558cb34180 WARN                  mppdec gstmppdec.c:821:gst_mpp_dec_get_gst_buffer:<mppjpegdec0> unable to convert frame
0:00:00.608600777 15953   0x558cb34180 WARN                  mppdec gstmppdec.c:966:gst_mpp_dec_loop:<mppjpegdec0> can't process this frame
0:00:00.608629360 15953   0x558cb34180 DEBUG                 mppdec gstmppdec.c:969:gst_mpp_dec_loop:<mppjpegdec0> drop frame
0:00:00.632346289 15953   0x558cb318c0 DEBUG                 mppdec gstmppdec.c:988:gst_mpp_dec_handle_frame:<mppjpegdec0> handling frame 9
0:00:00.666387599 15953   0x558cb34180 DEBUG                 mppdec gstmppdec.c:625:gst_mpp_dec_get_frame:<mppjpegdec0> receiving pts=99:99:99.999999999
0:00:00.666437765 15953   0x558cb34180 DEBUG                 mppdec gstmppdec.c:696:gst_mpp_dec_get_frame:<mppjpegdec0> using guested frame (#9)
0:00:00.666489099 15953   0x558cb34180 DEBUG           mppallocator gstmppallocator.c:162:gst_mpp_allocator_import_mppbuf:<mppallocator0> import MPP buffer
0:00:00.666543057 15953   0x558cb34180 WARN                  mppdec gstmppdec.c:821:gst_mpp_dec_get_gst_buffer:<mppjpegdec0> unable to convert frame
0:00:00.666579515 15953   0x558cb34180 WARN                  mppdec gstmppdec.c:966:gst_mpp_dec_loop:<mppjpegdec0> can't process this frame
0:00:00.666605182 15953   0x558cb34180 DEBUG                 mppdec gstmppdec.c:969:gst_mpp_dec_loop:<mppjpegdec0> drop frame
0:00:00.692766529 15953   0x558cb318c0 DEBUG                 mppdec gstmppdec.c:988:gst_mpp_dec_handle_frame:<mppjpegdec0> handling frame 10
0:00:00.728506548 15953   0x558cb34180 DEBUG                 mppdec gstmppdec.c:625:gst_mpp_dec_get_frame:<mppjpegdec0> receiving pts=99:99:99.999999999
0:00:00.728576256 15953   0x558cb34180 DEBUG                 mppdec gstmppdec.c:696:gst_mpp_dec_get_frame:<mppjpegdec0> using guested frame (#10)
0:00:00.728599881 15953   0x558cb34180 DEBUG           mppallocator gstmppallocator.c:162:gst_mpp_allocator_import_mppbuf:<mppallocator0> import MPP buffer
0:00:00.728654715 15953   0x558cb34180 WARN                  mppdec gstmppdec.c:821:gst_mpp_dec_get_gst_buffer:<mppjpegdec0> unable to convert frame
0:00:00.728698173 15953   0x558cb34180 WARN                  mppdec gstmppdec.c:966:gst_mpp_dec_loop:<mppjpegdec0> can't process this frame
0:00:00.728711006 15953   0x558cb34180 DEBUG                 mppdec gstmppdec.c:969:gst_mpp_dec_loop:<mppjpegdec0> drop frame
0:00:00.752190019 15953   0x558cb318c0 DEBUG                 mppdec gstmppdec.c:988:gst_mpp_dec_handle_frame:<mppjpegdec0> handling frame 11
0:00:00.786292411 15953   0x558cb34180 DEBUG                 mppdec gstmppdec.c:625:gst_mpp_dec_get_frame:<mppjpegdec0> receiving pts=99:99:99.999999999
0:00:00.786348995 15953   0x558cb34180 DEBUG                 mppdec gstmppdec.c:696:gst_mpp_dec_get_frame:<mppjpegdec0> using guested frame (#11)
0:00:00.786401786 15953   0x558cb34180 DEBUG           mppallocator gstmppallocator.c:162:gst_mpp_allocator_import_mppbuf:<mppallocator0> import MPP buffer
0:00:00.786461287 15953   0x558cb34180 WARN                  mppdec gstmppdec.c:821:gst_mpp_dec_get_gst_buffer:<mppjpegdec0> unable to convert frame
0:00:00.786500078 15953   0x558cb34180 WARN                  mppdec gstmppdec.c:966:gst_mpp_dec_loop:<mppjpegdec0> can't process this frame
0:00:00.786524870 15953   0x558cb34180 DEBUG                 mppdec gstmppdec.c:969:gst_mpp_dec_loop:<mppjpegdec0> drop frame
0:00:00.814199593 15953   0x558cb318c0 DEBUG                 mppdec gstmppdec.c:988:gst_mpp_dec_handle_frame:<mppjpegdec0> handling frame 12
^Chandling interrupt.
Interrupt: Stopping pipeline ...
EOS on shutdown enabled -- Forcing EOS on the pipeline
Waiting for EOS...
0:00:00.850462070 15953   0x558cb318c0 DEBUG                 mppdec gstmppdec.c:334:gst_mpp_dec_finish:<mppjpegdec0> finishing
0:00:00.850509903 15953   0x558cb318c0 DEBUG                 mppdec gstmppdec.c:225:gst_mpp_dec_reset:<mppjpegdec0> resetting
0:00:00.850539070 15953   0x558cb318c0 DEBUG                 mppdec gstmppdec.c:200:gst_mpp_dec_stop_task:<mppjpegdec0> stopping decoding thread
0:00:00.850565612 15953   0x558cb318c0 DEBUG             mppjpegdec gstmppjpegdec.c:435:gst_mpp_jpeg_dec_shutdown:<mppjpegdec0> sending EOS
0:00:00.851435362 15953   0x558cb34180 DEBUG                 mppdec gstmppdec.c:625:gst_mpp_dec_get_frame:<mppjpegdec0> receiving pts=99:99:99.999999999
0:00:00.851453737 15953   0x558cb34180 DEBUG                 mppdec gstmppdec.c:696:gst_mpp_dec_get_frame:<mppjpegdec0> using guested frame (#12)
0:00:00.851466571 15953   0x558cb34180 DEBUG           mppallocator gstmppallocator.c:162:gst_mpp_allocator_import_mppbuf:<mppallocator0> import MPP buffer
0:00:00.851494862 15953   0x558cb34180 WARN                  mppdec gstmppdec.c:821:gst_mpp_dec_get_gst_buffer:<mppjpegdec0> unable to convert frame
0:00:00.851510029 15953   0x558cb34180 WARN                  mppdec gstmppdec.c:966:gst_mpp_dec_loop:<mppjpegdec0> can't process this frame
0:00:00.851516737 15953   0x558cb34180 DEBUG                 mppdec gstmppdec.c:969:gst_mpp_dec_loop:<mppjpegdec0> drop frame
0:00:00.851708654 15953   0x558cb34180 INFO                  mppdec gstmppdec.c:944:gst_mpp_dec_loop:<mppjpegdec0> got eos
0:00:00.851718862 15953   0x558cb34180 DEBUG                 mppdec gstmppdec.c:951:gst_mpp_dec_loop:<mppjpegdec0> leaving output thread: eos
0:00:00.855199031 15953   0x558cb318c0 WARN            videodecoder gstvideodecoder.c:1246:gst_video_decoder_sink_event_default:<mppjpegdec0> error: No valid frames decoded before end of stream
0:00:00.855283031 15953   0x558cb318c0 WARN            videodecoder gstvideodecoder.c:1246:gst_video_decoder_sink_event_default:<mppjpegdec0> error: no valid frames found
ERROR: from element /GstPipeline:pipeline0/GstMppJpegDec:mppjpegdec0: No valid frames decoded before end of stream
Additional debug info:
../gst-libs/gst/video/gstvideodecoder.c(1246): gst_video_decoder_sink_event_default (): /GstPipeline:pipeline0/GstMppJpegDec:mppjpegdec0:
no valid frames found
An error happened while waiting for EOS
Execution ended after 0:00:00.797258709
Setting pipeline to NULL ...
0:00:00.859647408 15953   0x558cb21d80 DEBUG                 mppdec gstmppdec.c:225:gst_mpp_dec_reset:<mppjpegdec0> resetting
0:00:00.859741617 15953   0x558cb21d80 DEBUG             mppjpegdec gstmppjpegdec.c:213:gst_mpp_jpeg_dec_stop:<mppjpegdec0> stopping
0:00:00.859784492 15953   0x558cb21d80 DEBUG                 mppdec gstmppdec.c:293:gst_mpp_dec_stop:<mppjpegdec0> stopping
0:00:00.859822700 15953   0x558cb21d80 DEBUG                 mppdec gstmppdec.c:225:gst_mpp_dec_reset:<mppjpegdec0> resetting
0:00:00.860760700 15953   0x558cb21d80 DEBUG                 mppdec gstmppdec.c:310:gst_mpp_dec_stop:<mppjpegdec0> stopped
0:00:00.861070742 15953   0x558cb21d80 DEBUG             mppjpegdec gstmppjpegdec.c:220:gst_mpp_jpeg_dec_stop:<mppjpegdec0> stopped
0:00:00.862125409 15953   0x558c889f60 WARN                 shmsink gstshmsink.c:840:pollthread_func:<shmsink0> error: Failed waiting on fd activity
0:00:00.862183743 15953   0x558c889f60 WARN                 shmsink gstshmsink.c:840:pollthread_func:<shmsink0> error: gst_poll_wait returned -1, errno: 16
ERROR: from element /GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0/GstShmSink:shmsink0: Failed waiting on fd activity
Additional debug info:
../sys/shm/gstshmsink.c(840): pollthread_func (): /GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0/GstShmSink:shmsink0:
gst_poll_wait returned -1, errno: 16
An error happened while waiting for EOS
Freeing pipeline ...
root@firefly:~# tail /var/log/messages 
Dec  5 18:54:15 firefly mpp[15906]: mpp_info: mpp version: 2edfc6db author: Chandler Chen 2022-11-22 [vepu540c_hevc]: fix argb8888 encode error
Dec  5 18:54:15 firefly mpp[15906]: mpp_info: mpp version: 2edfc6db author: Chandler Chen 2022-11-22 [vepu540c_hevc]: fix argb8888 encode error
Dec  5 18:54:15 firefly mpp[15906]: mpp_info: mpp version: 2edfc6db author: Chandler Chen 2022-11-22 [vepu540c_hevc]: fix argb8888 encode error
Dec  5 18:54:15 firefly mpp[15906]: mpp_info: mpp version: 2edfc6db author: Chandler Chen 2022-11-22 [vepu540c_hevc]: fix argb8888 encode error
Dec  5 18:54:15 firefly mpp[15906]: mpp_info: mpp version: 2edfc6db author: Chandler Chen 2022-11-22 [vepu540c_hevc]: fix argb8888 encode error
Dec  5 18:54:26 firefly mpp[15953]: mpp_info: mpp version: 2edfc6db author: Chandler Chen 2022-11-22 [vepu540c_hevc]: fix argb8888 encode error
Dec  5 18:54:26 firefly mpp[15953]: mpp_info: mpp version: 2edfc6db author: Chandler Chen 2022-11-22 [vepu540c_hevc]: fix argb8888 encode error
Dec  5 18:54:26 firefly mpp[15953]: mpp_info: mpp version: 2edfc6db author: Chandler Chen 2022-11-22 [vepu540c_hevc]: fix argb8888 encode error
Dec  5 18:54:26 firefly mpp[15953]: mpp_info: mpp version: 2edfc6db author: Chandler Chen 2022-11-22 [vepu540c_hevc]: fix argb8888 encode error
Dec  5 18:54:26 firefly mpp[15953]: mpp_info: mpp version: 2edfc6db author: Chandler Chen 2022-11-22 [vepu540c_hevc]: fix argb8888 encode error
root@firefly:~# date
Tue Dec  5 18:54:30 UTC 2023
root@firefly:~# 
JeffyCN commented 8 months ago

it looks like rga is disabled, maybe check the env(run export), is there something like GST_MPP_NO_RGA=1? is so, try to unset it

NIKovachev commented 8 months ago

That fixed the issue!! I have no idea how that variable was set. I really appreciate your support, thank you!

For future reference GST_MPP_NO_RGA was 1, I set it to 0 and it works:

root@firefly:~# env|grep GST
GST_V4L2_PREFERRED_FOURCC=NV12:YU12:NV16:YUY2
GST_VIDEO_CONVERT_PREFERRED_FORMAT=NV12:NV16:I420:YUY2
GST_MPP_NO_RGA=0
GST_GL_PLATFORM=egl
GST_V4L2_USE_LIBV4L2=1
GST_INSPECT_NO_COLORS=1
GST_DEBUG_NO_COLOR=1
GST_V4L2SRC_DEFAULT_DEVICE=/dev/video-camera0
GST_V4L2SRC_RK_DEVICES=_mainpath:_selfpath:_bypass:_scale
GST_GL_API=gles2
GST_V4L2SRC_MAX_RESOLUTION=3840x2160
GST_MPP_VIDEODEC_DEFAULT_ARM_AFBC=1
root@firefly:~#