mfw_isink takes 4 seconds

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

mfw_isink takes 4 seconds

1,601 Views
javiervalcarce
Contributor I

Hi all.

I would like to know what is the best way to quickly reconfigure video source in gstreamer-0.10, I'm using a pipeline built in C (not gst-launch) witch uses a udpsnk element (rtsp) and a mfw_isink element for multi overlay.

Currently I send a stop command to the pipeline, reconfigure the rtspsnk element and then send a play command but the mfw_isink is terribly slow in its transition from READY to PLAYING (takes about 4 seconds) and, hence, the camera switching in very slow.

The code is something similar to this:

gst_element_set_state(pipeline_, GST_STATE_READY);

g_object_set (G_OBJECT (source_), "location", url.c_str(), NULL);

gst_element_set_state(pipeline_, GST_STATE_PLAYING);

// After 4 seconds the first video frame shows in the screen

The trace after those commands are:

[INFO]bitstreamMode 1, chromaInterleave 1, mapType 0, tiled2LinearEnable 0
[INFO]Product Info: i.MX6Q/D/S

vpudec versions Smiley Happy

plugin: 3.0.8
wrapper: 1.0.38(VPUWRAPPER_ARM_LINUX Build on Oct  1 2014 16:38:10)
vpulib: 5.4.15
firmware: 2.3.10.40778

0002:33:24.916 [DEBUG   ] Pipeline state changed from PLAYING to PAUSED:

0002:33:24.920 [DEBUG   ] Pipeline state changed from PLAYING to PAUSED:

0002:33:24.923 [DEBUG   ] Pipeline state changed from PAUSED to READY:

0002:33:24.925 [DEBUG   ] Pipeline state changed from PAUSED to READY:

0002:33:24.938 [DEBUG   ] Pipeline state changed from READY to PAUSED:

0002:33:24.940 [DEBUG   ] Pipeline state changed from READY to PAUSED:

[INFO]bitstreamMode 1, chromaInterleave 1, mapType 0, tiled2LinearEnable 0

can not create threadmfw_gst_isink_setcaps:1489

0002:33:28.903 [DEBUG   ] Pipeline state changed from PAUSED to PLAYING:

can not create threadmfw_gst_isink_setcaps:1489

0002:33:29.298 [DEBUG   ] Pipeline state changed from PAUSED to PLAYING:

reconfig win from (0,0-400,480:400x480) to (0,0-400,480:400x480)

Any sugestion?

Thanks.

Tags (1)
0 Kudos
5 Replies

1,189 Views
abhilashdharpur
Contributor I

Hi Javier,

mfw_ising itself takes 4-5 seconds to show video frame. To fix this issue you need to do window binding. Check below code for the same.

QWidget window;
window.resize(320, 240);
window.show();

WId xwinid = window.winId();
gst_x_overlay_set_window_handle (GST_X_OVERLAY (sink), xwinid);

AActually it will not bind window with mfw_isink, however, you will get video streaming within a second.

Thanks and Regards,

Abhilash Dharpure.

0 Kudos

1,189 Views
lukeh
Contributor I

I have the same problem with the mfw_isink hanging for 4 seconds before showing the line "can not create threadmfw_gst_isink_setcaps:1489".

I am trying to get a video feed to show up from a TW6869 video encoder using the PCI-E bus on the nitrogen6x imx6 using gstreamer and mfw_isink.

Here's my pipeline (note that the export must be entered otherwise the video feed does not show up at all):

export VSALPHA=1

gst-launch -v v4l2src device=/dev/video0 ! 'video/x-raw-yuv, format=(fourcc)UYVY' ! mfw_isink disp-width=640  disp-height=480 axis-top=0 axis-left=0

When I use the mfw_v4lsink the video feed shows up immediately, but the mfw_v4lsink cannot handle multiple feeds, so I cannot use it:

gst-launch v4l2src device=/dev/video0 ! 'video/x-raw-yuv, format=(fourcc)UYVY' ! mfw_v4lsink disp-width=640  disp-height=480 axis-top=0 axis-left=0

Did you find a solution to this problem?

Here's the output for the feed that hangs:

root@nitrogen6x:~# gst-launch -v v4l2src device=/dev/video0 ! 'video/x-raw-yuv,

format=(fourcc)UYVY' ! mfw_isink disp-width=640  disp-height=480 axis-top=0 axis

-left=0

set color key

MFW_GST_ISINK_PLUGIN 3.0.9 build on Aug 28 2014 13:01:25.

Setting pipeline to PAUSED ...

/GstPipeline:pipeline0/GstV4l2Src:v4l2src0.GstPad:src: caps = video/x-raw-yuv, format=(fourcc)UYVY, framerate=(fraction)30000/1001, width=(int)704, height=(int)480, interlaced=(boolean)true, pixel-aspect-ratio=(fraction)1/1

Pipeline is live and does not need PREROLL ...

Setting pipeline to PLAYING ...

New clock: GstSystemClock

/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:src: caps = video/x-raw-yuv, format=(fourcc)UYVY, framerate=(fraction)30000/1001, width=(int)704, height=(int)480, interlaced=(boolean)true, pixel-aspect-ratio=(fraction)1/1

/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:sink: caps = video/x-raw-yuv, format=(fourcc)UYVY, framerate=(fraction)30000/1001, width=(int)704, height=(int)480, interlaced=(boolean)true, pixel-aspect-ratio=(fraction)1/1  <-----PAUSES HERE FOR 4s

can not create threadmfw_gst_isink_setcaps:1489

/GstPipeline:pipeline0/MfwGstISink:mfwgstisink0.GstPad:sink: caps = video/x-raw-yuv, format=(fourcc)UYVY, framerate=(fraction)30000/1001, width=(int)704, height=(int)480, interlaced=(boolean)true, pixel-aspect-ratio=(fraction)1/1

hwbuf allocator zone(675840) created

VS0 created. in fmt[UYVY] win(0,0-704,480:704x480) out win(0,0-640,480:640x480)

set deinterlace mode 0

hwbuf allocator zone(614400) created

imx-ipuv3 imx-ipuv3.0: IDMAC12's EBA0 is not 8-byte aligned

hwbuf allocator zone(614400) destroied.

hwbuf allocator zone(614400) created

imx-ipuv3 imx-ipuv3.0: IDMAC12's EBA0 is not 8-byte aligned

hwbuf allocator zone(614400) destroied.

hwbuf allocator zone(614400) created

imx-ipuv3 imx-ipuv3.0: IDMAC12's EBA0 is not 8-byte aligned

hwbuf allocator zone(614400) destroied.

Thank you,

Luke

0 Kudos

1,189 Views
joanxie
NXP TechSupport
NXP TechSupport

did you try to use the yocto and gstreamer 1.0? the same issue?

0 Kudos

1,189 Views
lukeh
Contributor I

Thanks for the suggestion! Unfortunately, unless you know differently, freescale has only released v4l2src plugins for gstreamer-0.10 for the imx6, so it is not possible to test with gstreamer-1.0. I have also seen comments that mfw_isink is not fully supported on the imx6 but only on the imx51 and imx53.

If you have other suggestions, please let us know!

Thanks again,

Luke

0 Kudos

1,189 Views
javiervalcarce
Contributor I

Hi Guanqiong.

I can't test gstreamer 1.0 now because our BSP is provided by an external company. We depend on them to regenerate/update the root file system and compiler and they don't plan to publish a new version soon.

0 Kudos