[gst-devel] another "can't record twice" issue

Daniel Drake dsd at laptop.org
Mon Aug 11 22:07:44 CEST 2008


Hi,

gstreamer-0.10.19
gstreamer-plugins-base-0.10.19
gstreamer-plugins-good-0.10.8

After fixing a bug in gstoggmux and improving my test program to
correctly shut down live recordings (as discussed on this list), my test
program works fine. http://dev.laptop.org/~dsd/20080811/recordtwice.txt

I am still unable to get my real application working properly, which is
a bit more complicated. The differences are:
 - it uses v4l2src rather than videotestsrc
 - it throws audio recording components into the pipeline, to record 
   live synchronised video *and* audio (to separate files)
 - it includes videorate and videoscale elements in the video recording
   pipeline

I have come up with a new test program which reproduces the bug.
http://dev.laptop.org/~dsd/20080811/record_twice_av.txt

Here is what it is supposed to do:
 1. It launches and shows a live webcam feed on-screen
 2. After 2 seconds, it (cleanly) stops the webcam feed, and adds
    a videobin (a webcam video encoding bin) and an
    audiobin (an ALSA .wav recording bin) to the pipeline
 3. The modified pipeline is set to PLAYING, and video + audio is
    live-recorded to separate files.
 4. 7 seconds later, the pipeline is stopped (cleanly), the audiobin
    and videobin are removed, and then the pipeline is played again
    (in live-feed-to-screen mode, as in step 1)
 5. 10 seconds later, we start recording video+audio again, as in step 2
 6. 7 seconds later, the pipeline is stopped (cleanly) and we go
    back to live-feed-to-screen mode as in 1.

The problem is that in step 5, the video freezes and nothing is written
to the files. In step 6, we never receive the EOS message on the
pipeline bus, so the pipeline is never stopped.

However the same exact code worked fine (recorded the files and did not
freeze) the first time around.

I don't even know where to start digging into this one, because I cannot
see any suspicious gstreamer debug messages. I also have found 3
separate ways of working around the issue (none of which are suitablke
for the real application or provide any indication of the whereabouts of
the bug):
 1. Using videotestsrc instead of v4l2src makes the issue go away
 2. Removing the videorate element from videobin makes the issue go away
 3. Removing all audiobin related code (and just recording video) makes
    the issue go away

Any ideas?
Would someone with a v4l2-capable webcam mind trying to reproduce the
issue? Just run this program and confirm that it doesn't freeze when
recording the 2nd video...
http://dev.laptop.org/~dsd/20080811/record_twice_av.txt

Thanks,
Daniel






More information about the gstreamer-devel mailing list