I run the following command line to capture live sound and video and save to disk as an mp4 file. When I press the "Stop" button I get a crash. The mp4 file is then useless since the moov atom was never written to it. So I'm stuck.
Code: Select all
vlc -vvv v4l2:// :v4l2-dev="/dev/video0" :v4l2-input=1 :v4l2-io=1 :v4l2-width=720 :v4l2-height=576 :v4l2-adev="hw:0,0" :v4l2-audio-method=3 :v4l2-stereo :v4l2-samplerate=44100 :v4l2-tuner=0: v4l2-tuner-audio-mode=1 :v4l2-controls-reset :v4l2-auto-white-balance=1 :v4l2-autogain=1 :no-v4l2-audio-mute --v4l2-set-ctrls='{chroma agc=1,combfilter=1}' --sout '#duplicate{dst="transcode{threads=4,width=640,height=480,venc=x264,fps=25,vcodec=x264,vb=300,audio-sync,deinterlace=linear,acodec=mp4a,ab=96,channels=2,samplerate=44100}:duplicate{dst=std{access=file, mux=mp4, dst=/home/simonb/Temp/test.mp4} }"}' --sout-x264-ref=5
Here is the stack trace after pressing the stop button for the affected thread.
Code: Select all
Thread 12 (Thread 0x45fdd950 (LWP 21131)):
#0 video_del_buffer (p_this=0x185a588, p_pic=0x2a00000001) at transcode.c:2272
#1 0x00007f927bfd2c5c in transcode_video_filter_allocation_clear (p_filter=0x185a588) at transcode.c:1470
#2 0x00007f9283fb9b9c in filter_chain_DeleteFilterInternal (p_chain=0x1811300, p_filter=0x185a588) at misc/filter_chain.c:283
#3 0x00007f9283fba1ff in filter_chain_Delete (p_chain=0x1811300) at misc/filter_chain.c:97
#4 0x00007f927bfd5d04 in transcode_video_close (p_stream=<value optimized out>, id=0x16a6ff0) at transcode.c:1830
#5 0x00007f927bfd71bd in Del (p_stream=0x185a588, id=0x2a00000001) at transcode.c:960
#6 0x00007f927c1dac83 in Del (p_stream=<value optimized out>, id=0x167c060) at ../../include/vlc_sout.h:219
#7 0x00007f9283fbbd6a in sout_InputDelete (p_input=0x16a72d0) at stream_output/stream_output.c:253
#8 0x00007f9283f5bbab in DeleteDecoder (p_dec=0x161cae8) at input/decoder.c:1156
#9 0x00007f9283f5e160 in input_DecoderDelete (p_dec=0x161cae8) at input/decoder.c:270
#10 0x00007f9283f62311 in input_EsOutDelete (out=0x1618cb0) at input/es_out.c:284
#11 0x00007f9283f68ccf in End (p_input=0x15d66f8) at input/input.c:1291
#12 0x00007f9283f6daa9 in Run (p_this=0x15d66f8) at input/input.c:533
#13 0x00007f9283fa6ca6 in thread_entry (data=<value optimized out>) at misc/threads.c:465
#14 0x00007f92839ae2a3 in start_thread () from /lib64/libpthread.so.0
#15 0x00007f9283c9f03d in clone () from /lib64/libc.so.6
Code: Select all
static void video_del_buffer( vlc_object_t *p_this, picture_t *p_pic )
{
VLC_UNUSED(p_this);
if( p_pic )
{
free( p_pic->p_data_orig ); //Crashing on this line
free( p_pic->p_sys );
free( p_pic );
}
}