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 471370 - Critical warning when playing unsupported file type
Critical warning when playing unsupported file type
Status: RESOLVED FIXED
Product: totem
Classification: Core
Component: GStreamer backend
2.19.x
Other Linux
: Normal normal
: ---
Assigned To: Maintainer alias for GStreamer component of Totem
Maintainer alias for GStreamer component of Totem
: 502171 510267 (view as bug list)
Depends on:
Blocks:
 
 
Reported: 2007-08-29 00:35 UTC by Bastien Nocera
Modified: 2008-01-18 08:32 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Backported mpegaudio parse patch (2.34 KB, patch)
2007-09-02 15:43 UTC, Hans de Goede
none Details | Review

Description Bastien Nocera 2007-08-29 00:35:53 UTC
$ totem --g-fatal-warnings ~/Music/non-utf8-test/01\ -\ Gyllene\ Tider\ -\ Kung\ Av\ Sand.mp3 
** Message: don't know how to handle audio/mpeg, mpegversion=(int)1, layer=(int)[ 1, 3 ], rate=(int)[ 8000, 48000 ], channels=(int)[ 1, 2 ], parsed=(boolean)true

** CRITICAL **: gst_missing_decoder_message_new: assertion `gst_caps_is_fixed (decode_caps)' failed
aborting...

Let me know if the file would be useful.

gstreamer-0.10.14-2.fc8
gstreamer-plugins-base-0.10.14-2.fc8
gstreamer-plugins-good-0.10.6-2.fc8

Not sure the backtrace is any useful:
(gdb) bt
  • #0 g_logv
    from /lib/libglib-2.0.so.0
  • #1 g_log
    from /lib/libglib-2.0.so.0
  • #2 g_return_if_fail_warning
    from /lib/libglib-2.0.so.0
  • #3 gst_missing_decoder_message_new
    from /usr//lib/libgstpbutils-0.10.so.0
  • #4 ??
    from /usr/lib/gstreamer-0.10/libgstdecodebin.so
  • #5 ??
    from /usr/lib/gstreamer-0.10/libgstdecodebin.so
  • #6 ??
    from /usr/lib/gstreamer-0.10/libgstdecodebin.so
  • #7 g_cclosure_marshal_VOID__OBJECT
    from /lib/libgobject-2.0.so.0
  • #8 g_closure_invoke
    from /lib/libgobject-2.0.so.0
  • #9 ??
    from /lib/libgobject-2.0.so.0
  • #10 g_signal_emit_valist
    from /lib/libgobject-2.0.so.0
  • #11 g_signal_emit
    from /lib/libgobject-2.0.so.0
  • #12 gst_element_add_pad
    from /usr//lib/libgstreamer-0.10.so.0
  • #13 ??
    from /usr/lib/gstreamer-0.10/libgstid3demux.so
  • #14 ??
    from /usr/lib/gstreamer-0.10/libgstid3demux.so
  • #15 gst_pad_set_active
    from /usr//lib/libgstreamer-0.10.so.0
  • #16 ??
    from /usr//lib/libgstreamer-0.10.so.0
  • #17 gst_iterator_fold
    from /usr//lib/libgstreamer-0.10.so.0
  • #18 ??
    from /usr//lib/libgstreamer-0.10.so.0
  • #19 ??
    from /usr//lib/libgstreamer-0.10.so.0
  • #20 ??
    from /usr//lib/libgstreamer-0.10.so.0
  • #21 ??
    from /usr/lib/gstreamer-0.10/libgstid3demux.so
  • #22 gst_element_change_state
    from /usr//lib/libgstreamer-0.10.so.0
  • #23 ??
    from /usr//lib/libgstreamer-0.10.so.0
  • #24 gst_element_set_state
    from /usr//lib/libgstreamer-0.10.so.0
  • #25 ??
    from /usr/lib/gstreamer-0.10/libgstdecodebin.so
  • #26 ??
    from /usr/lib/gstreamer-0.10/libgstdecodebin.so
  • #27 gst_marshal_VOID__UINT_BOXED
    from /usr//lib/libgstreamer-0.10.so.0
  • #28 g_closure_invoke
    from /lib/libgobject-2.0.so.0
  • #29 ??
    from /lib/libgobject-2.0.so.0
  • #30 g_signal_emit_valist
    from /lib/libgobject-2.0.so.0
  • #31 g_signal_emit
    from /lib/libgobject-2.0.so.0
  • #32 ??
    from /usr/lib/gstreamer-0.10/libgstcoreelements.so
  • #33 gst_pad_set_active
    from /usr//lib/libgstreamer-0.10.so.0
  • #34 ??
    from /usr//lib/libgstreamer-0.10.so.0
  • #35 gst_iterator_fold
    from /usr//lib/libgstreamer-0.10.so.0
  • #36 ??
    from /usr//lib/libgstreamer-0.10.so.0
  • #37 ??
    from /usr//lib/libgstreamer-0.10.so.0
  • #38 ??
    from /usr//lib/libgstreamer-0.10.so.0
  • #39 ??
    from /usr/lib/gstreamer-0.10/libgstcoreelements.so
  • #40 gst_element_change_state
    from /usr//lib/libgstreamer-0.10.so.0
  • #41 ??
    from /usr//lib/libgstreamer-0.10.so.0
  • #42 gst_element_set_state
    from /usr//lib/libgstreamer-0.10.so.0
  • #43 ??
    from /usr//lib/libgstreamer-0.10.so.0
  • #44 ??
    from /usr/lib/gstreamer-0.10/libgstdecodebin.so
  • #45 gst_element_change_state
    from /usr//lib/libgstreamer-0.10.so.0
  • #46 gst_element_continue_state
    from /usr//lib/libgstreamer-0.10.so.0
  • #47 gst_element_change_state
    from /usr//lib/libgstreamer-0.10.so.0
  • #48 ??
    from /usr//lib/libgstreamer-0.10.so.0
  • #49 gst_element_set_state
    from /usr//lib/libgstreamer-0.10.so.0
  • #50 ??
    from /usr//lib/libgstreamer-0.10.so.0
  • #51 ??
    from /usr//lib/libgstreamer-0.10.so.0
  • #52 ??
    from /usr/lib/gstreamer-0.10/libgstplaybin.so
  • #53 ??
    from /usr/lib/gstreamer-0.10/libgstplaybin.so
  • #54 gst_element_change_state
    from /usr//lib/libgstreamer-0.10.so.0
  • #55 gst_element_continue_state
    from /usr//lib/libgstreamer-0.10.so.0
  • #56 gst_element_change_state
    from /usr//lib/libgstreamer-0.10.so.0
  • #57 ??
    from /usr//lib/libgstreamer-0.10.so.0
  • #58 gst_element_set_state
    from /usr//lib/libgstreamer-0.10.so.0
  • #59 bacon_video_widget_open_with_subtitle
    at bacon-video-widget-gst-0.10.c line 2715
  • #60 totem_action_set_mrl_with_warning
    at totem.c line 918
  • #61 totem_action_set_mrl
    at totem.c line 980
  • #62 totem_action_set_mrl_and_play
    at totem.c line 426
  • #63 totem_action_play_pause
    at totem.c line 586
  • #64 main
    at totem.c line 3194

Comment 1 Tim-Philipp Müller 2007-08-29 12:53:36 UTC
Could you check if this patch fixes it:

http://webcvs.freedesktop.org/gstreamer/gst-plugins-base/gst/playback/gstdecodebin.c?r1=1.98&r2=1.99   

If not, could you attach a GST_DEBUG=*:5 debug log?
Comment 2 Bastien Nocera 2007-08-29 19:11:25 UTC
Patch fixed it. But now it doesn't ask me to download codecs:
$ ~/Projects/Cvs/totem/src/totem --g-fatal-warnings ~/Music/non-utf8-test/01\ -\ Gyllene\ Tider\ -\ Kung\ Av\ Sand.mp3 
** Message: Error: Internal data flow error.
gstbasesrc.c(1816): gst_base_src_loop (): /play/source:
streaming task paused, reason error (-5)

I have mpegaudioparse showing up in my plugins. Do you need me to upload the file?
Comment 3 Tim-Philipp Müller 2007-08-30 13:42:24 UTC
> But now it doesn't ask me to download codecs:
> $ ~/Projects/Cvs/totem/src/totem --g-fatal-warnings ~/Music/non-utf8-test/01\
> -\ Gyllene\ Tider\ -\ Kung\ Av\ Sand.mp3 
> ** Message: Error: Internal data flow error.
> gstbasesrc.c(1816): gst_base_src_loop (): /play/source:
> streaming task paused, reason error (-5)
> 
> I have mpegaudioparse showing up in my plugins. Do you need me to upload the
> file?

File would be great.  A GST_DEBUG=*:5 log of the error would be great too.
Comment 4 Tim-Philipp Müller 2007-08-31 11:35:11 UTC
So, the problem is id3demux (in -good) and/or mp3parse (in -ugly).

Basically, the problem does not occur with GStreamer CVS because of this fix which is only in CVS:

http://webcvs.freedesktop.org/gstreamer/gst-plugins-good/gst/id3demux/gstid3demux.c?r1=1.29&r2=1.30

It's pretty much harmless and will 'fix' the problem, but I'm not convinced it's the right thing to do (apedemux would need a similar 'fix' too then).


The real fix for the underlying problem should be this:
http://webcvs.freedesktop.org/gstreamer/gst-plugins-ugly/gst/mpegaudioparse/gstmpegaudioparse.c?r1=1.69&r2=1.70
http://webcvs.freedesktop.org/gstreamer/gst-plugins-ugly/gst/mpegaudioparse/gstmpegaudioparse.h?r1=1.19&r2=1.20
(haven't checked if it applies against 0.10.6 or tested whether it fixes the problem by itself).
Comment 5 Hans de Goede 2007-09-02 13:58:03 UTC
For some reason both Fedora and Ubuntu have picked up the patch from comment #1, resulting in bugs being reported all over the place because of the problem reported in comment #3

So far I'm aware of the following bugs reported because of this:
https://bugs.launchpad.net/ubuntu/+source/gst-plugins-ugly0.10/+bug/136264
https://bugzilla.redhat.com/show_bug.cgi?id=273561
http://bugzilla.livna.org/show_bug.cgi?id=1625

I've tried both fixes suggested in comment #4, the id3demux fix indeed fixes this. I had to backport the mpegaudioparse fix for 0.10.6, that one doesn't seem to help by itself and isn't needed when using the id3demux fix. IOW the id3demux fix by itself is sufficient to fix this, wether or not the mpegaudioparse fix is used doesn't make a difference.
Comment 6 Bastien Nocera 2007-09-02 14:59:23 UTC
$ rpm -qf /usr/lib64/gstreamer-0.10/libgstmpegaudioparse.so 
gstreamer-plugins-ugly-0.10.5-1.lvn6

I can't fix mpegaudioparse in Fedora, because gstreamer-plugins-ugly isn't in Fedora, it's in 3rd party repositories.

I'll add the id3demux patch to Fedora.
Comment 7 Tim-Philipp Müller 2007-09-02 15:26:08 UTC
> For some reason both Fedora and Ubuntu have picked up the patch from comment
> #1, ...

That patch is correct and it's needed to make automatic codec installation work right in some scenarios.  It's unfortunate that this caused issues in other places.


> I've tried both fixes suggested in comment #4, the id3demux fix indeed fixes
> this.

Be that as it may, it's not really the Right Thing to do. It's just a hack around the problem.  Acceptable as a quick-fix though.  A better quick-fix would be to set mpegaudioparse's rank to GST_RANK_NONE (which is what ubuntu did AFAIK).


> I had to backport the mpegaudioparse fix for 0.10.6, that one doesn't
> seem to help by itself

I find that surprising.  Maybe you could share the patch that you backported?  Just to be sure: the mp3parse sink event function should return TRUE when it queues the newsegment event.
Comment 8 Hans de Goede 2007-09-02 15:43:07 UTC
Created attachment 94812 [details] [review]
Backported mpegaudio parse patch

(In reply to comment #7)
> > For some reason both Fedora and Ubuntu have picked up the patch from comment
> > #1, ...
> 
> That patch is correct and it's needed to make automatic codec installation work
> right in some scenarios.  It's unfortunate that this caused issues in other
> places.
> 
> 

I'm not claiming the patch is incorrect, it would just be nice if downstream had waited with picking it up until the other issues were sorted out.

> > I've tried both fixes suggested in comment #4, the id3demux fix indeed fixes
> > this.
> 
> Be that as it may, it's not really the Right Thing to do. It's just a hack
> around the problem.  Acceptable as a quick-fix though.  A better quick-fix
> would be to set mpegaudioparse's rank to GST_RANK_NONE (which is what ubuntu
> did AFAIK).
> 

That would result in it never getting automatically loaded, right? That sounds like an even cruder fix then the id3demux one. What kind of functionality loss would this cause?

> 
> > I had to backport the mpegaudioparse fix for 0.10.6, that one doesn't
> > seem to help by itself
> 
> I find that surprising.  Maybe you could share the patch that you backported? 
> Just to be sure: the mp3parse sink event function should return TRUE when it
> queues the newsegment event.
> 

Attached.
Comment 9 Tim-Philipp Müller 2007-10-10 22:30:02 UTC
Your patch seems to fix the problem just fine for me (against gstmpegaudioparse.[ch] from the 0.10.6 release), although you'd probably also want

http://webcvs.freedesktop.org/gstreamer/gst-plugins-ugly/gst/mpegaudioparse/gstmpegaudioparse.c?r1=1.62&r2=1.63

to fix the warning about the template caps.  Not sure why it doesn't work for you.
Comment 10 Tim-Philipp Müller 2007-10-10 22:35:20 UTC
> > A better quick-fix would be to set mpegaudioparse's rank to GST_RANK_NONE
> > (which is what ubuntu did AFAIK).
> 
> That would result in it never getting automatically loaded, right?

Correct, it would result in mp3parse not automatically being plugged into the pipeline by decodebin/playbin any longer.


> That sounds like an even cruder fix than the id3demux one. What kind of
> functionality loss would this cause?

Nothing dramatic. Seeking and duration estimation for variable bitrate mp3s might be a bit less precise without mp3parse.  It's not really needed, and hasn't been enabled in the previous releases either.
Comment 11 Hans de Goede 2007-10-11 08:40:39 UTC
(In reply to comment #9)
> Your patch seems to fix the problem just fine for me (against
> gstmpegaudioparse.[ch] from the 0.10.6 release), although you'd probably also
> want
> 
> http://webcvs.freedesktop.org/gstreamer/gst-plugins-ugly/gst/mpegaudioparse/gstmpegaudioparse.c?r1=1.62&r2=1.63
> 
> to fix the warning about the template caps.  Not sure why it doesn't work for
> you.
> 

Actually since this comment I've been contacted by a livna users which helped me reproduce the problem. So now livna does have my backported patch enabled, I just needed the right sound file to reproduce the problem and to confirm my patch fixes it. Thanks for the other patch fixing the warning!
Comment 12 Tim-Philipp Müller 2007-10-11 09:24:23 UTC
Ah, great, let's close this then, thanks for confirming it works now.
Comment 13 Tim-Philipp Müller 2007-12-06 19:18:52 UTC
*** Bug 502171 has been marked as a duplicate of this bug. ***
Comment 14 Sebastian Dröge (slomo) 2008-01-18 08:32:56 UTC
*** Bug 510267 has been marked as a duplicate of this bug. ***