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 735748 - playbin: can't play an avi file in totem with audio-filter=scaletempo
playbin: can't play an avi file in totem with audio-filter=scaletempo
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-base
1.4.1
Other Linux
: Normal normal
: 1.4.2
Assigned To: GStreamer Maintainers
GStreamer Maintainers
: 734963 (view as bug list)
Depends on:
Blocks:
 
 
Reported: 2014-08-31 14:50 UTC by Mathieu Bridon
Modified: 2014-09-16 18:43 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Backtrace when trying to play the file in Totem (22.12 KB, text/plain)
2014-08-31 14:50 UTC, Mathieu Bridon
Details

Description Mathieu Bridon 2014-08-31 14:50:40 UTC
Created attachment 284928 [details]
Backtrace when trying to play the file in Totem

I'm trying to play an avi movie.

gst-launch-1.0 plays it just fine, but totem doesn't, it seems like the player is just hanging, nothing happens.

After looking at the backtrace, Bastien Nocera said it's still a bug in gstreamer.

 gstreamer1-1.4.1-1.fc21.x86_64
 gstreamer1-libav-1.4.1-1.fc21.x86_64
 gstreamer1-plugins-bad-free-1.4.1-1.fc21.x86_64
 gstreamer1-plugins-bad-freeworld-1.4.1-1.fc21.x86_64
 gstreamer1-plugins-base-1.4.1-1.fc21.x86_64
 gstreamer1-plugins-good-1.4.1-2.fc21.x86_64
 gstreamer1-plugins-ugly-1.4.1-1.fc21.x86_64
 gstreamer1-vaapi-0.5.9-2.fc21.x86_64
 totem-3.13.90-1.fc21.x86_64
Comment 1 Nicolas Dufresne (ndufresne) 2014-08-31 15:17:42 UTC
Would it be possible to provide an AVI sample that reproduce the issue ?
Comment 2 Mathieu Bridon 2014-08-31 15:20:37 UTC
I tried attaching the first 3MB of the movie (which does reproduce the issue), but that's too big for bugzilla.

I can send it by email if you want?
Comment 3 Nicolas Dufresne (ndufresne) 2014-08-31 15:28:10 UTC
Right, most people these days put them on free storage service like dropbox, and paste the shared link here. Otherwise, feel free to send it to me, and I'll make it available. This bugzilla is limited to 1M I think.
Comment 4 Bastien Nocera 2014-08-31 15:30:26 UTC
Test file:
https://people.gnome.org/~hadess/bug735748.avi
Comment 5 Mathieu Bridon 2014-08-31 15:33:41 UTC
The file Bastien posted is the one I was trying to attach to this bug (I had sent it to him already, when we were discussing this bug on IRC).

Thanks Bastien!
Comment 6 Nicolas Dufresne (ndufresne) 2014-08-31 15:50:42 UTC
Thanks, to finish triaging, I'd need to know if removing gstreamer1-vaapi make any difference (from the backtrace I have the impression that it should be the same). I've done a first run of test on 1.2 and 1.5 (development), where both totem and gst-play seems to work.
Comment 7 Mathieu Bridon 2014-08-31 16:30:40 UTC
> to finish triaging, I'd need to know if removing gstreamer1-vaapi make
any difference

It does not.
Comment 8 Sebastian Dröge (slomo) 2014-09-01 07:38:33 UTC
Works fine here with git master and 1.4.1. Can you reproduce it with the file Bastien linked? Can you reproduce it with gst-play-1.0 on that file?
Comment 9 Mathieu Bridon 2014-09-01 09:45:31 UTC
> Can you reproduce it with the file Bastien linked?

Well, yeah.

As I said in comment 5, the file Bastien linked to is made of the first 3MB of movie file that is giving me trouble. I generated it file myself, to have a reproducer smaller than the full movie, and I had sent it to Bastien while we were looking at this on IRC, at which point he told me to report the bug here. :)

> Can you reproduce it with gst-play-1.0 on that file?

I just tried:

  $ gst-play-1.0 --videosink=cluttersink bug735748.avi

That plays the file just fine, like gst-launcher-1.0
Comment 10 Sebastian Dröge (slomo) 2014-09-01 09:49:18 UTC
Ok, so the question is what totem does specially here :)
Comment 11 Tim-Philipp Müller 2014-09-01 11:11:16 UTC
This is indeed a regression from 1.2 as far as I can tell:

gst-1.4 $ gst-launch-1.0 playbin uri=file:///734963.avi audio-filter='scaletempo'
streaming stopped, reason not-negotiated

gst-1.4 $ gst-launch-1.0 playbin uri=file:///734963.avi audio-filter='scaletempo ! audioconvert'
streaming stopped, reason not-negotiated

gst-1.4 $ gst-launch-1.0 playbin uri=file:///home/tpm/samples/misc/734963.avi audio-filter='audioconvert ! scaletempo'
works

gst-1.2 $ gst-launch-1.0 playbin uri=file:///home/tpm/samples/misc/734963.avi audio-filter='scaletempo'
works

so I'm guessing the audio-filter is now plugged before the audioconverters/resamplers, or we have dropped a converter we had before the audio-filter before.

(mad outputs S32LE and scaletempo only handles S16LE or F32LE)
Comment 12 Sebastian Dröge (slomo) 2014-09-01 11:16:28 UTC
It's not a regression as there was no audio-filter property in playbin before 1.4, and I think the idea about it was that the user of that property is responsible for adding all necessary converters.

But that shouldn't be the problem with totem, right? Or is totem actually using the audio-filter property already?
Comment 13 Tim-Philipp Müller 2014-09-01 11:22:41 UTC
~/Devel/totem/src/backend$ git grep audio-filter
bacon-video-widget.c:  g_object_set (bvw->priv->play, "audio-filter", bvw->priv->audio_pitchcontrol, NULL);
Comment 14 Bastien Nocera 2014-09-01 11:28:20 UTC
(In reply to comment #12)
> It's not a regression as there was no audio-filter property in playbin before
> 1.4, and I think the idea about it was that the user of that property is
> responsible for adding all necessary converters.

In https://bugzilla.gnome.org/show_bug.cgi?id=679031#c1 I requested:
"an audio filter property that could be bypassed when passthrough is used"
which was from bug 696045.

Which you made a duplicate of 679031.

So I would expect that functionality to be implemented when that bug is closed.

And https://bugzilla.gnome.org/show_bug.cgi?id=679031#c8 says:
"
This provides an audio-filter and video-filter property to allow applications to set filter elements/bins. The idea is that these will e applied if possible -- for non-raw sinks, the filters will be skipped.
"

(In reply to comment #12)
> But that shouldn't be the problem with totem, right? Or is totem actually using
> the audio-filter property already?

I'm using it correctly according to those commit messages.
Comment 15 Bastien Nocera 2014-09-01 11:29:20 UTC
*** Bug 734963 has been marked as a duplicate of this bug. ***
Comment 16 Sebastian Dröge (slomo) 2014-09-01 11:33:45 UTC
How is passthrough mode for non-raw sinks related to requiring converters for raw sinks? I think it could make sense to automatically add all the many converters on both sides of the filter (audioconvert/audioresample and videoconvert/videoscale) if others agree.


For passthrough, does it not work with non-raw sinks?
Comment 17 Tim-Philipp Müller 2014-09-01 12:06:01 UTC
I think slapping at least an audioconvert in front (in playbin) makes sense.
Comment 18 Sebastian Dröge (slomo) 2014-09-16 18:43:59 UTC
commit 52e97f59ba0757f48363fa08c089eb8a827b2dca
Author: Sebastian Dröge <sebastian@centricular.com>
Date:   Tue Sep 16 21:42:46 2014 +0300

    playsink: Add audio/videoconvert in front of the audio/video-filters
    
    audioresample and videoscale is something the application will have to do if
    required, but we can at least help here by adding the
    audioconvert/videoconvert elements.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=735748