[gst-devel] why the recording pipeline stop so slow?

Wang Diancheng dianchengwang at gmail.com
Thu Apr 3 11:02:30 CEST 2008


I use following pipeline to record video(I developed program base on
gstreamer python binding.):

        gst-launch v4l2src name=videosrc queue-size=2 ! 
        image/jpeg,width=640,height=480 ! tee name=vsrc vsrc. ! queue 
        ! jpegdec ! ffmpegcolorspace ! timeoverlay ! gconfvideosink 
        vsrc. ! queue !  muxer. avimux name=muxer !  filesink
        location=x.avi alsasrc name=audiosrc !
        'audio/x-raw-int,rate=8000,channels=1,width=8,signed=false' !
        queue ! muxer.

but when I stop recording, it consume so much time(more than 30 seconds
sometimes). I used following code to stop recording:
        # stop v4l2src
        videosrc = self.recorder.get_by_name("videosrc")
        # stop alsasrc        
        audiosrc = self.recorder.get_by_name("audiosrc")

following is the gdb backtrace:

#0  0xffffe410 in __kernel_vsyscall ()
#1  0xb7ed9589 in __lll_lock_wait () from /lib/i686/cmov/libpthread.so.0
#2  0xb7ed4ba6 in _L_lock_95 () from /lib/i686/cmov/libpthread.so.0
#3  0xb7ed458a in pthread_mutex_lock () from /lib/i686/cmov/libpthread.so.0
#4  0xb6adacb9 in gst_base_src_set_playing (basesrc=0x83d75f0, live_play=0)
    at gstbasesrc.c:2453
#5  0xb6add9f8 in gst_base_src_change_state (element=0x83d75f0,
    transition=GST_STATE_CHANGE_PLAYING_TO_PAUSED) at gstbasesrc.c:2652
#6  0xb6a56be7 in gst_element_change_state (element=0x83d75f0,
    transition=GST_STATE_CHANGE_PLAYING_TO_PAUSED) at gstelement.c:2410
#7  0xb6a57133 in gst_element_set_state_func (element=0x83d75f0, state=GST_STATE_NULL)
    at gstelement.c:2360
#8  0xb6a55c93 in gst_element_set_state (element=0x83d75f0, state=GST_STATE_NULL)
    at gstelement.c:2263

why stop recording so slow?

More information about the gstreamer-devel mailing list