Hi !
I have to use a iMx6 with adv7180 under linux (i started with ltib L3.0.35_4.0.0_130424).
I tested my hardware with the mxc_v4lv_tvin.out unit test , with the following command line:
./mxc_v4l2_tvin.out -ow 640 -oh 480 -ol 10 -ot 20 -f YU12
and it works well...
But if I use it with gstreamer , the image start to rolling...
My command line is:
gst-launch-0.10 -v mfw_v4lsrc ! mfw_isink
I found a topic about iMx53 and adv7180. In this topic they suggest to use the command:
gst-launch-0.10 -v mfw_v4lsrc capture-width=720 capture-height=576 sensor-width=720 sensor-height=288 typefind=1 preview=1 preview-width=720 preview-height=576 bg=1 ! mfw_isink
but my mfw_v4lsrc not support the capture-width, capture-height, sensor-width and sensor-height....
Where I'm wrong ?
Thanks
Solved! Go to Solution.
Hi,
Please copy libmfw_gst_tvsrc.so to your rootfs/usr/lib/gstreamer-0.10 directory, and take gstreamer pipeline “gst-launch tvsrc ! mfw_v4lsink”
Jack
What do you mean by 'rolling'? add --gst-debug=*mfw*:5 to your pipeline and share log.
Leo
This is the log of gst-launch-0.10 -v mfw_v4lsrc --gst-debug=*mfw*:5 ! mfw_isink command:
(many thanks)
gst-launch-0.10: /usr/lib/libz.so.1: no version information available (required by /usr/lib/libxml2.so.2)
gst-launch-0.10: /usr/lib/libz.so.1: no version information available (required by /usr/lib/libxml2.so.2)
0:00:00.569254145 [333m 3020 [00m 0xa0bc0 [32;01mINFO [00m [00m mfw_v4lsrc mfw_gst_v4lsrc.c:467:mfw_gst_v4lsrc_capture_setup: [00m sensor chip is adv7180_decoder
0:00:00.569581813 [333m 3020 [00m 0xa0bc0 [32;01mINFO [00m [00m mfw_v4lsrc mfw_gst_v4lsrc.c:495:mfw_gst_v4lsrc_capture_setup: [00m capture mode 0: 720x576
0:00:00.593286962 [333m 3020 [00m 0xa0bc0 [36mDEBUG [00m [00m mfw_v4lsrc mfw_gst_v4lsrc.c:1119:mfw_gst_v4lsrc_start: [00m Width = 720
0:00:00.593454963 [333m 3020 [00m 0xa0bc0 [36mDEBUG [00m [00m mfw_v4lsrc mfw_gst_v4lsrc.c:1120:mfw_gst_v4lsrc_start: [00m Height = 624
0:00:00.593560963 [333m 3020 [00m 0xa0bc0 [36mDEBUG [00m [00m mfw_v4lsrc mfw_gst_v4lsrc.c:1121:mfw_gst_v4lsrc_start: [00m Image size = 673920
0:00:00.593660630 [333m 3020 [00m 0xa0bc0 [36mDEBUG [00m [00m mfw_v4lsrc mfw_gst_v4lsrc.c:1122:mfw_gst_v4lsrc_start: [00m pixelformat = 842093913
0:00:00.624114947 [333m 3020 [00m 0xa0bc0 [36mDEBUG [00m [00m mfw_v4lsrc mfw_gst_v4lsrc.c:384:mfw_gst_v4lsrc_start_capturing: [00m >>V4L_SRC: time per frame 33333333
0:00:00.624762946 [333m 3020 [00m 0xa0bc0 [32;01mINFO [00m [00m mfw_v4lsrc mfw_gst_v4lsrc.c:1384:mfw_gst_v4lsrc_fixate: [00m capture: 720, 576, fixrate :video/x-raw-yuv, format=(fourcc)I420, width=(int)720, height=(int)576, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1
0:00:00.691562599 [333m 3020 [00m 0x24b80 [37mLOG [00m [00m mfw_v4lsrc mfw_gst_v4lsrc.c:1219:mfw_gst_v4lsrc_buffer_new: [00m v4l buffer index:0 will be used outside
0:00:00.691812266 [333m 3020 [00m 0x24b80 [37mLOG [00m [00m mfw_v4lsrc mfw_gst_v4lsrc.c:1231:mfw_gst_v4lsrc_buffer_new: [00m v4l dequeued buffer index:0(ref 1), num in pool:5
0:00:00.692315599 [333m 3020 [00m 0x24b80 [36mDEBUG [00m [00m mfw_isink mfw_gst_isink.c:1467:mfw_gst_isink_setcaps: [00m >>I_SINK: no sfd field found in caps.
0:00:00.734632922 [333m 3020 [00m 0x24b80 [37mLOG [00m [00m mfw_v4lsrc mfw_gst_v4lsrc.c:1219:mfw_gst_v4lsrc_buffer_new: [00m v4l buffer index:1 will be used outside
0:00:00.734792589 [333m 3020 [00m 0x24b80 [37mLOG [00m [00m mfw_v4lsrc mfw_gst_v4lsrc.c:1231:mfw_gst_v4lsrc_buffer_new: [00m v4l dequeued buffer index:1(ref 1), num in pool:4
0:00:00.754005591 [333m 3020 [00m 0x24b80 [37mLOG [00m [00m mfw_v4lsrc mfw_gst_v4lsrc.c:278:mfw_gst_v4lsrc_buffer_finalize: [00m v4l buffer index:0 will be push in pool
0:00:00.754184257 [333m 3020 [00m 0x24b80 [37mLOG [00m [00m mfw_v4lsrc mfw_gst_v4lsrc.c:292:mfw_gst_v4lsrc_buffer_finalize:<mfwgstv4lsrc0> [00m freeing buffer 0xbb800 for frame 0
0:00:00.777703591 [333m 3020 [00m 0x24b80 [37mLOG [00m [00m mfw_v4lsrc mfw_gst_v4lsrc.c:1219:mfw_gst_v4lsrc_buffer_new: [00m v4l buffer index:2 will be used outside
0:00:00.777841257 [333m 3020 [00m 0x24b80 [37mLOG [00m [00m mfw_v4lsrc mfw_gst_v4lsrc.c:1231:mfw_gst_v4lsrc_buffer_new: [00m v4l dequeued buffer index:2(ref 1), num in pool:4
0:00:00.797257924 [333m 3020 [00m 0x24b80 [37mLOG [00m [00m mfw_v4lsrc mfw_gst_v4lsrc.c:278:mfw_gst_v4lsrc_buffer_finalize: [00m v4l buffer index:1 will be push in pool
0:00:00.797436924 [333m 3020 [00m 0x24b80 [37mLOG [00m [00m mfw_v4lsrc mfw_gst_v4lsrc.c:292:mfw_gst_v4lsrc_buffer_finalize:<mfwgstv4lsrc0> [00m freeing buffer 0xbb8b8 for frame 1
0:00:00.820785924 [333m 3020 [00m 0x24b80 [37mLOG [00m [00m mfw_v4lsrc mfw_gst_v4lsrc.c:1219:mfw_gst_v4lsrc_buffer_new: [00m v4l buffer index:3 will be used outside
0:00:00.820919924 [333m 3020 [00m 0x24b80 [37mLOG [00m [00m mfw_v4lsrc mfw_gst_v4lsrc.c:1231:mfw_gst_v4lsrc_buffer_new: [00m v4l dequeued buffer index:3(ref 1), num in pool:4
0:00:00.829096257 [333m 3020 [00m 0x24b80 [37mLOG [00m [00m mfw_v4lsrc mfw_gst_v4lsrc.c:278:mfw_gst_v4lsrc_buffer_finalize: [00m v4l buffer index:2 will be push in pool
0:00:00.829289591 [333m 3020 [00m 0x24b80 [37mLOG [00m [00m mfw_v4lsrc mfw_gst_v4lsrc.c:292:mfw_gst_v4lsrc_buffer_finalize:<mfwgstv4lsrc0> [00m freeing buffer 0xbb970 for frame 2
0:00:00.863857591 [333m 3020 [00m 0x24b80 [37mLOG [00m [00m mfw_v4lsrc mfw_gst_v4lsrc.c:1219:mfw_gst_v4lsrc_buffer_new: [00m v4l buffer index:4 will be used outside
0:00:00.863987924 [333m 3020 [00m 0x24b80 [37mLOG [00m [00m mfw_v4lsrc mfw_gst_v4lsrc.c:1231:mfw_gst_v4lsrc_buffer_new: [00m v4l dequeued buffer index:4(ref 1), num in pool:4
0:00:00.872047258 [333m 3020 [00m 0x24b80 [37mLOG [00m [00m mfw_v4lsrc mfw_gst_v4lsrc.c:278:mfw_gst_v4lsrc_buffer_finalize: [00m v4l buffer index:3 will be push in pool
0:00:00.872200591 [333m 3020 [00m 0x24b80 [37mLOG [00m [00m mfw_v4lsrc mfw_gst_v4lsrc.c:292:mfw_gst_v4lsrc_buffer_finalize:<mfwgstv4lsrc0> [00m freeing buffer 0xbba28 for frame 3
0:00:00.908539589 [333m 3020 [00m 0x24b80 [37mLOG [00m [00m mfw_v4lsrc mfw_gst_v4lsrc.c:1219:mfw_gst_v4lsrc_buffer_new: [00m v4l buffer index:5 will be used outside
0:00:00.908671589 [333m 3020 [00m 0x24b80 [37mLOG [00m [00m mfw_v4lsrc mfw_gst_v4lsrc.c:1231:mfw_gst_v4lsrc_buffer_new: [00m v4l dequeued buffer index:5(ref 1), num in pool:4
0:00:00.916738923 [333m 3020 [00m 0x24b80 [37mLOG [00m [00m mfw_v4lsrc mfw_gst_v4lsrc.c:278:mfw_gst_v4lsrc_buffer_finalize: [00m v4l buffer index:4 will be push in pool
0:00:00.916894256 [333m 3020 [00m 0x24b80 [37mLOG [00m [00m mfw_v4lsrc mfw_gst_v4lsrc.c:292:mfw_gst_v4lsrc_buffer_finalize:<mfwgstv4lsrc0> [00m freeing buffer 0xbbae0 for frame 4
0:00:00.951608591 [333m 3020 [00m 0x24b80 [37mLOG [00m [00m mfw_v4lsrc mfw_gst_v4lsrc.c:1219:mfw_gst_v4lsrc_buffer_new: [00m v4l buffer index:0 will be used outside
0:00:00.951737258 [333m 3020 [00m 0x24b80 [37mLOG [00m [00m mfw_v4lsrc mfw_gst_v4lsrc.c:1231:mfw_gst_v4lsrc_buffer_new: [00m v4l dequeued buffer index:0(ref 1), num in pool:4
0:00:00.959797591 [333m 3020 [00m 0x24b80 [37mLOG [00m [00m mfw_v4lsrc mfw_gst_v4lsrc.c:278:mfw_gst_v4lsrc_buffer_finalize: [00m v4l buffer index:5 will be push in pool
0:00:00.959949258 [333m 3020 [00m 0x24b80 [37mLOG [00m [00m mfw_v4lsrc mfw_gst_v4lsrc.c:292:mfw_gst_v4lsrc_buffer_finalize:<mfwgstv4lsrc0> [00m freeing buffer 0xbbb98 for frame 5
0:00:00.994684256 [333m 3020 [00m 0x24b80 [37mLOG [00m [00m mfw_v4lsrc mfw_gst_v4lsrc.c:1219:mfw_gst_v4lsrc_buffer_new: [00m v4l buffer index:1 will be used outside
0:00:00.994811923 [333m 3020 [00m 0x24b80 [37mLOG [00m [00m mfw_v4lsrc mfw_gst_v4lsrc.c:1231:mfw_gst_v4lsrc_buffer_new: [00m v4l dequeued buffer index:1(ref 1), num in pool:4
0:00:01.002876256 [333m 3020 [00m 0x24b80 [37mLOG [00m [00m mfw_v4lsrc mfw_gst_v4lsrc.c:278:mfw_gst_v4lsrc_buffer_finalize: [00m v4l buffer index:0 will be push in pool
0:00:01.003030590 [333m 3020 [00m 0x24b80 [37mLOG [00m [00m mfw_v4lsrc mfw_gst_v4lsrc.c:292:mfw_gst_v4lsrc_buffer_finalize:<mfwgstv4lsrc0> [00m freeing buffer 0xbb800 for frame 0
0:00:01.037755925 [333m 3020 [00m 0x24b80 [37mLOG [00m [00m mfw_v4lsrc mfw_gst_v4lsrc.c:1219:mfw_gst_v4lsrc_buffer_new: [00m v4l buffer index:2 will be used outside
0:00:01.037884591 [333m 3020 [00m 0x24b80 [37mLOG [00m [00m mfw_v4lsrc mfw_gst_v4lsrc.c:1231:mfw_gst_v4lsrc_buffer_new: [00m v4l dequeued buffer index:2(ref 1), num in pool:4
0:00:01.045946925 [333m 3020 [00m 0x24b80 [37mLOG [00m [00m mfw_v4lsrc mfw_gst_v4lsrc.c:278:mfw_gst_v4lsrc_buffer_finalize: [00m v4l buffer index:1 will be push in pool
0:00:01.046100925 [333m 3020 [00m 0x24b80 [37mLOG [00m [00m mfw_v4lsrc mfw_gst_v4lsrc.c:292:mfw_gst_v4lsrc_buffer_finalize:<mfwgstv4lsrc0> [00m freeing buffer 0xbb8b8 for frame 1
0:00:01.080830923 [333m 3020 [00m 0x24b80 [37mLOG [00m [00m mfw_v4lsrc mfw_gst_v4lsrc.c:1219:mfw_gst_v4lsrc_buffer_new: [00m v4l buffer index:3 will be used outside
0:00:01.080962257 [333m 3020 [00m 0x24b80 [37mLOG [00m [00m mfw_v4lsrc mfw_gst_v4lsrc.c:1231:mfw_gst_v4lsrc_buffer_new: [00m v4l dequeued buffer index:3(ref 1), num in pool:4
0:00:01.089020590 [333m 3020 [00m 0x24b80 [37mLOG [00m [00m mfw_v4lsrc mfw_gst_v4lsrc.c:278:mfw_gst_v4lsrc_buffer_finalize: [00m v4l buffer index:2 will be push in pool
0:00:01.089219924 [333m 3020 [00m 0x24b80 [37mLOG [00m [00m mfw_v4lsrc mfw_gst_v4lsrc.c:292:mfw_gst_v4lsrc_buffer_finalize:<mfwgstv4lsrc0> [00m freeing buffer 0xbb970 for frame 2
0:00:01.123904924 [333m 3020 [00m 0x24b80 [37mLOG [00m [00m mfw_v4lsrc mfw_gst_v4lsrc.c:1219:mfw_gst_v4lsrc_buffer_new: [00m v4l buffer index:4 will be used outside
0:00:01.124035257 [333m 3020 [00m 0x24b80 [37mLOG [00m [00m mfw_v4lsrc mfw_gst_v4lsrc.c:1231:mfw_gst_v4lsrc_buffer_new: [00m v4l dequeued buffer index:4(ref 1), num in pool:4
0:00:01.132096591 [333m 3020 [00m 0x24b80 [37mLOG [00m [00m mfw_v4lsrc mfw_gst_v4lsrc.c:278:mfw_gst_v4lsrc_buffer_finalize: [00m v4l buffer index:3 will be push in pool
Where is the source for libmfw_gst_tvsrc and gstreamer-fsl in general? Does Freescale develop this privately and only release periodic source within the IMX_MMCODEC packages? Is there a release timeline?
I actually have the same doubt. My ADV7180 works perfectly with tvsrc but not with mfw_v4lsrc, I tried to directly invoke the V4L2 API followed exactly same sequence from strace of tvsrc but still getting rolling images. What's more strange is that if I run tvsrc once and stop touching any setting of the capture interface, my capture will work greatly. I guess there is something wrong with my VIDIOC_S_FMT call but I couldn't find what exactly is wrong. Does someone have similar problem as us? And how did you solve it?
Hi !
I have tried to capture a live view of my adv7180 with this pipeline:
gst-launch tvsrc ! vpuenc ! matroskamux ! filesink location=./test2avi
The file test2.avi was created (it seems correctly), but vlc and gstreamer are unable to show the recording data.
The pipeline below instead works...
gst-launch videotestsrc ! vpuenc ! matroskamux ! filesink location=./test.avi
where I'm wrong ?
It works...
Wonderful !...
many and many thanks