Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Property intra-refresh-type set to cyclic or both #22

Closed
towolf opened this issue Mar 18, 2015 · 17 comments
Closed

Property intra-refresh-type set to cyclic or both #22

towolf opened this issue Mar 18, 2015 · 17 comments

Comments

@towolf
Copy link

towolf commented Mar 18, 2015

I’m kinda sure this worked before. But now when I set intra-refresh-type=cyclic or intra-refresh-type=both it bombs out.

mmal: mmal_vc_port_enable: failed to enable port vc.ril.video_encode:in:0(OPQV): EINVAL
mmal: mmal_port_enable: failed to enable connected port (vc.ril.video_encode:in:0(OPQV))0x72104240 (EINVAL)
mmal: mmal_connection_enable: output port couldn't be enabled
ERROR: from element /GstPipeline:pipeline0/GstRpiCamSrc:rpicamsrc0: Internal data flow error.
@thaytan
Copy link
Owner

thaytan commented Mar 24, 2015

Both cyclic and both are working OK for me. Have you tried rpi-update and a reboot?

@thaytan
Copy link
Owner

thaytan commented Apr 9, 2015

Any update for me?

@towolf
Copy link
Author

towolf commented Apr 9, 2015

Sorry, missed your previous comment. I’m using Archlinux ARM on Rpi B 2. Firmware is raspberrypi-firmware-20150406-1. I’ve rebooted.

root@paitu:~# gst-launch-1.0 rpicamsrc bitrate=5000000 inline-headers=true intra-refresh-type=cyclic metering-mode=matrix annotation-mode=0x00000300 preview=false  ! 'video/x-h264,profile=baseline,width=1024,height=768,framerate=30/1' ! h264parse ! rtph264pay config-interval=1 pt=96 ! udpsink host=10.0.0.9 port=9000 sync=false async=true
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
mmal: mmal_vc_port_enable: failed to enable port vc.ril.video_encode:in:0(OPQV): EINVAL
mmal: mmal_port_enable: failed to enable connected port (vc.ril.video_encode:in:0(OPQV))0x72004240 (EINVAL)
mmal: mmal_connection_enable: output port couldn't be enabled
ERROR: from element /GstPipeline:pipeline0/GstRpiCamSrc:rpicamsrc0: Internal data flow error.
Additional debug info:
gstbasesrc.c(2933): gst_base_src_loop (): /GstPipeline:pipeline0/GstRpiCamSrc:rpicamsrc0:
streaming task paused, reason error (-5)
Execution ended after 0:00:00.199651609
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
Setting pipeline to NULL ...
Freeing pipeline ...
root@paitu:~# gst-launch-1.0 rpicamsrc bitrate=5000000 inline-headers=true intra-refresh-type=both metering-mode=matrix annotation-mode=0x00000300 preview=false  ! 'video/x-h264,profile=baseline,width=1024,height=768,framerate=30/1' ! h264parse ! rtph264pay config-interval=1 pt=96 ! udpsink host=10.0.0.9 port=9000 sync=false async=true
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
mmal: mmal_vc_port_enable: failed to enable port vc.ril.video_encode:in:0(OPQV): EINVAL
mmal: mmal_port_enable: failed to enable connected port (vc.ril.video_encode:in:0(OPQV))0x72104240 (EINVAL)
mmal: mmal_connection_enable: output port couldn't be enabled
ERROR: from element /GstPipeline:pipeline0/GstRpiCamSrc:rpicamsrc0: Internal data flow error.
Additional debug info:
gstbasesrc.c(2933): gst_base_src_loop (): /GstPipeline:pipeline0/GstRpiCamSrc:rpicamsrc0:
streaming task paused, reason error (-5)
Execution ended after 0:00:00.196840156
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
Setting pipeline to NULL ...
Freeing pipeline ...
root@paitu:~# gst-launch-1.0 rpicamsrc bitrate=5000000 inline-headers=true intra-refresh-type=cyclic-rows metering-mode=matrix annotation-mode=0x00000300 preview=false  ! 'video/x-h264,profile=baseline,width=1024,height=768,framerate=30/1' ! h264parse ! rtph264pay config-interval=1 pt=96 ! udpsink host=10.0.0.9 port=9000 sync=false async=true
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
^Chandling interrupt.
Interrupt: Stopping pipeline ...
Execution ended after 0:00:02.998113228
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
Setting pipeline to NULL ...
Freeing pipeline ...

Will rebuild gst-rpicam from make distclean now. Dunno if that’s gonna make a difference.

@towolf
Copy link
Author

towolf commented Apr 9, 2015

Rebuilt the module. Even with simple pipeline it errors out with same error.

gst-launch-1.0 rpicamsrc intra-refresh-type=cyclic ! fakesink

@thaytan
Copy link
Owner

thaytan commented Apr 17, 2015

Your test pipeline above failed for me this morning too. While I was trying to strip it down to compare against the pipeline that worked before, it suddenly started working. Now the full pipeline works again. I think the initialisation is racy. I'll try and see if it's in gst-rpicamsrc, or if it's a race inside the DSP init. The latter seems likely, since it's linked to intra-refresh-cyclic - which is just another property as far as gst-rpicamsrc is concerned.

Try running this and see if it ever eventually works for you:

while true; do gst-launch-1.0 rpicamsrc bitrate=5000000 inline-headers=true intra-refresh-type=cyclic-rows metering-mode=matrix annotation-mode=0x00000300 preview=false ! 'video/x-h264,profile=baseline,width=1024,height=768,framerate=30/1' ! h264parse ! rtph264pay config-interval=1 pt=96 ! udpsink host=10.0.0.9 port=9000 sync=false async=true; done

@towolf
Copy link
Author

towolf commented Apr 20, 2015

Well, cyclic-rows always works. You meant I should test cyclic or both, I suppose?

I ran your loop with cyclic for a couple minutes. First try after 577 iterations/tries it stuck and ran. Second try it filled my (8192 rows) terminal scrollback and I canceled. Third try I booted fresh and inserted echo with iteration number. Canceled this at 5000 iterations. Then tried both, which worked after 1332 iterations

This is on Rpi 2. Could it be a multi-core/threading issue?

@thaytan
Copy link
Owner

thaytan commented Apr 20, 2015

Ah, oops - I pasted the wrong line. Yes - cyclic-rows always works for me too, which is funny because it was the one value I'd mapped incorrectly and was setting a bogus value to MMAL. With that fixed, it now regularly fails as well. I guess mmal was ignoring the bogus value.

I'm testing on an RPi1 - so not an RPi2 specific issue.

I wonder if it's an uninitialised-memory use issue - if it happens to be zero or so it works. I can't install valgrind (seems to be a raspbian repo issue) without compiling it first to see if there's an uninited access anywhere in userspace.

@towolf
Copy link
Author

towolf commented Apr 20, 2015

Yes - cyclic-rows always works for me too, which is funny because it was the one value I'd mapped incorrectly and was setting a bogus value to MMAL.

Aha. That’s why I was trying the other one. Because this one didn’t seem to have any effect.

I can't install valgrind (seems to be a raspbian repo issue) without compiling it first to see if there's an uninited access anywhere in userspace.

Arch has valgrind. Do you want me to run something and paste the output?

root@paitu:~# pacman -Ss valgrind
extra/valgrind 3.10.1-1
    A tool to help find memory-management problems in programs

@thaytan
Copy link
Owner

thaytan commented Apr 20, 2015

Oh, yes please -

G_SLICE=always-malloc G_DEBUG=gc-friendly valgrind --leak-resolution=high --leak-check=yes --num-callers=20 --alignment=16 gst-launch-1.0 rpicamsrc intra-refresh-type=both num-buffers=5 ! fakesink

might do the trick.

@towolf
Copy link
Author

towolf commented Apr 20, 2015

It’s sitting there spinning CPU3. Gotto go to garden center to buy some plants. Will update if it finishes by the time I get back. memcheck-arm-li is at 100% CPU.

root@paitu:~# G_SLICE=always-malloc G_DEBUG=gc-friendly valgrind --leak-resolution=high --leak-check=yes --num-callers=20 --alignment=16 gst-launch-1.0 rpicamsrc intra-refresh-type=both num-buffers=5 ! fakesink
==9551== Memcheck, a memory error detector
==9551== Copyright (C) 2002-2013, and GNU GPL'd, by Julian Seward et al.
==9551== Using Valgrind-3.10.1 and LibVEX; rerun with -h for copyright info
==9551== Command: gst-launch-1.0 rpicamsrc intra-refresh-type=both num-buffers=5 ! fakesink
==9551== 
==9551== Invalid read of size 4
==9551==    at 0x4019974: index (in /usr/lib/ld-2.20.so)
==9551==    by 0x40148DB: dl_open_worker (in /usr/lib/ld-2.20.so)
==9551==  Address 0x5102e58 is 40 bytes inside a block of size 42 alloc'd
==9551==    at 0x4834780: malloc (in /usr/lib/valgrind/vgpreload_memcheck-arm-linux.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x5319E14: vchiq_lib_init (in /opt/vc/lib/libvchiq_arm.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x5319E20: vchiq_lib_init (in /opt/vc/lib/libvchiq_arm.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x5319E28: vchiq_lib_init (in /opt/vc/lib/libvchiq_arm.so)
==9551== 
==9551== Warning: noted but unhandled ioctl 0xc410 with no size/direction hints.
==9551==    This could cause spurious value errors to appear.
==9551==    See README_MISSING_SYSCALL_OR_IOCTL for guidance on writing a proper wrapper.
==9551== Warning: noted but unhandled ioctl 0xc400 with no size/direction hints.
==9551==    This could cause spurious value errors to appear.
==9551==    See README_MISSING_SYSCALL_OR_IOCTL for guidance on writing a proper wrapper.
==9551== Warning: noted but unhandled ioctl 0xc40d with no size/direction hints.
==9551==    This could cause spurious value errors to appear.
==9551==    See README_MISSING_SYSCALL_OR_IOCTL for guidance on writing a proper wrapper.
==9551== Warning: noted but unhandled ioctl 0xc40c with no size/direction hints.
==9551==    This could cause spurious value errors to appear.
==9551==    See README_MISSING_SYSCALL_OR_IOCTL for guidance on writing a proper wrapper.
==9551== Thread 2 VCHIQ completio:
==9551== Use of uninitialised value of size 4
==9551==    at 0x531A060: completion_thread (in /opt/vc/lib/libvchiq_arm.so)
==9551== 
==9551== Use of uninitialised value of size 4
==9551==    at 0x531A110: completion_thread (in /opt/vc/lib/libvchiq_arm.so)
==9551== 
==9551== Use of uninitialised value of size 4
==9551==    at 0x531A124: completion_thread (in /opt/vc/lib/libvchiq_arm.so)
==9551== 
==9551== Use of uninitialised value of size 4
==9551==    at 0x531A12C: completion_thread (in /opt/vc/lib/libvchiq_arm.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x531A090: completion_thread (in /opt/vc/lib/libvchiq_arm.so)
==9551== 
==9551== Thread 4 HTV Notify:
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x527AB38: tvservice_notify_func (in /opt/vc/lib/libbcm_host.so)
==9551== 
Setting pipeline to PAUSED ...
==9551== Thread 2 VCHIQ completio:
==9551== Use of uninitialised value of size 4
==9551==    at 0x531A07C: completion_thread (in /opt/vc/lib/libvchiq_arm.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x5254DC8: mmal_vc_vchiq_callback (in /opt/vc/lib/libmmal_vc_client.so)
==9551== 
==9551== Use of uninitialised value of size 4
==9551==    at 0x5254DC8: mmal_vc_vchiq_callback (in /opt/vc/lib/libmmal_vc_client.so)
==9551== 
==9551== Use of uninitialised value of size 4
==9551==    at 0x5254F30: mmal_vc_vchiq_callback (in /opt/vc/lib/libmmal_vc_client.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x5254F3C: mmal_vc_vchiq_callback (in /opt/vc/lib/libmmal_vc_client.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x5254F44: mmal_vc_vchiq_callback (in /opt/vc/lib/libmmal_vc_client.so)
==9551== 
==9551== Use of uninitialised value of size 4
==9551==    at 0x5254F4C: mmal_vc_vchiq_callback (in /opt/vc/lib/libmmal_vc_client.so)
==9551== 
==9551== Use of uninitialised value of size 4
==9551==    at 0x5254F60: mmal_vc_vchiq_callback (in /opt/vc/lib/libmmal_vc_client.so)
==9551== 
==9551== Use of uninitialised value of size 4
==9551==    at 0x5254F64: mmal_vc_vchiq_callback (in /opt/vc/lib/libmmal_vc_client.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x483A0EC: memcpy (in /usr/lib/valgrind/vgpreload_memcheck-arm-linux.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x483A104: memcpy (in /usr/lib/valgrind/vgpreload_memcheck-arm-linux.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x483A2F4: memcpy (in /usr/lib/valgrind/vgpreload_memcheck-arm-linux.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x483A180: memcpy (in /usr/lib/valgrind/vgpreload_memcheck-arm-linux.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x483A188: memcpy (in /usr/lib/valgrind/vgpreload_memcheck-arm-linux.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x483A198: memcpy (in /usr/lib/valgrind/vgpreload_memcheck-arm-linux.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x483A1B4: memcpy (in /usr/lib/valgrind/vgpreload_memcheck-arm-linux.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x483A30C: memcpy (in /usr/lib/valgrind/vgpreload_memcheck-arm-linux.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x483A314: memcpy (in /usr/lib/valgrind/vgpreload_memcheck-arm-linux.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x483A350: memcpy (in /usr/lib/valgrind/vgpreload_memcheck-arm-linux.so)
==9551== 
==9551== Use of uninitialised value of size 4
==9551==    at 0x483A370: memcpy (in /usr/lib/valgrind/vgpreload_memcheck-arm-linux.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x483A380: memcpy (in /usr/lib/valgrind/vgpreload_memcheck-arm-linux.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x483A394: memcpy (in /usr/lib/valgrind/vgpreload_memcheck-arm-linux.so)
==9551== 
==9551== Use of uninitialised value of size 4
==9551==    at 0x531ACD4: vchiq_release_message (in /opt/vc/lib/libvchiq_arm.so)
==9551== 
==9551== Use of uninitialised value of size 4
==9551==    at 0x4AB6584: sem_post@@GLIBC_2.4 (in /usr/lib/libpthread-2.20.so)
==9551== 
==9551== Use of uninitialised value of size 4
==9551==    at 0x4AB65A4: sem_post@@GLIBC_2.4 (in /usr/lib/libpthread-2.20.so)
==9551== 
==9551== Use of uninitialised value of size 4
==9551==    at 0x4AB65B0: sem_post@@GLIBC_2.4 (in /usr/lib/libpthread-2.20.so)
==9551== 
==9551== Use of uninitialised value of size 4
==9551==    at 0x4AB65C4: sem_post@@GLIBC_2.4 (in /usr/lib/libpthread-2.20.so)
==9551== 
==9551== Use of uninitialised value of size 4
==9551==    at 0x4AB65D0: sem_post@@GLIBC_2.4 (in /usr/lib/libpthread-2.20.so)
==9551== 
==9551== Syscall param futex(futex) contains uninitialised byte(s)
==9551==    at 0x4AB65E8: sem_post@@GLIBC_2.4 (in /usr/lib/libpthread-2.20.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x531A160: completion_thread (in /opt/vc/lib/libvchiq_arm.so)
==9551== 
==9551== Use of uninitialised value of size 4
==9551==    at 0x531A164: completion_thread (in /opt/vc/lib/libvchiq_arm.so)
==9551== 
==9551== Thread 1:
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x5258284: mmal_vc_component_create (in /opt/vc/lib/libmmal_vc_client.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x483471C: malloc (in /usr/lib/valgrind/vgpreload_memcheck-arm-linux.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x483BF0C: memset (in /usr/lib/valgrind/vgpreload_memcheck-arm-linux.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x483BF3C: memset (in /usr/lib/valgrind/vgpreload_memcheck-arm-linux.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x52582F8: mmal_vc_component_create (in /opt/vc/lib/libmmal_vc_client.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x5258308: mmal_vc_component_create (in /opt/vc/lib/libmmal_vc_client.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x5227A14: mmal_ports_alloc (in /opt/vc/lib/libmmal_core.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x5227A88: mmal_ports_alloc (in /opt/vc/lib/libmmal_core.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x5258318: mmal_vc_component_create (in /opt/vc/lib/libmmal_vc_client.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x52583E8: mmal_vc_component_create (in /opt/vc/lib/libmmal_vc_client.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x5258448: mmal_vc_component_create (in /opt/vc/lib/libmmal_vc_client.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x5258450: mmal_vc_component_create (in /opt/vc/lib/libmmal_vc_client.so)
==9551== 
==9551== Use of uninitialised value of size 4
==9551==    at 0x5258454: mmal_vc_component_create (in /opt/vc/lib/libmmal_vc_client.so)
==9551== 
==9551== Use of uninitialised value of size 4
==9551==    at 0x5258460: mmal_vc_component_create (in /opt/vc/lib/libmmal_vc_client.so)
==9551== 
==9551== Use of uninitialised value of size 4
==9551==    at 0x525846C: mmal_vc_component_create (in /opt/vc/lib/libmmal_vc_client.so)
==9551== 
==9551== Use of uninitialised value of size 4
==9551==    at 0x5258470: mmal_vc_component_create (in /opt/vc/lib/libmmal_vc_client.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x525848C: mmal_vc_component_create (in /opt/vc/lib/libmmal_vc_client.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x52584A4: mmal_vc_component_create (in /opt/vc/lib/libmmal_vc_client.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x52584AC: mmal_vc_component_create (in /opt/vc/lib/libmmal_vc_client.so)
==9551== 
==9551== Use of uninitialised value of size 4
==9551==    at 0x52584B0: mmal_vc_component_create (in /opt/vc/lib/libmmal_vc_client.so)
==9551== 
==9551== Use of uninitialised value of size 4
==9551==    at 0x52584BC: mmal_vc_component_create (in /opt/vc/lib/libmmal_vc_client.so)
==9551== 
==9551== Use of uninitialised value of size 4
==9551==    at 0x52584C8: mmal_vc_component_create (in /opt/vc/lib/libmmal_vc_client.so)
==9551== 
==9551== Use of uninitialised value of size 4
==9551==    at 0x52584CC: mmal_vc_component_create (in /opt/vc/lib/libmmal_vc_client.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x52584E8: mmal_vc_component_create (in /opt/vc/lib/libmmal_vc_client.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x52584F8: mmal_vc_component_create (in /opt/vc/lib/libmmal_vc_client.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x5257924: mmal_vc_port_info_get (in /opt/vc/lib/libmmal_vc_client.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x52579D0: mmal_vc_port_info_get (in /opt/vc/lib/libmmal_vc_client.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x52585B4: mmal_vc_component_create (in /opt/vc/lib/libmmal_vc_client.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x5258534: mmal_vc_component_create (in /opt/vc/lib/libmmal_vc_client.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x522C3B8: mmal_component_create_core (in /opt/vc/lib/libmmal_core.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x522C3CC: mmal_component_create_core (in /opt/vc/lib/libmmal_core.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x483BF48: memset (in /usr/lib/valgrind/vgpreload_memcheck-arm-linux.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x522D7B8: mmal_pool_initialise_buffer_headers (in /opt/vc/lib/libmmal_core.so)
==9551== 
==9551== Use of uninitialised value of size 4
==9551==    at 0x483BF30: memset (in /usr/lib/valgrind/vgpreload_memcheck-arm-linux.so)
==9551== 
==9551== Use of uninitialised value of size 4
==9551==    at 0x522D3B0: mmal_buffer_header_initialise (in /opt/vc/lib/libmmal_core.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x522D8A4: mmal_pool_initialise_buffer_headers (in /opt/vc/lib/libmmal_core.so)
==9551== 
==9551== Use of uninitialised value of size 4
==9551==    at 0x522D83C: mmal_pool_initialise_buffer_headers (in /opt/vc/lib/libmmal_core.so)
==9551== 
==9551== Use of uninitialised value of size 4
==9551==    at 0x522D858: mmal_pool_initialise_buffer_headers (in /opt/vc/lib/libmmal_core.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x522D890: mmal_pool_initialise_buffer_headers (in /opt/vc/lib/libmmal_core.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x522D4B8: mmal_queue_put (in /opt/vc/lib/libmmal_core.so)
==9551== 
==9551== Use of uninitialised value of size 4
==9551==    at 0x522D4DC: mmal_queue_put (in /opt/vc/lib/libmmal_core.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x522C444: mmal_component_create_core (in /opt/vc/lib/libmmal_core.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x522C484: mmal_component_create_core (in /opt/vc/lib/libmmal_core.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x522C4B8: mmal_component_create_core (in /opt/vc/lib/libmmal_core.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x522C4C4: mmal_component_create_core (in /opt/vc/lib/libmmal_core.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x522C4F4: mmal_component_create_core (in /opt/vc/lib/libmmal_core.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x522C500: mmal_component_create_core (in /opt/vc/lib/libmmal_core.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x522C520: mmal_component_create_core (in /opt/vc/lib/libmmal_core.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x522C554: mmal_component_create_core (in /opt/vc/lib/libmmal_core.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x522C584: mmal_component_create_core (in /opt/vc/lib/libmmal_core.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x522C5AC: mmal_component_create_core (in /opt/vc/lib/libmmal_core.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x522C5B8: mmal_component_create_core (in /opt/vc/lib/libmmal_core.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x522C5E0: mmal_component_create_core (in /opt/vc/lib/libmmal_core.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x522C5EC: mmal_component_create_core (in /opt/vc/lib/libmmal_core.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x522C608: mmal_component_create_core (in /opt/vc/lib/libmmal_core.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x522C618: mmal_component_create_core (in /opt/vc/lib/libmmal_core.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x522C620: mmal_component_create_core (in /opt/vc/lib/libmmal_core.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x5257394: mmal_vc_port_parameter_set (in /opt/vc/lib/libmmal_vc_client.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x51655E4: create_camera_component (RaspiCapture.c:1018)
==9551==    by 0x51655E4: raspi_capture_setup (RaspiCapture.c:1587)
==9551==    by 0x5162AF3: gst_rpi_cam_src_start (gstrpicamsrc.c:714)
==9551==    by 0x51F631B: ??? (in /usr/lib/libgstbase-1.0.so.0.405.0)
==9551== 
==9551== 
==9551== More than 100 errors detected.  Subsequent errors
==9551== will still be recorded, but in less detail than before.
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x5228BD0: mmal_port_enable (in /opt/vc/lib/libmmal_core.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x522723C: mmal_port_enable_internal (in /opt/vc/lib/libmmal_core.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x522724C: mmal_port_enable_internal (in /opt/vc/lib/libmmal_core.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x522725C: mmal_port_enable_internal (in /opt/vc/lib/libmmal_core.so)
==9551== 
==9551== Use of uninitialised value of size 4
==9551==    at 0x522D3C8: mmal_buffer_header_driver_data (in /opt/vc/lib/libmmal_core.so)
==9551== 
==9551== Use of uninitialised value of size 4
==9551==    at 0x5257B64: mmal_vc_port_enable (in /opt/vc/lib/libmmal_vc_client.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x52649F0: vcos_generic_blockpool_init (vcos_generic_blockpool.c:168)
==9551==    by 0x5264C97: vcos_generic_blockpool_create_on_heap (vcos_generic_blockpool.c:216)
==9551==    by 0x5257DA7: mmal_vc_port_enable (in /opt/vc/lib/libmmal_vc_client.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x5264828: vcos_generic_blockpool_subpool_init (vcos_generic_blockpool.c:122)
==9551==    by 0x5264B1F: vcos_generic_blockpool_init (vcos_generic_blockpool.c:196)
==9551==    by 0x5264C97: vcos_generic_blockpool_create_on_heap (vcos_generic_blockpool.c:216)
==9551==    by 0x5257DA7: mmal_vc_port_enable (in /opt/vc/lib/libmmal_vc_client.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x5264840: vcos_generic_blockpool_subpool_init (vcos_generic_blockpool.c:131)
==9551==    by 0x5264B1F: vcos_generic_blockpool_init (vcos_generic_blockpool.c:196)
==9551==    by 0x5264C97: vcos_generic_blockpool_create_on_heap (vcos_generic_blockpool.c:216)
==9551==    by 0x5257DA7: mmal_vc_port_enable (in /opt/vc/lib/libmmal_vc_client.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x5264864: vcos_generic_blockpool_subpool_init (vcos_generic_blockpool.c:131)
==9551==    by 0x5264B1F: vcos_generic_blockpool_init (vcos_generic_blockpool.c:196)
==9551==    by 0x5264C97: vcos_generic_blockpool_create_on_heap (vcos_generic_blockpool.c:216)
==9551==    by 0x5257DA7: mmal_vc_port_enable (in /opt/vc/lib/libmmal_vc_client.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x5257C94: mmal_vc_port_enable (in /opt/vc/lib/libmmal_vc_client.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x5258430: mmal_vc_component_create (in /opt/vc/lib/libmmal_vc_client.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x522C478: mmal_component_create_core (in /opt/vc/lib/libmmal_core.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x522C578: mmal_component_create_core (in /opt/vc/lib/libmmal_core.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x5168864: raspipreview_create (RaspiPreview.c:103)
==9551==    by 0x51657BF: raspi_capture_setup (RaspiCapture.c:1593)
==9551==    by 0x5162AF3: gst_rpi_cam_src_start (gstrpicamsrc.c:714)
==9551==    by 0x51F631B: ??? (in /usr/lib/libgstbase-1.0.so.0.405.0)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x5256CC4: mmal_vc_component_enable (in /opt/vc/lib/libmmal_vc_client.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x522BBEC: mmal_component_enable (in /opt/vc/lib/libmmal_core.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x522BBF4: mmal_component_enable (in /opt/vc/lib/libmmal_core.so)
==9551== 
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
==9551== Thread 8 rpicamsrc0:src:
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x5165B24: create_encoder_component (RaspiCapture.c:1300)
==9551==    by 0x5165B24: raspi_capture_start (RaspiCapture.c:1613)
==9551==    by 0x516241F: gst_rpi_cam_src_create (gstrpicamsrc.c:870)
==9551==    by 0x51F1317: ??? (in /usr/lib/libgstbase-1.0.so.0.405.0)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x5165DE0: create_encoder_component (RaspiCapture.c:1300)
==9551==    by 0x5165DE0: raspi_capture_start (RaspiCapture.c:1613)
==9551==    by 0x516241F: gst_rpi_cam_src_create (gstrpicamsrc.c:870)
==9551==    by 0x51F1317: ??? (in /usr/lib/libgstbase-1.0.so.0.405.0)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x5165E2C: create_encoder_component (RaspiCapture.c:1321)
==9551==    by 0x5165E2C: raspi_capture_start (RaspiCapture.c:1613)
==9551==    by 0x516241F: gst_rpi_cam_src_create (gstrpicamsrc.c:870)
==9551==    by 0x51F1317: ??? (in /usr/lib/libgstbase-1.0.so.0.405.0)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x5165EB0: create_encoder_component (RaspiCapture.c:1328)
==9551==    by 0x5165EB0: raspi_capture_start (RaspiCapture.c:1613)
==9551==    by 0x516241F: gst_rpi_cam_src_create (gstrpicamsrc.c:870)
==9551==    by 0x51F1317: ??? (in /usr/lib/libgstbase-1.0.so.0.405.0)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x52576D8: mmal_vc_port_info_set (in /opt/vc/lib/libmmal_vc_client.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x525777C: mmal_vc_port_info_set (in /opt/vc/lib/libmmal_vc_client.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x5257E60: mmal_vc_port_set_format (in /opt/vc/lib/libmmal_vc_client.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x5257EC8: mmal_vc_port_set_format (in /opt/vc/lib/libmmal_vc_client.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x5227CC4: mmal_port_format_commit (in /opt/vc/lib/libmmal_core.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x4B11300: vfprintf (in /usr/lib/libc-2.20.so)
==9551== 
==9551== Use of uninitialised value of size 4
==9551==    at 0x4838404: strnlen (in /usr/lib/valgrind/vgpreload_memcheck-arm-linux.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x483840C: strnlen (in /usr/lib/valgrind/vgpreload_memcheck-arm-linux.so)
==9551== 
==9551== Use of uninitialised value of size 4
==9551==    at 0x483841C: strnlen (in /usr/lib/valgrind/vgpreload_memcheck-arm-linux.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x4838424: strnlen (in /usr/lib/valgrind/vgpreload_memcheck-arm-linux.so)
==9551== 
==9551== Use of uninitialised value of size 4
==9551==    at 0x4B3BDF0: _IO_default_xsputn (in /usr/lib/libc-2.20.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x4B3BDFC: _IO_default_xsputn (in /usr/lib/libc-2.20.so)
==9551== 
==9551== Use of uninitialised value of size 4
==9551==    at 0x4B3BDFC: _IO_default_xsputn (in /usr/lib/libc-2.20.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x5227CFC: mmal_port_format_commit (in /opt/vc/lib/libmmal_core.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x5227D0C: mmal_port_format_commit (in /opt/vc/lib/libmmal_core.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x52571EC: mmal_vc_port_parameter_get (in /opt/vc/lib/libmmal_vc_client.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x522877C: mmal_port_parameter_get (in /opt/vc/lib/libmmal_core.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x5229F88: mmal_port_payload_alloc (in /opt/vc/lib/libmmal_core.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x5256F04: mmal_vc_port_payload_alloc (in /opt/vc/lib/libmmal_vc_client.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x5256F30: mmal_vc_port_payload_alloc (in /opt/vc/lib/libmmal_vc_client.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x525766C: mmal_vc_port_info_set (in /opt/vc/lib/libmmal_vc_client.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x5165100: raspi_capture_set_format_and_start (RaspiCapture.c:1189)
==9551==    by 0x51663D7: raspi_capture_start (RaspiCapture.c:1624)
==9551==    by 0x516241F: gst_rpi_cam_src_create (gstrpicamsrc.c:870)
==9551==    by 0x51F1317: ??? (in /usr/lib/libgstbase-1.0.so.0.405.0)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x516527C: raspi_capture_set_format_and_start (RaspiCapture.c:1218)
==9551==    by 0x51663D7: raspi_capture_start (RaspiCapture.c:1624)
==9551==    by 0x516241F: gst_rpi_cam_src_create (gstrpicamsrc.c:870)
==9551==    by 0x51F1317: ??? (in /usr/lib/libgstbase-1.0.so.0.405.0)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x52271C4: mmal_format_full_copy (in /opt/vc/lib/libmmal_core.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x524074C: mmal_connection_create (in /opt/vc/lib/libmmal_util.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x5227C1C: mmal_port_format_commit (in /opt/vc/lib/libmmal_core.so)
==9551== 
==9551== Use of uninitialised value of size 4
==9551==    at 0x5257F50: mmal_vc_port_set_format (in /opt/vc/lib/libmmal_vc_client.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x5257F44: mmal_vc_port_set_format (in /opt/vc/lib/libmmal_vc_client.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x5227DEC: mmal_port_format_commit (in /opt/vc/lib/libmmal_core.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x5240830: mmal_connection_create (in /opt/vc/lib/libmmal_util.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x5229AA8: mmal_port_connect (in /opt/vc/lib/libmmal_core.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x5229B78: mmal_port_connect (in /opt/vc/lib/libmmal_core.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x5256DC0: mmal_vc_port_connect (in /opt/vc/lib/libmmal_vc_client.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x5229BF8: mmal_port_connect (in /opt/vc/lib/libmmal_core.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x52409A8: mmal_connection_create (in /opt/vc/lib/libmmal_util.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x5240270: mmal_connection_enable (in /opt/vc/lib/libmmal_util.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x524027C: mmal_connection_enable (in /opt/vc/lib/libmmal_util.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x5240288: mmal_connection_enable (in /opt/vc/lib/libmmal_util.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x5240294: mmal_connection_enable (in /opt/vc/lib/libmmal_util.so)
==9551== 
==9551== Use of uninitialised value of size 4
==9551==    at 0x5228C50: mmal_port_enable (in /opt/vc/lib/libmmal_core.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x5228C7C: mmal_port_enable (in /opt/vc/lib/libmmal_core.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x5257C18: mmal_vc_port_enable (in /opt/vc/lib/libmmal_vc_client.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x5227308: mmal_port_enable_internal (in /opt/vc/lib/libmmal_core.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x5228F0C: mmal_port_enable (in /opt/vc/lib/libmmal_core.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x5228CA0: mmal_port_enable (in /opt/vc/lib/libmmal_core.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x5228EC4: mmal_port_enable (in /opt/vc/lib/libmmal_core.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x5257F34: mmal_vc_port_set_format (in /opt/vc/lib/libmmal_vc_client.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x5257F6C: mmal_vc_port_set_format (in /opt/vc/lib/libmmal_vc_client.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x5257F70: mmal_vc_port_set_format (in /opt/vc/lib/libmmal_vc_client.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x5227E04: mmal_port_format_commit (in /opt/vc/lib/libmmal_core.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x5227E14: mmal_port_format_commit (in /opt/vc/lib/libmmal_core.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x5227E1C: mmal_port_format_commit (in /opt/vc/lib/libmmal_core.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x523F4A0: mmal_status_to_string (in /opt/vc/lib/libmmal_util.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x523F4A8: mmal_status_to_string (in /opt/vc/lib/libmmal_util.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x523F4B0: mmal_status_to_string (in /opt/vc/lib/libmmal_util.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x523F4B8: mmal_status_to_string (in /opt/vc/lib/libmmal_util.so)
==9551== 
mmal: ==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x48384E4: strlen (in /usr/lib/valgrind/vgpreload_memcheck-arm-linux.so)
==9551== 
==9551== Syscall param write(buf) points to uninitialised byte(s)
==9551==    at 0x4B8F6A4: write (in /usr/lib/libc-2.20.so)
==9551==    by 0x4B39D33: _IO_file_write@@GLIBC_2.4 (in /usr/lib/libc-2.20.so)
==9551==  Address 0x8b73473 is on thread 8's stack
==9551== 
mmal_vc_port_enable: failed to enable port vc.ril.video_encode:in:0(OPQV): EINVAL
mmal: mmal_port_enable: failed to enable connected port (vc.ril.video_encode:in:0(OPQV))0x515d520 (EINVAL)
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x5228D0C: mmal_port_enable (in /opt/vc/lib/libmmal_core.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x5228D18: mmal_port_enable (in /opt/vc/lib/libmmal_core.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x52402B0: mmal_connection_enable (in /opt/vc/lib/libmmal_util.so)
==9551== 
mmal: mmal_connection_enable: output port couldn't be enabled
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x51648F8: connect_ports (RaspiCapture.c:1537)
==9551==    by 0x51665BB: raspi_capture_start (RaspiCapture.c:1660)
==9551==    by 0x516241F: gst_rpi_cam_src_create (gstrpicamsrc.c:870)
==9551==    by 0x51F1317: ??? (in /usr/lib/libgstbase-1.0.so.0.405.0)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x5229CC0: mmal_port_disconnect (in /opt/vc/lib/libmmal_core.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x5229CCC: mmal_port_disconnect (in /opt/vc/lib/libmmal_core.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x5256D4C: mmal_vc_port_connect (in /opt/vc/lib/libmmal_vc_client.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x5256DC8: mmal_vc_port_connect (in /opt/vc/lib/libmmal_vc_client.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x51665C0: raspi_capture_start (RaspiCapture.c:1661)
==9551==    by 0x516241F: gst_rpi_cam_src_create (gstrpicamsrc.c:870)
==9551==    by 0x51F1317: ??? (in /usr/lib/libgstbase-1.0.so.0.405.0)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x5229434: mmal_port_disable (in /opt/vc/lib/libmmal_core.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x5228930: mmal_port_disable_internal (in /opt/vc/lib/libmmal_core.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x525886C: mmal_vc_port_disable (in /opt/vc/lib/libmmal_vc_client.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x52289B8: mmal_port_disable_internal (in /opt/vc/lib/libmmal_core.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x5229478: mmal_port_disable (in /opt/vc/lib/libmmal_core.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x5229640: mmal_port_disable (in /opt/vc/lib/libmmal_core.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x5240538: mmal_connection_disable (in /opt/vc/lib/libmmal_util.so)
==9551== 
ERROR: from element /GstPipeline:pipeline0/GstRpiCamSrc:rpicamsrc0: Internal data flow error.
Additional debug info:
gstbasesrc.c(2933): gst_base_src_loop (): /GstPipeline:pipeline0/GstRpiCamSrc:rpicamsrc0:
streaming task paused, reason error (-5)
Execution ended after 0:00:01.005949011
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
==9551== Thread 1:
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x52569E4: mmal_vc_component_disable (in /opt/vc/lib/libmmal_vc_client.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x522BD48: mmal_component_disable (in /opt/vc/lib/libmmal_core.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x522BD50: mmal_component_disable (in /opt/vc/lib/libmmal_core.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x523F984: mmal_port_pool_destroy (in /opt/vc/lib/libmmal_util.so)
==9551== 
==9551== Use of uninitialised value of size 4
==9551==    at 0x522DA04: mmal_pool_destroy (in /opt/vc/lib/libmmal_core.so)
==9551== 
==9551== Use of uninitialised value of size 4
==9551==    at 0x522DA08: mmal_pool_destroy (in /opt/vc/lib/libmmal_core.so)
==9551== 
==9551== Use of uninitialised value of size 4
==9551==    at 0x522DA14: mmal_pool_destroy (in /opt/vc/lib/libmmal_core.so)
==9551== 
==9551== Use of uninitialised value of size 4
==9551==    at 0x522DA20: mmal_pool_destroy (in /opt/vc/lib/libmmal_core.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x522DA28: mmal_pool_destroy (in /opt/vc/lib/libmmal_core.so)
==9551== 
==9551== Use of uninitialised value of size 4
==9551==    at 0x522DA2C: mmal_pool_destroy (in /opt/vc/lib/libmmal_core.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x522CDB0: mmal_component_destroy (in /opt/vc/lib/libmmal_core.so)
==9551== 
==9551== Use of uninitialised value of size 4
==9551==    at 0x522CDC4: mmal_component_destroy (in /opt/vc/lib/libmmal_core.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x522CDD4: mmal_component_destroy (in /opt/vc/lib/libmmal_core.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x522CDBC: mmal_component_destroy (in /opt/vc/lib/libmmal_core.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x522CDF4: mmal_component_destroy (in /opt/vc/lib/libmmal_core.so)
==9551== 
==9551== Use of uninitialised value of size 4
==9551==    at 0x522CE08: mmal_component_destroy (in /opt/vc/lib/libmmal_core.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x522CE18: mmal_component_destroy (in /opt/vc/lib/libmmal_core.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x522CE00: mmal_component_destroy (in /opt/vc/lib/libmmal_core.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x522CE38: mmal_component_destroy (in /opt/vc/lib/libmmal_core.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x522CE7C: mmal_component_destroy (in /opt/vc/lib/libmmal_core.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x522CE8C: mmal_component_destroy (in /opt/vc/lib/libmmal_core.so)
==9551== 
==9551== Use of uninitialised value of size 4
==9551==    at 0x522CE94: mmal_component_destroy (in /opt/vc/lib/libmmal_core.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x522CEA8: mmal_component_destroy (in /opt/vc/lib/libmmal_core.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x522CEB8: mmal_component_destroy (in /opt/vc/lib/libmmal_core.so)
==9551== 
==9551== Use of uninitialised value of size 4
==9551==    at 0x522CEC0: mmal_component_destroy (in /opt/vc/lib/libmmal_core.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x522CED4: mmal_component_destroy (in /opt/vc/lib/libmmal_core.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x522CEE4: mmal_component_destroy (in /opt/vc/lib/libmmal_core.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x5258048: mmal_vc_component_destroy (in /opt/vc/lib/libmmal_vc_client.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x5258054: mmal_vc_component_destroy (in /opt/vc/lib/libmmal_vc_client.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x5227B60: mmal_ports_free (in /opt/vc/lib/libmmal_core.so)
==9551== 
==9551== Use of uninitialised value of size 4
==9551==    at 0x5227B68: mmal_ports_free (in /opt/vc/lib/libmmal_core.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x5227B74: mmal_ports_free (in /opt/vc/lib/libmmal_core.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x5258100: mmal_vc_component_destroy (in /opt/vc/lib/libmmal_vc_client.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x5258114: mmal_vc_component_destroy (in /opt/vc/lib/libmmal_vc_client.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x522C0B8: mmal_component_destroy_internal (in /opt/vc/lib/libmmal_core.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x525806C: mmal_vc_component_destroy (in /opt/vc/lib/libmmal_vc_client.so)
==9551== 
==9551== Use of uninitialised value of size 4
==9551==    at 0x522CE4C: mmal_component_destroy (in /opt/vc/lib/libmmal_core.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x522CE5C: mmal_component_destroy (in /opt/vc/lib/libmmal_core.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x522CE44: mmal_component_destroy (in /opt/vc/lib/libmmal_core.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x522959C: mmal_port_disable (in /opt/vc/lib/libmmal_core.so)
==9551== 
==9551== Use of uninitialised value of size 4
==9551==    at 0x522CEEC: mmal_component_destroy (in /opt/vc/lib/libmmal_core.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x522CF00: mmal_component_destroy (in /opt/vc/lib/libmmal_core.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x5258060: mmal_vc_component_destroy (in /opt/vc/lib/libmmal_vc_client.so)
==9551== 
==9551== Warning: noted but unhandled ioctl 0xc40b with no size/direction hints.
==9551==    This could cause spurious value errors to appear.
==9551==    See README_MISSING_SYSCALL_OR_IOCTL for guidance on writing a proper wrapper.
==9551== Thread 2 VCHIQ completio:
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x5254DC0: mmal_vc_vchiq_callback (in /opt/vc/lib/libmmal_vc_client.so)
==9551== 
==9551== Conditional jump or move depends on uninitialised value(s)
==9551==    at 0x531A09C: completion_thread (in /opt/vc/lib/libvchiq_arm.so)
==9551== 
==9551== Use of uninitialised value of size 4
==9551==    at 0x531A0B4: completion_thread (in /opt/vc/lib/libvchiq_arm.so)
==9551== 
==9551== Warning: noted but unhandled ioctl 0xc411 with no size/direction hints.
==9551==    This could cause spurious value errors to appear.
==9551==    See README_MISSING_SYSCALL_OR_IOCTL for guidance on writing a proper wrapper.
Setting pipeline to NULL ...
Freeing pipeline ...

@thaytan
Copy link
Owner

thaytan commented Apr 20, 2015

Thanks for that. I don't see anything obvious in there, although there's clearly a lot of incompletely initialised memory usage inside mmal and friends.

I did just notice that if I turn on some GStreamer debug levels, I can make it work reliably. Either debug level slow things down enough that it seems to init reliably, or it changes the memory around in some way. Even when not printing anything, just skipping ignored internal debug lines is enough:

GST_DEBUG=identity:6 gst-launch-1.0 rpicamsrc intra-refresh-type=both num-buffers=5 ! fakesink

works reliably, where

gst-launch-1.0 rpicamsrc intra-refresh-type=both num-buffers=5 ! fakesink

doesn't. It's also interesting that I can reproduce it reliably now, where I couldn't when you first reported the bug. I wonder if something in the firmware changed.

@towolf
Copy link
Author

towolf commented Apr 20, 2015

Just came home, it was still spinning the CPU. When I canceled it printed this

^[[F^[[B^C==9551== 
==9551== HEAP SUMMARY:
==9551==     in use at exit: 272,215 bytes in 2,042 blocks
==9551==   total heap usage: 24,048 allocs, 22,006 frees, 1,927,635 bytes allocated
==9551== 
==9551== Thread 1:
==9551== 504 bytes in 39 blocks are possibly lost in loss record 1 of 9
==9551==    at 0x4834780: malloc (in /usr/lib/valgrind/vgpreload_memcheck-arm-linux.so)
==9551== 
==9551== 540 bytes in 5 blocks are possibly lost in loss record 2 of 9
==9551==    at 0x48370D4: realloc (in /usr/lib/valgrind/vgpreload_memcheck-arm-linux.so)
==9551== 
==9551== 4,096 bytes in 1 blocks are definitely lost in loss record 4 of 9
==9551==    at 0x4834780: malloc (in /usr/lib/valgrind/vgpreload_memcheck-arm-linux.so)
==9551== 
==9551== 4,342 bytes in 109 blocks are possibly lost in loss record 6 of 9
==9551==    at 0x4836E94: calloc (in /usr/lib/valgrind/vgpreload_memcheck-arm-linux.so)
==9551== 
==9551== LEAK SUMMARY:
==9551==    definitely lost: 4,096 bytes in 1 blocks
==9551==    indirectly lost: 0 bytes in 0 blocks
==9551==      possibly lost: 5,386 bytes in 153 blocks
==9551==    still reachable: 255,909 bytes in 1,809 blocks
==9551==         suppressed: 0 bytes in 0 blocks
==9551== Reachable blocks (those to which a pointer was found) are not shown.
==9551== To see them, rerun with: --leak-check=full --show-leak-kinds=all
==9551== 
==9551== For counts of detected and suppressed errors, rerun with: -v
==9551== Use --track-origins=yes to see where uninitialised values come from
==9551== ERROR SUMMARY: 11402 errors from 246 contexts (suppressed: 3 from 1)

@towolf
Copy link
Author

towolf commented Apr 20, 2015

From my PoV you don’t need to dive too deep into this, if it takes too much time.

I merely wanted to try these flags to see if they help with live streaming error resilience and/or latency.

@thaytan
Copy link
Owner

thaytan commented Apr 20, 2015

if you could test with GST_DEBUG=identity:5 and see if that makes it work for you too, that'd be cool

@towolf
Copy link
Author

towolf commented Apr 20, 2015

On Mon, Apr 20, 2015 at 6:15 PM, Jan Schmidt notifications@github.com
wrote:

GST_DEBUG=identity:5

Yes, prepending that, it works. Funny.

@thaytan
Copy link
Owner

thaytan commented Apr 20, 2015

I think I found it - that commit makes it work for me. Please re-open if it's still broken for you.

@towolf
Copy link
Author

towolf commented Apr 20, 2015

Can confirm. Thank you very much.

havardgraff pushed a commit to pexip/gst-plugins-good that referenced this issue Jul 15, 2020
Use memset on the stack allocated MMAL_PARAMETER_VIDEO_INTRA_REFRESH_T
struct. Apparently mmal_port_parameter_get() doesn't retrieve all
parameters, causing random failures when we set the intra-refresh
param on the encoder.

Fixes thaytan/gst-rpicamsrc#22 for me.
havardgraff pushed a commit to pexip/gst-plugins-good that referenced this issue Aug 26, 2021
Use memset on the stack allocated MMAL_PARAMETER_VIDEO_INTRA_REFRESH_T
struct. Apparently mmal_port_parameter_get() doesn't retrieve all
parameters, causing random failures when we set the intra-refresh
param on the encoder.

Fixes thaytan/gst-rpicamsrc#22 for me.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants