AnsweredAssumed Answered

imxv4l2src from Yocto-4.1 failed to work with clockoverlay

Question asked by Robbie Jiang on Dec 30, 2016
Latest reply on Jan 23, 2017 by Joan Xie

Hi,

I'm working on MX6 solo / Yocto-4.1, and trying to streaming H264 encoded stream with clock overlay.

But lots of ERRORS are reported and no video stream is output.

Here is my sender pipeline:

 

export GST_DEBUG=*:1
gst-launch-1.0 -v  rtpbin name=rtpbin \
    imxv4l2src device=/dev/video0 ! 'video/x-raw, format=UYVY, width=640, height=480, framerate=60/1' ! tee name=vsrc vsrc. ! queue2 ! clockoverlay xpad=25 ypad=25 time-format="%Y/%m/%d %H:%M:%S" silent=false ! 'video/x-raw, format=UYVY, width=640, height=480, framerate=60/1' ! imxvideoconvert_ipu ! 'video/x-raw, format=I420, width=640, height=480, framerate=60/1' ! vpuenc_h264 bitrate=6000 gop-size=15 ! 'video/x-h264, stream-format=avc, alignment=au' ! rtph264pay mtu=1024 ! rtpbin.send_rtp_sink_0 \
    rtpbin.send_rtp_src_0 ! udpsink host=192.168.1.111 port=5004  \
    rtpbin.send_rtcp_src_0 ! udpsink host=192.168.1.111 port=5005 sync=false async=false \
    udpsrc port=5007 ! rtpbin.recv_rtcp_sink_0  \
    vsrc. ! appsink sync=false async=false max-buffers=1 emit-signals=false drop=true

 

Error outputs as follows:

0:00:01.343995000  1417   0x6d9e60 ERROR                default video-frame.c:147:gst_video_frame_map_id: failed to map video frame plane 0
0:00:01.354008000  1417   0x6d9e60 ERROR                default video-frame.c:147:gst_video_frame_map_id: failed to map video frame plane 0
0:00:01.370623000  1417   0x6d9e60 ERROR                default video-frame.c:147:gst_video_frame_map_id: failed to map video frame plane 0
0:00:01.387276334  1417   0x6d9e60 ERROR                default video-frame.c:147:gst_video_frame_map_id: failed to map video frame plane 0
.......

.......

 

However, if I set clockoverlay's property "silent=true"(which means do not render text string), the pipeline runs well and no errors are reported.

 

Also note that, with videotestsrc, even with "silent=false", the pipeline still runs well.

export GST_DEBUG=*:1
gst-launch-1.0 -v  rtpbin name=rtpbin \
    videotestsrc  is-live=true ! 'video/x-raw, format=UYVY, width=640, height=480, framerate=60/1' ! tee name=vsrc vsrc. ! queue2 ! clockoverlay xpad=25 ypad=25 time-format="%Y/%m/%d %H:%M:%S" silent=false ! 'video/x-raw, format=UYVY, width=640, height=480, framerate=60/1' ! imxvideoconvert_ipu ! 'video/x-raw, format=I420, width=640, height=480, framerate=60/1' ! vpuenc_h264 bitrate=6000 gop-size=15 ! 'video/x-h264, stream-format=avc, alignment=au' ! rtph264pay mtu=1024 ! rtpbin.send_rtp_sink_0 \
    rtpbin.send_rtp_src_0 ! udpsink host=192.168.1.111 port=5004  \
    rtpbin.send_rtcp_src_0 ! udpsink host=192.168.1.111 port=5005 sync=false async=false \
    udpsrc port=5007 ! rtpbin.recv_rtcp_sink_0  \
    vsrc. ! appsink sync=false async=false max-buffers=1 emit-signals=false drop=true

 

 

So it seems that the 'imxv4l2src' plugin from Yocto-4.1 can not work with clockoverlay when text string is rendered.

 

How to fix it?

 

Thanks!

Robbie

Outcomes