GNOME Bugzilla – Bug 700770
typefinding: mp3 file mis-detected as h263 video
Last modified: 2014-04-12 13:24:32 UTC
Banshee can't seem to play a specific file which I attach. The file plays fine in other media players like VLC. When I double click the file (already added to my library), I get this messages in the terminal: [1 Debug 12:39:12.645] Player state change: Idle -> Loading [1 Debug 12:39:12.739] (libbanshee:player) Saving missing element details ('gstreamer|1.0|Banshee|H.263 decoder|decoder-video/x-h263') [1 Debug 12:39:12.793] (libbanshee:player) bp_stop: setting state to GST_STATE_NULL [1 Debug 12:39:12.793] Player state change: Loading -> Idle [1 Debug 12:39:13.058] Querying model for track to play in off:Next mode [1 Debug 12:39:13.066] Player state change: Idle -> Loading A small cross appears to the left of the song in the interface and it jumps to the next song in the album, which is played fine. This is the log: exec -a banshee mono /usr/lib/banshee/Banshee.exe --redirect-log --play-enqueued [Info 11:47:48.792] Running Banshee 2.6.1: [Ubuntu 13.04 (linux-gnu, i686) @ 2013-04-21 20:09:08 UTC] (Banshee:2434): GLib-GObject-WARNING **: attempting to add an interface (AtkComponent) to class (__gtksharp_51_Hyena_Gui_BaseWidgetAccessible) after class_init (Banshee:2434): GLib-GObject-WARNING **: attempting to add an interface (AtkTable) to class (__gtksharp_52_Hyena_Data_Gui_Accessibility_ListViewAccessible+601+5b+5bBanshee_Collection_TrackInfo+2c+20Banshee_Core+2c+20Version+3d2_6_0_0+2c+20Culture+3dneutral+2c+20PublicKeyToken+3dnull+5d+5d) after class_init (Banshee:2434): GLib-GObject-WARNING **: attempting to add an interface (AtkSelection) to class (__gtksharp_52_Hyena_Data_Gui_Accessibility_ListViewAccessible+601+5b+5bBanshee_Collection_TrackInfo+2c+20Banshee_Core+2c+20Version+3d2_6_0_0+2c+20Culture+3dneutral+2c+20PublicKeyToken+3dnull+5d+5d) after class_init (Banshee:2434): GLib-GObject-WARNING **: attempting to add an interface (AtkTable) to class (__gtksharp_58_Hyena_Data_Gui_Accessibility_ListViewAccessible+601+5b+5bBanshee_Collection_Database_QueryFilterInfo+601+5b+5bSystem_String+2c+20mscorlib+2c+20Version+3d4_0_0_0+2c+20Culture+3dneutral+2c+20PublicKeyToken+3db77a5c561934e089+5d+5d+2c+20Banshee_Services+2c+20Version+3d2_6_0_0+2c+20Culture+3dneutral+2c+20PublicKeyToken+3dnull+5d+5d) after class_init (Banshee:2434): GLib-GObject-WARNING **: attempting to add an interface (AtkSelection) to class (__gtksharp_58_Hyena_Data_Gui_Accessibility_ListViewAccessible+601+5b+5bBanshee_Collection_Database_QueryFilterInfo+601+5b+5bSystem_String+2c+20mscorlib+2c+20Version+3d4_0_0_0+2c+20Culture+3dneutral+2c+20PublicKeyToken+3db77a5c561934e089+5d+5d+2c+20Banshee_Services+2c+20Version+3d2_6_0_0+2c+20Culture+3dneutral+2c+20PublicKeyToken+3dnull+5d+5d) after class_init (Banshee:2434): GLib-GObject-WARNING **: attempting to add an interface (AtkTable) to class (__gtksharp_64_Hyena_Data_Gui_Accessibility_ListViewAccessible+601+5b+5bBanshee_Collection_ArtistInfo+2c+20Banshee_Core+2c+20Version+3d2_6_0_0+2c+20Culture+3dneutral+2c+20PublicKeyToken+3dnull+5d+5d) after class_init (Banshee:2434): GLib-GObject-WARNING **: attempting to add an interface (AtkSelection) to class (__gtksharp_64_Hyena_Data_Gui_Accessibility_ListViewAccessible+601+5b+5bBanshee_Collection_ArtistInfo+2c+20Banshee_Core+2c+20Version+3d2_6_0_0+2c+20Culture+3dneutral+2c+20PublicKeyToken+3dnull+5d+5d) after class_init (Banshee:2434): GLib-GObject-WARNING **: attempting to add an interface (AtkTable) to class (__gtksharp_70_Hyena_Data_Gui_Accessibility_ListViewAccessible+601+5b+5bBanshee_Collection_YearInfo+2c+20Banshee_Core+2c+20Version+3d2_6_0_0+2c+20Culture+3dneutral+2c+20PublicKeyToken+3dnull+5d+5d) after class_init (Banshee:2434): GLib-GObject-WARNING **: attempting to add an interface (AtkSelection) to class (__gtksharp_70_Hyena_Data_Gui_Accessibility_ListViewAccessible+601+5b+5bBanshee_Collection_YearInfo+2c+20Banshee_Core+2c+20Version+3d2_6_0_0+2c+20Culture+3dneutral+2c+20PublicKeyToken+3dnull+5d+5d) after class_init (Banshee:2434): GLib-GObject-WARNING **: attempting to add an interface (AtkTable) to class (__gtksharp_76_Hyena_Data_Gui_Accessibility_ListViewAccessible+601+5b+5bBanshee_Collection_AlbumInfo+2c+20Banshee_Core+2c+20Version+3d2_6_0_0+2c+20Culture+3dneutral+2c+20PublicKeyToken+3dnull+5d+5d) after class_init (Banshee:2434): GLib-GObject-WARNING **: attempting to add an interface (AtkSelection) to class (__gtksharp_76_Hyena_Data_Gui_Accessibility_ListViewAccessible+601+5b+5bBanshee_Collection_AlbumInfo+2c+20Banshee_Core+2c+20Version+3d2_6_0_0+2c+20Culture+3dneutral+2c+20PublicKeyToken+3dnull+5d+5d) after class_init [Info 11:49:08.621] Updating web proxy from GConf [Info 11:49:28.492] All services are started 00:01:27.1634410 (Banshee:2434): LIBDBUSMENU-GLIB-WARNING **: Translation has an invalid value 'I-->D' for default text direction. Defaulting to left-to-right. [Info 11:49:37.607] nereid Client Started [Info 11:49:38.416] GStreamer version 1.0.6.0, gapless: True, replaygain: True (Banshee:2434): GLib-GObject-WARNING **: /build/buildd/glib2.0-2.36.0/./gobject/gsignal.c:2475: signal `new-decoded-pad' is invalid for instance `0xb2657120' of type `GstDecodeBin' [Info 12:01:39.670] Uncached artwork size 275 requested CRITICAL:Could not find any packages to operate on [Warn 12:05:04.609] Caught an exception - System.ArgumentOutOfRangeException: Argument is out of range. Parameter name: index (in `mscorlib') at System.Collections.Generic.List`1[MusicBrainz.Release].get_Item (Int32 index) [0x00000] in <filename unknown>:0 at MusicBrainz.Query`1[MusicBrainz.Release].get_Item (Int32 index) [0x00000] in <filename unknown>:0 at MusicBrainz.Query`1+<GetEnumerator>c__Iterator1[MusicBrainz.Release].MoveNext () [0x00000] in <filename unknown>:0 at MusicBrainz.Query`1+<Best>c__Iterator0[MusicBrainz.Release].MoveNext () [0x00000] in <filename unknown>:0 at Banshee.Metadata.MusicBrainz.MusicBrainzQueryJob.Lookup () [0x00000] in <filename unknown>:0 at Banshee.Metadata.MusicBrainz.MusicBrainzQueryJob.Run () [0x00000] in <filename unknown>:0 at Banshee.Metadata.MetadataServiceJob.Run () [0x00000] in <filename unknown>:0 [Warn 12:05:11.466] Caught an exception - System.ArgumentOutOfRangeException: Argument is out of range. Parameter name: index (in `mscorlib') at System.Collections.Generic.List`1[MusicBrainz.Release].get_Item (Int32 index) [0x00000] in <filename unknown>:0 at MusicBrainz.Query`1[MusicBrainz.Release].get_Item (Int32 index) [0x00000] in <filename unknown>:0 at MusicBrainz.Query`1+<GetEnumerator>c__Iterator1[MusicBrainz.Release].MoveNext () [0x00000] in <filename unknown>:0 at MusicBrainz.Query`1+<Best>c__Iterator0[MusicBrainz.Release].MoveNext () [0x00000] in <filename unknown>:0 at Banshee.Metadata.MusicBrainz.MusicBrainzQueryJob.Lookup () [0x00000] in <filename unknown>:0 at Banshee.Metadata.MusicBrainz.MusicBrainzQueryJob.Run () [0x00000] in <filename unknown>:0 at Banshee.Metadata.MetadataServiceJob.Run () [0x00000] in <filename unknown>:0 (Banshee:2434): GLib-GObject-WARNING **: invalid cast from `(null)' to `GObject' (Banshee:2434): GLib-GObject-CRITICAL **: g_object_get: assertion `G_IS_OBJECT (object)' failed [Warn 12:05:18.637] Caught an exception - System.Net.WebException: Error: NameResolutionFailure (in `System') at System.Net.HttpWebRequest.EndGetResponse (IAsyncResult asyncResult) [0x00000] in <filename unknown>:0 at System.Net.HttpWebRequest.GetResponse () [0x00000] in <filename unknown>:0 at Banshee.Metadata.MetadataServiceJob.GetHttpStream (System.Uri uri, System.String[] ignoreMimeTypes) [0x00000] in <filename unknown>:0 at Banshee.Metadata.MetadataServiceJob.GetHttpStream (System.Uri uri) [0x00000] in <filename unknown>:0 at Banshee.Metadata.Rhapsody.RhapsodyQueryJob.Run () [0x00000] in <filename unknown>:0 at Banshee.Metadata.MetadataServiceJob.Run () [0x00000] in <filename unknown>:0 (Banshee:2434): GLib-GObject-WARNING **: invalid unclassed pointer in cast to `GObject' (Banshee:2434): GLib-GObject-CRITICAL **: g_object_get: assertion `G_IS_OBJECT (object)' failed [Warn 12:06:43.159] Service disposal (SourceManager) threw an exception - System.NullReferenceException: Object reference not set to an instance of an object (in `Banshee.FileSystemQueue') at Banshee.FileSystemQueue.FileSystemQueueSource.Dispose () [0x00000] in <filename unknown>:0 at Banshee.Sources.SourceManager.RemoveSource (Banshee.Sources.Source source, Boolean recursivelyDispose) [0x00000] in <filename unknown>:0 at Banshee.Sources.SourceManager.Dispose () [0x00000] in <filename unknown>:0 at Banshee.ServiceStack.ServiceManager.Shutdown () [0x00000] in <filename unknown>:0 bpm_detect got error: No data in file gsttagdemux.c(1206): gst_tag_demux_element_find (): /GstPipeline:pipeline/GstDecodeBin:decodebin/GstID3Demux:id3demux0 bpm_detect got error: GStreamer encontró un error general de flujo. gsttagdemux.c(1303): gst_tag_demux_element_loop (): /GstPipeline:pipeline/GstDecodeBin:decodebin/GstID3Demux:id3demux0: Stream stopped, reason error bpm_detect got error: GStreamer encontró un error general de flujo. gstdecodebin2.c(3711): gst_decode_bin_expose (): /GstPipeline:pipeline/GstDecodeBin:decodebin: all streams without buffers Thanks a lot.
This is the file: https://www.dropbox.com/s/k3wgxxiikvubqas/01%20-%20Intro%20_%20Are%20You%20Reaggae_.mp3 Also, sometimes I sometimes get a window saying it's looking for missing codec H263 and it doesn't succeed to find it. Maybe I'm missing some codecs? It's weird because out of 15000 songs, this is the only one not playing fine...
Thanks for your bug report. Can you tell us if other GStreamer-based players (such as totem or rhythmbox) are able to play the file properly? Also, can you tell us if disabling the BPM Detection extension makes the bug go away?
Thanks for the prompt reply. I tried disabling BPM detection and the bug didn't go away. And it doesn't seem to work in rhythmbox either... So I guess this is actually a gstreamer issue...
(In reply to comment #3) > And it doesn't seem to work in rhythmbox either... So I guess this is actually > a gstreamer issue... Alright, thanks for testing. Redirecting bug to GStreamer product then.
Could you make the mp3 file available please? Does this work: $ gst-launch-1.0 playbin uri=file:///path/to/foo.mp3 ? > (Banshee:2434): GLib-GObject-WARNING **: > /build/buildd/glib2.0-2.36.0/./gobject/gsignal.c:2475: signal `new-decoded-pad' > is invalid for instance `0xb2657120' of type `GstDecodeBin' This looks like an oversight when porting some code from GStreamer 0.10 to 1.0. Does banshee use only playbin, or does it use uridecodebin/decodebin? "new-decoded-pad" needs to be replaced with "pad-added", and the signal callback signature is slightly different (no 'gboolean last' argument). After that there are lots of exceptions and then some attempts to cast a NULL pointer to a GObject. Not clear to me there's a bug in GStreamer here.
Hi! There's a link to the file in comment #1. This is the output when I get: davidr@pantani:~/Música/Canteca de Macao/2004_Maqueta$ gst-launch-1.0 playbin uri=file:///home/davidr/Música/Canteca\ de\ Macao/2004_Maqueta/01\ -\ Intro\ _\ Are\ You\ Reaggae_.mp3 Estableciendo el conducto a PAUSA … El conducto está PREPARÁNDOSE … Missing element: H.263 decoder ADVERTENCIA: del elemento /GstPlayBin:playbin0/GstURIDecodeBin:uridecodebin0: No decoder available for type 'video/x-h263'. Información adicional de depuración: gsturidecodebin.c(880): unknown_type_cb (): /GstPlayBin:playbin0/GstURIDecodeBin:uridecodebin0 ERROR: del elemento /GstPlayBin:playbin0/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0: A la instalación de GStreamer le falta un complemento. Información adicional de depuración: gstdecodebin2.c(3705): gst_decode_bin_expose (): /GstPlayBin:playbin0/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0: no suitable plugins found ERROR: el conducto no quiere prepararse. Estableciendo el conducto a NULL … Liberando la tubería… Thanks a lot!
Ooops, sorry, I'm blind. Thanks for the sample file. I can reproduce the issue here. It's primarily a typefinding issue - it's typefinding this mp3 file as h263 video. There's two secondary bugs - one is that the h263 caps the typefinder typefinds are not a subset of h263parse's sink caps, and also the lousy error reporting when no suitable plugin could be found (shouldn't output a flow error...).
No worries! Thanks for taking a look a this! If you need further help or testing let me know.
commit f4952a9baf80eb73092ae7d32550353d5e352c7a Author: Sebastian Dröge <sebastian.droege@collabora.co.uk> Date: Wed May 22 10:57:57 2013 +0200 typefind: Add variant=itu to the h263 typefinder caps https://bugzilla.gnome.org/show_bug.cgi?id=700770
Thanks for the sample file and the bug report. Sorry it took so long to look at this: This fixes it for me: commit 61fa4c7bb2295f29d38daceffdfaca3a8eb2216a Author: Tim-Philipp Müller <tim@centricular.com> Date: Wed Mar 5 00:35:30 2014 +0000 typefindfunctions: lower H.263 typefinder max probability The typefinder returns LIKELY for as little as one possible sync and no bad sync (not even taking into account how much data was looked at for that). It's generally just not fit for purpose, so should just not return anything like LIKELY at all ever, even more so since it only recognises one out of ten H263 files, and likes to mis-detect mp3s as H263. https://bugzilla.gnome.org/show_bug.cgi?id=700770 https://bugzilla.gnome.org/show_bug.cgi?id=725644