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 491305 - [playbin?] intro-leopard.mov sometimes EOSes immediately, sometimes not
[playbin?] intro-leopard.mov sometimes EOSes immediately, sometimes not
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-ugly
git master
Other Linux
: Normal normal
: 0.10.7
Assigned To: Wim Taymans
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2007-10-29 09:08 UTC by Martin Ejdestig
Modified: 2007-10-30 12:32 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Martin Ejdestig 2007-10-29 09:08:45 UTC
http://media.arstechnica.com/video/leopard-intro.mov
Comment 1 Bastien Nocera 2007-10-29 11:38:51 UTC
Works fine here. What do you get on the command-line when trying to play this stream ("firefox -debug" is necessary if you use firefox, otherwise it will eat the output)?
Comment 2 Martin Ejdestig 2007-10-29 12:30:01 UTC
I'm using Epiphany but it doesn't work in Firefox either. Here's the output from running "firefox -debug" (didn't want to end my current Epiphany session):


me@incendo:~$ firefox -debug http://media.arstechnica.com/video/leopard-intro.mov
** Message: NP_Initialize
** Message: NP_Initialize succeeded
** Message: totemPlugin ctor [0x8b7d978]
** Message: Init mimetype 'video/quicktime' mode 2
** Message: Base URI is 'http://media.arstechnica.com/video/leopard-intro.mov'
** Message: Real mimetype for 'video/quicktime' is 'video/quicktime'
argv[0] type video/quicktime
argv[1] src http://media.arstechnica.com/video/leopard-intro.mov
argv[2] name plugin
argv[3] height 100%
argv[4] width 100%
** Message: mSrc: http://media.arstechnica.com/video/leopard-intro.mov
** Message: mCache: 0
** Message: mControllerHidden: 0
** Message: mShowStatusbar: 0
** Message: mHidden: 0
** Message: mAudioOnly: 0
** Message: mAutostart: 1, mRepeat: 0
** Message: mHref: 
** Message: mTarget: 
** Message: Launching: /usr/lib/totem/totem-plugin-viewer --plugin-type narrowspace --user-agent Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.8) Gecko/20071022 Ubuntu/7.10 (gutsy) Firefox/2.0.0.8 --mimetype video/quicktime 
** Message: Viewer spawned, PID 11754
** Message: GetValue variable 14 (e)
** Message: Initial window set, XID 3c005f7 size 994x618
** Message: No viewer proxy yet, deferring SetWindow
** Message: NewStream mimetype 'video/quicktime' URL 'http://media.arstechnica.com/video/leopard-intro.mov'
** Message: Not expecting a new stream; aborting stream
** Message: Viewer DBus interface name is 'org.gnome.totem.PluginViewer_11754'
** Message: NameOwnerChanged old-owner '' new-owner ':1.64'
** Message: Viewer now connected to the bus
** Message: ViewerSetup
** Message: Calling SetWindow
** Message: NameOwnerChanged old-owner '' new-owner ':1.64'
** Message: Already have owner, why are we notified again?
Viewer: SetWindow XID 62916087 size 994:618
sh: jackd: not found
** Message: Viewer state: STOPPED
** Message: SetWindow reply
** Message: ViewerReady
** Message: IsSchemeSupported scheme 'http': yes
** Message: totem_embedded_open_internal 'fd://0' is-browser-stream 1 start-play 1
** Message: BEFORE _open
** Message: AFTER _open (ret: 1)
** Message: Viewer state: PLAYING
** Message: OpenStream reply
** Message: NewStream mimetype 'video/quicktime' URL 'http://media.arstechnica.com/video/leopard-intro.mov'
** Message: Should be dual type 'video/quicktime', making sure now
** Message: Is not dual type 'video/quicktime'
sh: jackd: not found
** Message: DestroyStream reason 2
** Message: URLNotify URL 'http://media.arstechnica.com/video/leopard-intro.mov' reason 2
** Message: totemPlugin dtor [0x8b7d978]
** Message: NP_Shutdown
me@incendo:~$
Comment 3 Bastien Nocera 2007-10-29 12:55:36 UTC
** Message: DestroyStream reason 2
means something returned NPERR_INVALID_INSTANCE_ERROR

I have no idea why this would happen. You'll probably want to double-check with Ubuntu that the plugin was built against the version of firefox/epiphany you're running.
Comment 4 Christian Persch 2007-10-29 13:01:25 UTC
reason 2 is NPRES_USER_BREAK, not NPERR_INVALID_INSTANCE_ERROR.
Comment 5 Martin Ejdestig 2007-10-29 13:18:20 UTC
And I guess that's an ok reason since I quit Firefox. :)
Comment 6 Bastien Nocera 2007-10-29 14:15:20 UTC
I don't see any reasons why it would fail then. Feel free to test whether it's a problem with Totem/backend using:
wget -O - http://media.arstechnica.com/video/leopard-intro.mov | totem fd://0

Reopen if you're still seeing the same problem.
Comment 7 Martin Ejdestig 2007-10-29 14:33:04 UTC
Downloading the file and playing the file in Totem works.

> I don't see any reasons why it would fail then.

Well... not all bugs are immediately obvious. ;)

> Feel free to test whether it's
> a problem with Totem/backend using:
> wget -O - http://media.arstechnica.com/video/leopard-intro.mov | totem fd://0
> 
> Reopen if you're still seeing the same problem.

Huh? If it doesn't work in the standalone player I should reopen? I don't follow...

So... reopen?
Comment 8 Martin Ejdestig 2007-10-29 14:36:19 UTC
Correction... Downloading the file and playing it in Totem works somewhat. The video is displayed correctly but the first ~2 seconds of the audio is repeated over and over again.
Comment 9 Martin Ejdestig 2007-10-29 14:40:43 UTC
Perhaps I should mention that nothing happens when viewing it in the browser-plugin. Completely black.
Comment 10 Martin Ejdestig 2007-10-29 16:30:44 UTC
Forgot to mention...

> wget -O - http://media.arstechnica.com/video/leopard-intro.mov | totem fd://0

Also results in black and no sound.

Sorry for the spam.
Comment 11 Bastien Nocera 2007-10-29 16:34:02 UTC
Are you using GStreamer or xine-lib as a backend? (see the totem about box)
Comment 12 Martin Ejdestig 2007-10-29 16:36:24 UTC
GStreamer.
Comment 13 Tim-Philipp Müller 2007-10-29 17:22:22 UTC
For me, with GStreamer CVS, and gst-launch playbin uri=file:///path/to/foo.mov  it works sometimes and sometimes it just seems to EOS straight away (which also causes an alsasink warnings: 'snd_pcm_drop: alsalib error: PCM not set up' followed by 'alsa-reset: pcm drop error: Input/output error').

=> GStreamer.
Comment 14 Wim Taymans 2007-10-29 18:45:13 UTC
mp3parse thinks that when it receives a buffer out of segment that it should send an EOS. Bad!! This is an edited mov file with many editlists. It has 2 audio tracks, it's possible that playbin does not always select the same one for playback.
Comment 15 Wim Taymans 2007-10-30 12:32:08 UTC
The real fix is in mpegaudioparse. It's not entirely correct because I think playbin selects the first active stream based on which one receives data first (which could be the short or the long audio stream).

        * gst/qtdemux/qtdemux.c: (gst_qtdemux_activate_segment),
        (gst_qtdemux_combine_flows), (gst_qtdemux_loop_state_movie):
        Smarter combine_flow code that also deals with downstream elements
        returning UNEXPECTED when they receive data out of the segment
        boundaries. Fixes #491305.

        * gst/mpegaudioparse/gstmpegaudioparse.c:
        (gst_mp3parse_emit_frame):
        Remove some more broken code, it seems to clip even when it should not.
        See #491305.

        * gst/mpegaudioparse/gstmpegaudioparse.c:
        (gst_mp3parse_emit_frame):
        When the element is not driving the streaming thread it is not supposed
        to emit EOS or post SEGMENT done. It is allowed to return UNEXPECTED
        upstream when it detects EOS. See #491305.