GNOME Bugzilla – Bug 373642
some mp3s cant be played back
Last modified: 2006-12-11 09:46:30 UTC
Please describe the problem: I have some mp3s which ones I cant play back with rhythmbox, but every other application (xine, mplayer, mpg123, mpg321) plays just fine, and even gstreamer can play back it too: osssink: gst-launch-0.10 filesrc location=/mnt/dat/tmp/music/5x2/01-Cinq\ fois\ deux.mp3 ! mad ! audioconvert ! audioresample ! osssink alsasink: gst-launch-0.10 filesrc location=/mnt/dat/tmp/music/5x2/01-Cinq\ fois\ deux.mp3 ! mad ! audioconvert ! audioresample ! alsasink Setting pipeline to PAUSED ... Pipeline is PREROLLING ... Pipeline is PREROLLED ... Setting pipeline to PLAYING ... New clock: audioclock0 (music is being played just fine) Steps to reproduce: 1. turn on the computer;) 2. launch rhythmbox 3. try to play some mp3s Actual results: The player cant play back my mp3 files. Expected results: The player should play back these music files just fine. Does this happen every time? Yes, it does every time. Other information: Thish problem is really serious for me, because almost the half of my music library is affected. I have launched rhythmbox with -d command (debug mode), here is the releval output of it: (20:08:26) [0x816fe00] [rb_shell_player_open_location] rb-shell-player.c:1161: Opening file:///mnt/dat/tmp/music/Arash/10-arash_-_music_is_my_language-sms.mp3... (20:08:26) [0x816fe00] [rb_player_gst_sync_pipeline] rb-player-gst.c:615: syncing pipeline (20:08:26) [0x816fe00] [rb_player_gst_sync_pipeline] rb-player-gst.c:626: PAUSING pipeline (20:08:26) [0x816fe00] [rb_player_gst_sync_pipeline] rb-player-gst.c:615: syncing pipeline (20:08:26) [0x816fe00] [rb_player_gst_sync_pipeline] rb-player-gst.c:617: PLAYING pipeline (20:08:26) [0x816fe00] [rb_shell_player_set_playing_entry] rb-shell-player.c:1312: Success! (20:08:26) [0x816fe00] [rb_shell_hidden_notify] rb-shell.c:2867: shell is visible, not notifying (20:08:26) [0x816fe00] [rb_shell_player_sync_with_source] rb-shell-player.c:2323: playing source: 0x83a6020, active entry: 0x868ba90 (20:08:26) [0x816fe00] [rb_shell_set_window_title] rb-shell.c:2058: setting title to "Arash - Music is My Language" (20:08:26) [0x816fe00] [rb_header_sync] rb-header.c:353: syncing with entry = 0x868ba90 (20:08:26) [0x816fe00] [rb_shell_player_sync_buttons] rb-shell-player.c:2389: syncing with source 0x83a6020 (20:08:26) [0x816fe00] [rb_shell_player_error] rb-shell-player.c:2681: playback error while playing: Internal data flow error. (20:08:26) [0x816fe00] [error_cb] rb-shell-player.c:2726: exiting error hander (20:08:26) [0x816fe00] [rb_shell_player_handle_eos] rb-shell-player.c:680: handling eos! (20:08:26) [0x816fe00] [rb_shell_player_open_location] rb-shell-player.c:1161: Opening file:///mnt/dat/tmp/music/Arash/11-arash_-_salamati_(duet_with_dj_aligator)-sms.mp3...
Could you run "GST_DEBUG=*:3 GST_DEBUG_NO_COLOR=1 rhythmbox" from a terminal, try to play one of these MP3s and post the last 40 or so lines?
Can you try and run rhythmbox with the gstreamer debugging for the mad mp3 plugin switched on? Try starting it like this: GST_DEBUG="mad:5" rhythmbox You should see messages from the mad plugin as it tries to playback the file. Also can you post an extract of (say a few seconds), or provide a link to one of the offending files?
Also, try using playbin with gst-launch. The pipeline you tried doesn't look much like what rhythmbox uses internally. 'gst-launch-0.10 playbin uri=file:///mnt/dat/tmp/music/5x2/01-Cinq\ fois\ deux.mp3' is a more useful test.
gst-launch-0.10 playbin uri=file:///mnt/dat/tmp/music/5x2/01-Cinq\ fois\ deux.mp3 Setting pipeline to PAUSED ... Pipeline is PREROLLING ... ERROR: from element /playbin0/source: Internal data flow error. Additional debug info: gstbasesrc.c(1569): gst_base_src_loop (): /playbin0/source: streaming task paused, reason not-negotiated (-4) ERROR: pipeline doesn't want to preroll. Setting pipeline to NULL ... FREEING pipeline ... So its maybe a gstreamer problem. Can you point me to the right documentation/bugzilla if it is really a gstreamer bug? All the packages are from debian unstable, and in particular gst-launch-0.10 is in gstreamer0.10-tools (version 0.10.10-1). Thx Jonathan for the quick answer, at least now I have some clues;)
Created attachment 76381 [details] GST_DEBUG=*:3 GST_DEBUG_NO_COLOR=1 rhythmbox The rhythmbox debug output what James (#1) requested.
Created attachment 76382 [details] GST_DEBUG="mad:5" rhythmbox The mad:5 output what Alex (#2) requested.
Does seem like a gstreamer problem since it fails in playbin, switching products.
Thanks for the logs. Could you also create a complete GST_DEBUG=*:5 log like this please: $ export GST_DEBUG_NO_COLOR=1 $ GST_DEBUG=*:5 gst-launch-0.10 playbin uri=file:///mnt/dat/tmp/music/5x2/01-Cinq\ fois\ deux.mp3 2>dbg.log $ gzip dbg.log and then attach the dbg.log.gz file to this bug report? Thanks!
I can't spot it from the detail in this bug report, except I would note that it's using the Fluendo MP3 decoder, not MAD. I'm sure that you could fix the problem by removing the gstreamer0.10-fluendo-mp3, but if I could gain access to a sample file, it would be nice to ensure that it's either already fixed, or gets fixed before the next release of gstreamer0.10-fluendo-mp3.
Created attachment 76987 [details] GST_DEBUG=*:5 gst-launch-0.10 playbin uri=... The output bzip2-d, what Tim-Philipp (#8) requested. The .log file is about 5MB, so I compressed with bzip2 (280kB) instead of gzip. Here is the command line, what I did: export GST_DEBUG_NO_COLOR=1; GST_DEBUG=*:5 gst-launch-0.10 playbin uri=file:///mnt/dat/tmp/music/5x2/01-Cinq\ fois\ deux.mp3 2>dbg.log ERROR: from element /playbin0/source: Internal data flow error. Additional debug info: gstbasesrc.c(1569): gst_base_src_loop (): /playbin0/source: streaming task paused, reason not-negotiated (-4)
To Jan (#9): The mp3 file is 5.4MB. If you write here what should I do to cut the file (to be able to upload here), or how can I send to you? I have removed the fluendo mp3 deb package: apt-get remove gstreamer0.10-fluendo-mp3 And try again to play the file. Here is the output: gst-launch-0.10 playbin uri=file:///mnt/dat/tmp/music/5x2/01-Cinq\ fois\ deux.mp3 Setting pipeline to PAUSED ... Pipeline is PREROLLING ... ERROR: from element /playbin0/source: Internal data flow error. Additional debug info: gstbasesrc.c(1569): gst_base_src_loop (): /playbin0/source: streaming task paused, reason not-negotiated (-4) ERROR: pipeline doesn't want to preroll. Setting pipeline to NULL ... FREEING pipeline ... I think is pretty much the same error. Any other idea?
I have recompiled the gstreamer source with debug option. How can I launch from gdb session the above command? (after recompilation the problem still exist) What I try: (gdb) run -v playbin uri=file:///mnt/dat/tmp/music/5x2/01-Cinq\ foisdeux.mp3 The program being debugged has been started already. Start it from the beginning? (y or n) y Starting program: /usr/bin/gst-launch-0.10 -v playbin uri=file:///mnt/dat/tmp/music/5x2/01-Cinq\ foisdeux.mp3 [Thread debugging using libthread_db enabled] [New Thread -1210952000 (LWP 4429)] Setting pipeline to PAUSED ... ERROR: Pipeline doesn't want to pause. ERROR: from element /playbin0/source: Resource not found. Additional debug info: gstfilesrc.c(975): gst_file_src_start (): /playbin0/source: No such file "/mnt/dat/tmp/music/5x2/01-Cinq foisdeux.mp3" Setting pipeline to NULL ... FREEING pipeline ... [New Thread -1211798608 (LWP 4431)] [Thread -1211798608 (LWP 4431) exited] Program exited with code 0377. Couldn't get registers: No such process. (gdb) Can somebody point me the right direction?
sorry, the above command was wrong The right one: (gdb) run -v playbin uri=file:///mnt/dat/tmp/music/5x2/01-Cinq\ foisdeux.mp3 The program being debugged has been started already. Start it from the beginning? (y or n) n Program not restarted. (gdb) run -v playbin uri=file:///mnt/dat/tmp/music/5x2/01-Cinq\ fois\ deux.mp3 The program being debugged has been started already. Start it from the beginning? (y or n) y Starting program: /usr/bin/gst-launch-0.10 -v playbin uri=file:///mnt/dat/tmp/music/5x2/01-Cinq\ fois\ deux.mp3 [Thread debugging using libthread_db enabled] [New Thread -1211017536 (LWP 4443)] Setting pipeline to PAUSED ... /playbin0/decoder/typefind.src: caps = application/x-id3 /playbin0/selector_audio_src0: active-pad = "sink0" [New Thread -1217320016 (LWP 4445)] [Thread -1217320016 (LWP 4445) exited] [New Thread -1217320016 (LWP 4446)] [Thread -1217320016 (LWP 4446) exited] [New Thread -1217320016 (LWP 4447)] [New Thread -1225839696 (LWP 4450)] [New Thread -1234228304 (LWP 4451)] Pipeline is PREROLLING ... /playbin0/decoder/id3demux0.sink: caps = application/x-id3 [New Thread -1242616912 (LWP 4452)] ERROR: from element /playbin0/source: Internal data flow error. Additional debug info: gstbasesrc.c(1569): gst_base_src_loop (): /playbin0/source: streaming task paused, reason not-negotiated (-4) ERROR: pipeline doesn't want to preroll. Setting pipeline to NULL ... /playbin0/decoder/id3demux0.src: caps = NULL /playbin0/decoder/id3demux0.sink: caps = NULL /playbin0/decoder/typefind.src: caps = NULL [Thread -1217320016 (LWP 4447) exited] FREEING pipeline ... [New Thread -1217320016 (LWP 4453)] [Thread -1217320016 (LWP 4453) exited] Program exited normally. Couldn't get registers: No such process. (gdb)
Thanks for all the information provided. From the log: <id3demux0:src> caps application/x-id3 not accepted This looks like something we fixed ages ago (see also bug #342209). It should be fixed in gst-plugins-good 0.10.3 or later. Are you sure you have a sufficiently recent version of gst-plugins-good installed? Have you ever compiled and installed GStreamer from source on this system? More specifically: - What's the output of $ dpkg -l gstreamer0.10-plugins-* ? - What's the output of $ gst-inspect-0.10 id3demux | grep Version ?
Thanks Tim for the answer, and you are right: my version of gstreamer0.10-plugins-good is just 0.10.2-1. So I have updated (0.10.4-3), and all my problems has gone. Sorry for this unnecessary bugreport. (can be closed now)
Closing as per comment #15.