Hi All,
we are using wm8960 audio codec in 3.14.28 kernel version it's working fine from the command line if i am recording using arecord -f S16_LE -r 44100 audio.wav
And even using gstreamer pipeline also it's working fine.
we require the mixing of audio, video using gstreamer
gst-launch-1.0 -e imxv4l2src device=/dev/video0 ! queue ! vpuenc ! h264parse ! mux. alsasrc ! queue ! audioconvert ! voaacenc ! mux. mp4mux name=mux ! filesink location='test.mp4'
it is also working fine when we are implementing same thing from the source it's working some time only, But with the same source we are recording only audio or only video it's not giving any problem.
Only in the case of both audio and video together it's giving problem in audio so that it's not recording any thing i found that after starting audio it's entering in the following functions of pcm.c
In working case:
continuously getting the print of "snd_pcm_common_ioctl1" from sound/core/pcm_native.c and executing the case " case SNDRV_PCM_IOCTL_SYNC_PTR:"
Non working case:
initial very less time got "snd_pcm_common_ioctl1" after some time it's entered 6 to 7 times in
"case SNDRV_PCM_IOCTL_DELAY:" and from there entered in to the " case SNDRV_PCM_STATE_SUSPENDED:" of snd_pcm_delay function. how can i solve the issue.
If any one worked on these things kindly help me to sort it out.
Thanks & Regards,
Lavanya
Hi Lavanya
could you try with pulsesrc as described in attached Linux Guide
sect.7.3.7 Audio/Video recording
Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
Hi igorpadykov,
when i tried from the command line
gst-launch-1.0 -e imxv4l2src device=/dev/video0 ! queue ! vpuenc ! h264parse ! mux. alsasrc ! queue ! audioconvert ! voaacenc ! mux. mp4mux name=mux ! filesink -- working
every time it works fine but when i tried to pass caps with this some time it's working some time it's not working.
gst-launch-1.0 -e imxv4l2src device=/dev/video0 ! 'video/x-raw,framerate=30/1,width=1280,height=720' ! clockoverlay ! queue ! vpuenc bitrate=1024 ! h264parse ! mux. alsasrc device=plughw:0,0 ! 'audio/x-raw,rate=8000,channels=2,depth=16,width=16,endianness=1234,signed=true' ! queue ! audioconvert ! voaacenc bitrate=8000 ! mux. flvmux streamable=true name=mux ! filesink location=test.mp4 sync=false -- not working
attached the log here:
Non-Working:
LAV 20: snd_pcm_common_ioctl1
LAV 8: snd_pcm_common_ioctl1
LAV 20: snd_pcm_common_ioctl1
LAV 11: snd_pcm_common_ioctl1
LAV 20: snd_pcm_common_ioctl1
LAV 8: snd_pcm_common_ioctl1
LAV 11: snd_pcm_common_ioctl1
LAV 20: snd_pcm_common_ioctl1
LAV 19: snd_pcm_common_ioctl1
LAV 1: snd_pcm_delay
New clock: GstAudioSrcClock
LAV 19: snd_pcm_common_ioctl1
LAV 1: snd_pcm_delay
LAV 19: snd_pcm_common_ioctl1
LAV 1: snd_pcm_delay
[INFO] ringBufferEnable 0, chromaInterleave 0, mapType 0, linear2TiledEnable 0
[WARN] VPU iram is less than needed, some parts don't uLAV 19: snd_pcm_common_ioctl1
se iram
LAV 1: snd_pcm_delay
LAV 19: snd_pcm_common_ioctl1
LAV 1: snd_pcm_delay
LAV 19: snd_pcm_common_ioctl1
LAV 1: snd_pcm_delay
LAV 19: snd_pcm_common_ioctl1
LAV 1: snd_pcm_delay
LAV 19: snd_pcm_common_ioctl1
LAV 1: snd_pcm_delay
after that it's not giving anything
Working case:
LAV 20: snd_pcm_common_ioctl1
LAV 20: snd_pcm_common_ioctl1
LAV 19: snd_pcm_common_ioctl1
LAV 1: snd_pcm_delay
LAV 20: snd_pcm_common_ioctl1
LAV 20: snd_pcm_common_ioctl1
LAV 20: snd_pcm_common_ioctl1
LAV 19: snd_pcm_common_ioctl1
LAV 20: snd_pcm_common_ioctl1
LAV 1: snd_pcm_delay
LAV 20: snd_pcm_common_ioctl1
LAV 20: snd_pcm_common_ioctl1
LAV 20: snd_pcm_common_ioctl1
LAV 19: snd_pcm_common_ioctl1
LAV 1: snd_pcm_delay
LAV 20: snd_pcm_common_ioctl1
LAV 20: snd_pcm_common_ioctl1
LAV 20: snd_pcm_common_ioctl1
LAV 19: snd_pcm_common_ioctl1
LAV 20: snd_pcm_common_ioctl1
LAV 1: snd_pcm_delay
LAV 20: snd_pcm_common_ioctl1
LAV 20: snd_pcm_common_ioctl1
LAV 20: snd_pcm_common_ioctl1
LAV 20: snd_pcm_common_ioctl1
LAV 20: snd_pcm_common_ioctl1
LAV 20: snd_pcm_common_ioctl1
LAV 19: snd_pcm_common_ioctl1
LAV 1: snd_pcm_delay
LAV 20: snd_pcm_common_ioctl1
LAV 20: snd_pcm_common_ioctl1
LAV 20: snd_pcm_common_ioctl1
LAV 20: snd_pcm_common_ioctl1
LAV 19: snd_pcm_common_ioctl1
LAV 1: snd_pcm_delay
LAV 20: snd_pcm_common_ioctl1
LAV 20: snd_pcm_common_ioctl1
LAV 20: snd_pcm_common_ioctl1
LAV 20: snd_pcm_common_ioctl1
LAV 19: snd_pcm_common_ioctl1
LAV 1: snd_pcm_delay
LAV 20: snd_pcm_common_ioctl1
LAV 20: snd_pcm_common_ioctl1
LAV 20: snd_pcm_common_ioctl1
LAV 20: snd_pcm_common_ioctl1
LAV 19: snd_pcm_common_ioctl1
LAV 1: snd_pcm_delay
LAV 20: snd_pcm_common_ioctl1
LAV 20: snd_pcm_common_ioctl1
LAV 20: snd_pcm_common_ioctl1
LAV 19: snd_pcm_common_ioctl1
LAV 20: snd_pcm_common_ioctl1
LAV 1: snd_pcm_delay
^Chandling interrupt.
Interrupt: Stopping pipeline .LAV 20: snd_pcm_common_ioctl1
..
EOS on shutdown enabled -- Forcing EOS on the pipeline
Waiting for EOS...LAV 20: snd_pcm_common_ioctl1
LAV 20: snd_pcm_common_ioctl1
LAV 20: snd_pcm_common_ioctl1
LAV 20: snd_pcm_common_ioctl1
Got EOS from element "pipeline0".LAV 19: snd_pcm_common_ioctl1
EOS received - stopping pipelinLAV 20: snd_pcm_common_ioctl1
e...
Execution ended after 0:00:LAV 1: snd_pcm_delay
02.161966667
Setting pipeline toLAV 20: snd_pcm_common_ioctl1
PAUSED ...
LAV 20: snd_pcm_common_ioctl1
LAV 19: snd_pcm_common_ioctl1
LAV 1: snd_pcm_delay
Setting pipeline to READY ...
LAV 24: snd_pcm_common_ioctl1
LAV 11: snd_pcm_common_ioctl1
LAV 20: snd_pcm_common_ioctl1
LAV 24: snd_pcm_common_ioctl1
LAV 7: snd_pcm_common_ioctl1
LAV : imx_hifi_hw_free
*********play=1 capture=0 STOP FUNCTION wm8960_set_dai_pll
Setting pipeline to NULL ...
LAV : imx_hifi_hw_free
*********play=1 capture=0 STOP FUNCTION wm8960_set_dai_pll
In this working case continuously LAV 20: snd_pcm_common_ioctl1 this print is coming.
How can i solve this issue, kindly help me to sort it out i am new to gstreamer.
Thanks,
Lavanya
Hi Lavanya
what bsp used in the case, could you try Demo Images from
i.MX 6 / i.MX 7 Series Software and Development Tool|NXP
Best regards
igor
Hi igorpadykov,
I tried to record individual audio and video in that case it's working fine all the time.
But when i tried mux with audio and video in that case it's not working all the time.
Only Audio:
gst-launch-1.0 alsasrc device="hw:0,0" ! "audio/x-raw,rate=8000,channels=2,depth=16,width=16",endianness=1234,signed=true ! queue ! audioconvert ! avimux ! filesink location=/tmp/audio.avi
Only Video:
gst-launch-1.0 imxv4l2src device=/dev/video0 ! 'video/x-raw, format=I420, width=1280, height=720, interlaced=false, framerate=30/1' ! imxvpuenc_h264 bitrate=1024 ! filesink location=/tmp/file.mp4
MUX of audio and video:
gst-launch-1.0 -e imxv4l2src device=/dev/video0 ! 'video/x-raw,framerate=30/1,width=1280,height=720' ! clockoverlay ! queue ! vpuenc bitrate=1024 ! h264parse ! mux. alsasrc device=plughw:0,0 ! 'audio/x-raw,rate=8000,channels=2,depth=16,width=16,endianness=1234,signed=true' ! queue ! audioconvert ! voaacenc bitrate=8000 ! mux. flvmux streamable=true name=mux ! filesink location=test.mp4 sync=false
Thanks in advance.
Thanks
Lavanya
Hi Lavanya
could you try to test it using SabreSD demo board with Demo Images.
Best regards
igor
Hi igorpadykov ,
my audio codec is wm8960 and i used yocto setup 1.7 which is having 3.14 kernel version.
Thanks
Lavanya