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 697820 - playbin: Enabling visualizations during playback stops the pipeline
playbin: Enabling visualizations during playback stops the pipeline
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-base
1.0.6
Other Linux
: Normal major
: 1.0.7
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2013-04-11 16:22 UTC by Sebastien Bacher
Modified: 2013-04-24 09:16 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
dbg.log.xz (690.11 KB, application/octet-stream)
2013-04-23 10:21 UTC, Tim-Philipp Müller
Details

Description Sebastien Bacher 2013-04-11 16:22:03 UTC
The issue has been reported on https://bugs.launchpad.net/ubuntu/+source/totem/+bug/1132538

Using totem 3.6.3 in raring (under Unity).

When video effects are enabled and a song is played in totem, the playing stops after some seconds and those warnings are displayed on stdout:

"(totem:18048): Clutter-Gst-WARNING **: Failed to convert non-scaled coordinates for video-sink"

The launchpad bug includes a log with the errors and a backtrace of totem (which stopped playing):
https://launchpadlibrarian.net/132240581/videos.txt
Comment 1 Lionel Landwerlin 2013-04-13 16:17:42 UTC
The ClutterGst warnings are reporting the impossibility to translate pointer coordinates, to stage coordinates. I believe this could be because of ClutterGtk, but I'm not sure. I don't really understand why you're getting gstreamer navigation events, those are common when watching a DVD or something.

What video effects are you talking about? Visualization? Or a custom plugin?

Finally your backtrace seems to show a deadlock in gstreamer. I would advise to reassign the bug to either Totem or Gstreamer.
Comment 2 Sebastien Bacher 2013-04-15 08:11:00 UTC
Thanks for the reply.

> What video effects are you talking about? Visualization? Or a custom plugin?

the "display visual effect when playing an audio file" option in totem preferences, the default option seems to be "goom"

> I would advise to reassign the bug to either Totem or Gstreamer.

you wontfixed the bug, shouldn't it be reassigned open rather?
Comment 3 Lionel Landwerlin 2013-04-15 09:58:32 UTC
Sure, reallocate the bug to the right project and reopen it.
Comment 4 Tim-Philipp Müller 2013-04-15 10:59:36 UTC
Why is this a bug in GStreamer?

I don't see a deadlock, where is it?

I have seen those warnings in the past, but not for some time now, maybe it was fixed in clutter or totem?

I don't think those warnings are likely to be gstreamer's fault.

Clutter videosink will get navigation events sent from totem whenever the mouse pointer moves over the window.
Comment 5 Sebastien Bacher 2013-04-15 11:21:03 UTC
I don't know where the bug is, but it happens in a consistent way in Ubuntu raring, what info would be useful to you? 

I'm not sure if the warnings are a reflect of the "stop playing" bug, they could as well be a different issue, do you want me to open a second bug about the playing issue?

stacktrace of totem once it stops playing:

Program received signal SIGINT, Interrupt.
0xb7fdd424 in __kernel_vsyscall ()


Comment 6 Sebastian Dröge (slomo) 2013-04-22 08:48:58 UTC
Do you have a way to reproduce this somehow? I can't reproduce it with gst-plugins-base/tests/examples/playback and gst-launch with visualizations.
Comment 7 Sebastien Bacher 2013-04-22 10:22:30 UTC
> Do you have a way to reproduce this somehow?

On Ubuntu raring:
- gsettings set org.gnome.totem show-visualizations true
- totem song.ogg (or mp3)
- wait a second

totem plays for a second and the slider stop moving, sounds stop working
Comment 8 Sebastien Bacher 2013-04-22 10:23:22 UTC
how do you use gst-launch with visualizations? if you give me the command I can try if that hits the same issue than totem...
Comment 9 Sebastian Dröge (slomo) 2013-04-22 10:33:43 UTC
gst-launch-1.0 playbin uri=file:///path/to/file flags=0x0000061F

I don't have totem with GStreamer 1.0 here, so can't test with that.
Comment 10 Sebastien Bacher 2013-04-22 11:50:30 UTC
ok, I tried for a bit to reproduce with gst-launch (e.g adding "vis-plugin='goom' video-sink="cluttersink" flags=0x0000061F" and such) without luck, it happens only with totem... is there any extra debug infos I can provide there?
Comment 11 Tim-Philipp Müller 2013-04-23 10:21:34 UTC
Created attachment 242200 [details]
dbg.log.xz

Another debug log. Playing a flac file (from NFS). Hangs with progress stuck at 2 seconds. Back trace roughly matches the one above, just with a different decoders (streamsynchronizer stuck at same place though)
Comment 12 Sebastian Dröge (slomo) 2013-04-23 10:29:08 UTC
That's happening because streamsynchronizer gets a second stream-start event on the audio stream it seems.
Comment 13 Sebastian Dröge (slomo) 2013-04-23 10:39:56 UTC
No, correction... it happens because the video pad is requested on streamsynchronizer after the audio stream has already started, thus interpreting this as the video stream starting a completely new stream... and waiting for the audio to finish.
Comment 14 Sebastian Dröge (slomo) 2013-04-23 11:20:14 UTC
commit 2e017bd595b7232295abe4a1e6bb76d9f559c228
Author: Sebastian Dröge <sebastian.droege@collabora.co.uk>
Date:   Tue Apr 23 13:18:45 2013 +0200

    streamsynchronizer: If a stream belongs to an already running stream, don't wait
    
    This fixes enabling visualizations after the audio stream already started.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=697820
Comment 15 Sebastien Bacher 2013-04-23 17:42:39 UTC
Thanks, I tested the commit and can confirm it fixes the issue
Comment 16 Tim-Philipp Müller 2013-04-23 22:53:16 UTC
Only the unit test fails now:

 Running suite(s): streamsynchronizer
 0%: Checks: 1, Failures: 1, Errors: 0
 elements/streamsynchronizer.c:136:F:general:test_basic:0: 'recvseg->base' (0) is not equal to 'expectseg->base' ( 10000000000)
 FAIL: elements/streamsynchronizer
Comment 17 Sebastian Dröge (slomo) 2013-04-24 09:16:46 UTC
commit 9c5c0ca8787e87160cc568848a67dc6e9a94c1c3
Author: Sebastian Dröge <sebastian.droege@collabora.co.uk>
Date:   Wed Apr 24 11:10:34 2013 +0200

    streamsynchronizer: Fix check for belonging to another stream
    
    https://bugzilla.gnome.org/show_bug.cgi?id=697820

commit fbe295f275227e9f1537aecdab89a3fabbb0b9c4
Author: Sebastian Dröge <sebastian.droege@collabora.co.uk>
Date:   Wed Apr 24 11:07:30 2013 +0200

    streamsynchronizer: Create element with gst_element_factory_make()
    
    Otherwise plugin_init() is not called and initialization is missing.