After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 674151 - [pitivi] Deadlocks when trying to play a particular AVI or OGG Theora clip in the timeline
[pitivi] Deadlocks when trying to play a particular AVI or OGG Theora clip in...
Status: RESOLVED INCOMPLETE
Product: GStreamer
Classification: Platform
Component: gst-editing-services
git master
Other Linux
: Normal critical
: git master
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2012-04-15 18:41 UTC by Jean-François Fortin Tam
Modified: 2012-12-12 18:39 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
gdb thread apply all bt (88.60 KB, text/plain)
2012-04-15 18:41 UTC, Jean-François Fortin Tam
Details

Description Jean-François Fortin Tam 2012-04-15 18:41:38 UTC
Created attachment 212092 [details]
gdb thread apply all bt

I encounter a deadlock 100% of the time when trying to play a particular AVI clip in the pitivi ges timeline. Attaching a gdb thread apply all bt.
Comment 1 Jean-François Fortin Tam 2012-04-15 18:42:43 UTC
Sample file: http://jeff.ecchi.ca/public/gstreamer-674151.avi
Comment 2 Jean-François Fortin Tam 2012-04-24 00:50:17 UTC
Another sample that is guaranteed to trigger the deadlock: http://mirror.cessen.com/blender.org/peach/trailer/trailer_400p.ogg
Comment 3 Mathieu Duponchelle 2012-04-28 23:49:00 UTC
OK so briefly, the problem was with the get_state function in togglePlayback.
With some clips, when you seek at a certain position, only part of the bins see their state set to PAUSED. So when you do a get_state on the pipeline, it never returns.
What puzzles me is the logs from GST_DEBUG.
When doing an "incomplete" seek, you will get this :

0:00:09.687979007 20400 0x7fbb30002a00 INFO              GST_STATES gstbin.c:2910:bin_handle_async_done:<videosink> committing state from PAUSED to PAUSED, old pending PAUSED
0:00:09.688140586 20400 0x7fbb30002a00 INFO              GST_STATES gstbin.c:2930:bin_handle_async_done:<videosink> completed state change, pending VOID
0:00:09.688203016 20400 0x7fbb30002a00 INFO              GST_STATES gstbin.c:2910:bin_handle_async_done:<vbin> committing state from PAUSED to PAUSED, old pending PAUSED
0:00:09.688376366 20400 0x7fbb30002a00 INFO              GST_STATES gstbin.c:2930:bin_handle_async_done:<vbin> completed state change, pending VOID

When the seek is succesful, two more elements are added to this log : gestimelinepipeline1 and internal-sinks.

I pushed a branch called deadlocks on my github that at least prevents the deadlocks.
Comment 4 Jean-François Fortin Tam 2012-05-01 19:38:34 UTC
Full-length version of the file from comment 1:
http://jeff.ecchi.ca/public/gstreamer-674151-full.avi

What's interesting is that if you "seek then try to toggle playback" (ie: not do playback from the start, or playback then seek), it only works in some specific areas:
- from 0 to 1 second
- at 32 seconds
Comment 5 Jean-François Fortin Tam 2012-07-20 16:04:16 UTC
The file from comment #1 and comment #4 doesn't seem to cause problems anymore. However, OGG Theora files such as the 480p big buck bunny trailer in comment #2 seem to seek/set the pipeline incorrectly.

If you insert BBB in the a blank timeline first and then insert the other samples, it won't work, you'll get a black screen in the pitivi viewer.

However, if you insert the other sample from comment #4 in the timeline first, seek it and then insert the BBB trailer, everything works (including the BBB trailer).
Comment 6 Mathieu Duponchelle 2012-07-22 00:13:34 UTC
Yes I think I remember reporting that seeking with BBB was indeed wrong. However, I also remind seeing the same kind of problems in totem as well. For example, open the clip with the beast that goes "WAAAAHHHH" in totem, try to seek at the end, it will come back almost at the beginning. What thiblahute and I were thinking was that the file might be corrupt.
Comment 7 Jean-François Fortin Tam 2012-12-12 18:39:44 UTC
Can't reproduce anymore with my current build of pitivi and gst 1.0.2.