Hi,
I am attempting to construct a pipeline that uses a tee element so that I can run a few different threads from my Leopard board. So far, I have tried to record and live preview simultaneously but I have not been successful.
Taking a stab, I would have thought that the following would be an appropriate pipeline to do this:
/ # gst-launch v4l2src always-copy=false ! dmaiaccel ! \
> tee name=tee .src0,src1 tee.src0 ! \
> queue ! TIDmaiVideoSink sync=false displayStd=v4l2 displayDevice=/dev/video2 tee.src1 !\
> queue ! dmaienc_mpeg4 ! qtmux ! filesink location=test.mp4
This piepline results in a live image on the screen for about a second which freezes, and a file is created with nothing in it - the terminal window loom like this:
/ # gst-launch v4l2src always-copy=false ! dmaiaccel ! tee name=tee .src0,src1 tee.src0 ! queue ! TIDmaiVideoSink sync=false displayStd=v4l2 displayDevice=/dev/video2 tee.src1 ! queue ! dmaiaccel ! dmaienc_mpeg4 ! qtmux ! filesink location=test.mp4<7>mt9v113 1-003c: mt9v113_write_reg reg=0x98c, val=0x2739Setting pipeline to PAUSED ...[ 3060.700000] mt9v113 1-003c: invalid control id 9963781[ 3060.710000] mt9v113 1-003c: invalid control id 9963782[ 3060.710000] mt9v113 1-003c: invalid control id 9963783[ 3060.720000] mt9v113 1-003c: invalid control id 9963784[ 3060.720000] mt9v113 1-003c: invalid control id 9963785[ 3060.730000] mt9v113 1-003c: invalid control id 9963786[ 3060.730000] mt9v113 1-003c: invalid control id 9963787[ 3060.740000] mt9v113 1-003c: invalid control id 9963788[ 3060.740000] mt9v113 1-003c: invalid control id 9963789[ 3060.750000] mt9v113 1-003c: invalid control id 9963790[ 3060.750000] mt9v113 1-003c: invalid control id 9963791[ 3060.760000] mt9v113 1-003c: invalid control id 9963792[ 3060.760000] mt9v113 1-003c: invalid control id 9963793[ 3060.770000] mt9v113 1-003c: invalid control id 9963796[ 3060.780000] mt9v113 1-003c: invalid control id 9963797[ 3060.780000] mt9v113 1-003c: invalid control id 9963798[ 3060.790000] mt9v113 1-003c: invalid control id 9963799[ 3060.790000] mt9v113 1-003c: invalid control id 9963800[ 3060.800000] mt9v113 1-003c: invalid control id 9963801[ 3060.800000] mt9v113 1-003c: invalid control id 9963802[ 3060.810000] mt9v113 1-003c: invalid control id 9963803[ 3060.810000] mt9v113 1-003c: invalid control id 9963804[ 3060.820000] mt9v113 1-003c: invalid control id 9963805[ 3060.820000] mt9v113 1-003c: invalid control id 9963806[ 3060.840000] vpfe-capture: hpitch = 640, vpitch = 480, bpp = 2[ 3060.850000] vpfe-capture: adjusted hpitch = 640, vpitch = 480, bpp = 2[ 3060.870000] vpfe-capture vpfe-capture: calling ccdc_config_raw()Pipeline is live and does not need PREROLL ...Setting pipeline to PLAYING ...New clock: GstSystemClock
The pipeline does not stop until I press ctrl C.
I have played around a little with the elements and theire order and from what I can gather it appears that the dmaienc_mpeg4 element (I think) that causes the freeze.
I was wondering if anybody could help
Kacie
Actually, I think it works for all other plugins, but only one TI plugin can be used at a time.
Any ideas?
kacie
Hi Kacie
Have you seen this link?
gstreamer.freedesktop.org/.../gstreamer-plugins-tee.html
or even this link has a pipeline based on the Tee plugin:
blog.elphel.com/.../interfacing-elphel-cameras-with-gstreamer-opencv-opengl-and-python-get-profit-of-dsp-or-gpu-based-optimisation-control-camera-settings-from-python-application-or-human-interface-device-hid
Also found these two sample pipelines for DM365 on TI's website:
Captured (alsasrc) -> AAC + PlayBack:
gst-launch -v alsasrc num-buffers=1000 ! audio/x-raw-int, endianness=1234, signed=true, width=16, depth=16, rate=44100, channels=2 ! tee name=t ! queue ! TIAudenc1 bitrate=64000 engineName=codecServer codecName=aaclcenc ! filesink location=output.aac t. ! queue ! alsasink sync=false
PCM File -> AAC + PlayBack:
gst-launch filesrc location=sample.pcm ! audio/x-raw-int, endianness=1234, signed=true, width=16, depth=16, rate=44100, channels=2 ! tee name=t ! queue ! TIAudenc1 bitrate=64000 engineName=codecServer codecName=aaclcenc ! filesink location=output.aac t. ! queue ! alsasink sync=false
They are for Audio playback and record though.