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 700770 - typefinding: mp3 file mis-detected as h263 video
typefinding: mp3 file mis-detected as h263 video
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-base
git master
Other Linux
: Normal normal
: 1.2.4
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2013-05-21 10:47 UTC by deivid
Modified: 2014-04-12 13:24 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description deivid 2013-05-21 10:47:07 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.
Comment 1 deivid 2013-05-21 10:53:32 UTC
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...
Comment 2 Andrés G. Aragoneses (IRC: knocte) 2013-05-21 11:00:55 UTC
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?
Comment 3 deivid 2013-05-21 12:26:33 UTC
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...
Comment 4 Andrés G. Aragoneses (IRC: knocte) 2013-05-21 12:28:52 UTC
(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.
Comment 5 Tim-Philipp Müller 2013-05-21 19:02:55 UTC
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.
Comment 6 deivid 2013-05-21 21:25:58 UTC
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!
Comment 7 Tim-Philipp Müller 2013-05-21 21:37:41 UTC
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...).
Comment 8 deivid 2013-05-21 21:42:27 UTC
No worries! Thanks for taking a look a this! If you need further help or testing let me know.
Comment 9 Sebastian Dröge (slomo) 2013-05-22 08:59:18 UTC
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
Comment 10 Tim-Philipp Müller 2014-03-05 00:45:16 UTC
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