Hi,
I was trying to run a gstreamer pipeline inside a docker container which sinks a videoestsrc using an shmsink and it creates a socket file as shown below:
gst-launch-1.0 videotestsrc pattern=smpte ! videoconvert ! video/x-raw,format=I420,width=640,height=480,framerate=30/1 ! shmsink socket-path=ck sync=false shm-size=200000000
the problem is in the receiving end which does not display the testvideo in both docker container and out the container. The below pipeline is the receiving pipeline:
gst-launch-1.0 shmsrc socket-path=ck ! video/x-raw,format=I420,width=640,height=480,framerate=30/1 ! videoconvert ! autovideosink
the error generated from the above receiving pipeline as follows when running without sudo:
(gst-launch-1.0:11646): GStreamer-CRITICAL **: 15:07:16.650: gst_poll_remove_fd: assertion 'fd->fd >= 0' failed
ERROR: Pipeline doesn't want to pause.
ERROR: from element /GstPipeline:pipeline0/GstShmSrc:shmsrc0: Could not open socket /home/usr/MD/chk: 13 Permission denied
Additional debug info:
gstshmsrc.c(250): gst_shm_src_start_reading (): /GstPipeline:pipeline0/GstShmSrc:shmsrc0
Setting pipeline to NULL ...
When running with sudo
sudo gst-launch-1.0 shmsrc socket-path=/home/usr/MD/ck ! video/x-raw,format=I420,width=640,height=480,framerate=30/1 ! videoconvert ! autovideosink
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
shm_open failed on /shmpipe. 25. 0 (2): No such file or directory
ERROR: from element /GstPipeline:pipeline0/GstShmSrc:shmsrc0: Failed to read from shmsrc
Additional debug info:
gstshmsrc.c(376): gst_shm_src_create (): /GstPipeline:pipeline0/GstShmSrc:shmsrc0:
Error reading control data: -4
ERROR: pipeline doesn't want to preroll.
Setting pipeline to NULL ...
Freeing pipeline ...
How to resolve this issue. Is there any method of reading a file inside the docker container since the docker runs in root privileges?
Thanks in advance.