gstreamer cannot pause imxv4l2videosrc, audio and video delayed

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

gstreamer cannot pause imxv4l2videosrc, audio and video delayed

1,099 Views
chrisroed
Contributor IV

Wandboard 3.14.28 kernel

Arch linux,

gstreamer-imx commit 76c15a0e4380f5499a8476685aaede24aac4894c
                         Merge: 77d81f7 b5a607c
                         Author: dv1 <dv@pseudoterminal.org>
                         Date: Thu Aug 11 08:58:37 2016 +0200

I'm having an odd error with gstreamer.  I'm streaming an audio/video stream to a file and finding out that the imxv4l2videosrc element has some issues.  First of all, the audio is about 2 seconds out of sync with the video.  I was able to solve this by inserting a queue into pipeline (see bold below)

gst-launch-1.0 \
      flvmux streamable=true name=muxer ! \
      filesink location=test.mp4 \
   imxv4l2videosrc queue-size=7 fps-n=30 ! queue ! \
      imxipuvideotransform ! imxvpuenc_h264 quant-param=31 ! h264parse ! \
      muxer.video \

   alsasrc ! audio/x-raw,channels=1 ! queue ! \
      audioconvert ! \
      faac rate-control=2 ! \
      muxer.audio

However, that added queue element causes the imxv4l2src to not got into paused state, which blocks gstreamer from closing the stream.

0:00:12.946507050 3886 0xc73c00 INFO GST_STATES gstbin.c:2316:gst_bin_element_set_state:<imxv4l2videosrc0> current PLAYING pending VOID_PENDING, desired next PAUSED  <<<----- I NEVER GET PAST HERE WHEN QUEUE ELEMENT IS PRESENT


0:00:12.946672394 3886 0xc73c00 INFO GST_STATES gstelement.c:2372:gst_element_continue_state:<imxv4l2videosrc0> completed state change to PAUSED


0:00:12.946795402 3886 0xc73c00 INFO GST_STATES gstelement.c:2277:_priv_gst_element_state_changed:<imxv4l2videosrc0> notifying about state-cha
nged PLAYING to PAUSED (VOID_PENDING pending)


0:00:12.946975747 3886 0xc73c00 INFO GST_STATES gstbin.c:2807:gst_bin_change_state_func:<pipeline0> child 'imxv4l2videosrc0' changed state to 3(PAUSED) successfully without preroll

Has anyone seen this?  I'm also open to a different solution to sync the audio and video that doesn't involve the queue.

Labels (4)
Tags (1)
0 Kudos
1 Reply

741 Views
igorpadykov
NXP Employee
NXP Employee

Hi Chris

one can try with gst-fsl-plugins described in sect.6.1 Freescale GStreamer plugins
attached Release Notes and sect.7 Multimedia Linux Guide.
imxv4l2videosrc is part of community GStreamer-imx plugins supported
on  meta-fsl-arm mailing list
https://lists.yoctoproject.org/listinfo/meta-freescale
One can post there, so that someone familiar with it could try to assist you.
There are 2 separate plugin's : community GStreamer-imx plugins and
nxp GStreamer Plugins (fsl-gst-plugin package), difference between them described on
trac.gateworks.com/wiki/Yocto/gstreamer
https://lists.yoctoproject.org/pipermail/meta-freescale/2014-August/010291.html

Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos