GNOME Bugzilla – Bug 735748
playbin: can't play an avi file in totem with audio-filter=scaletempo
Last modified: 2014-09-16 18:43:59 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
Would it be possible to provide an AVI sample that reproduce the issue ?
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?
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.
Test file: https://people.gnome.org/~hadess/bug735748.avi
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!
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.
> to finish triaging, I'd need to know if removing gstreamer1-vaapi make any difference It does not.
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?
> 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
Ok, so the question is what totem does specially here :)
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)
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?
~/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);
(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.
*** Bug 734963 has been marked as a duplicate of this bug. ***
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?
I think slapping at least an audioconvert in front (in playbin) makes sense.
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