[gst-devel] gst 0.10 / avisynth 3.0 : thread problem (I think)
Vincent Torri
Vincent.Torri at iecn.u-nancy.fr
Sun Mar 26 11:24:01 CEST 2006
hey,
i try to use gstreamer 0.10 in avisynth 3.0. I think that I have a thread
problem. Avisynth and gstreamer run in their own thread. The gstreamer
pipeline is simple :
filesrc ! decodebin ! fakesink(s)
When I seek to a frame, I use a mutex, a condition and a boolean, which I
store in a class (yes, it's c++ :) ). I do exactly that :
1) I lock the mutex
2) I seek (on the pipeline) to the time corresponding to the frame number
3) I set the pipeline to the PLAY state
4) while (!my_boolean) I wait
5) my_boolean = false
6) I unlock the mutex
When the handoff signal is sent, a callback is called. I do that in the
callback :
1) i skip the incorrect frames
2) When the correct frame is found :
a) I lock the mutex
b) I store the buffer (I increase its ref)
c) I set the pipeline on PAUSED
d) my_boolean = true
e) I broadcast
f) I unlock the mutex
It seeks to the correct frame, but the test program locks, when the
pipeline is set on the PAUSE state (step 2) c) )
I've tried to find out why for 1 week, but without success. Does someone
know why ? Is there something special when a pipeline goes from the PLAY
to the PAUSE state ?
thank you
Vincent
More information about the gstreamer-devel
mailing list