[gstreamer-bugs] [Bug 589663] New: gstreamer asserts in gstaudiofilter

GStreamer (bugzilla.gnome.org) bugzilla-daemon at bugzilla.gnome.org
Fri Jul 24 19:16:58 PDT 2009


If you have any questions why you received this email, please see the text at
the end of this email. Replies to this email are NOT read, please see the text
at the end of this email. You can add comments to this bug at:
  http://bugzilla.gnome.org/show_bug.cgi?id=589663

  GStreamer | gstreamer (core) | Ver: 0.10.23
           Summary: gstreamer asserts in gstaudiofilter
           Product: GStreamer
           Version: 0.10.23
          Platform: Other
        OS/Version: Linux
            Status: UNCONFIRMED
          Severity: critical
          Priority: Normal
         Component: gstreamer (core)
        AssignedTo: gstreamer-bugs at lists.sourceforge.net
        ReportedBy: youness.alaoui at collabora.co.uk
         QAContact: gstreamer-bugs at lists.sourceforge.net
     GNOME version: Unspecified
   GNOME milestone: Unspecified


Hi,

aMSN uses gstreamer/farsight for audio/video calls and it looks like gstreamer
contains an assert that shouldn't be there... 

In the following program, I dynamically link elements when the pipeline is
running and my 'volume' element gets as input caps
"audio/x-raw-int,width=8,depth=8,rate=44100,signed=true,channels=1" but in it's
output caps it has 'endianness=1234' added.. this is caused by osssrc that has
the endianness missing for the 'width=8,depth=8,...' caps.

In gst_audio_filter_set_caps, there's an assert on gst_caps_equal(incaps,
outcaps).

First, osssrc should add the endianness for its width/depth=8 caps, but also
the assert in gstaudiofilter.c should either be removed or should be on
gst_caps_interest, not on gst_caps_equal...
Here's the small python code that reproduces the error (same as my C app), as
well as the assertion error I get and the backtrace.

-------------- example code -------------------
#!/usr/bin/python
import gst, time

p = gst.parse_launch("osssrc ! audio/x-raw-int, width=8 ! valve name=v
drop=true")
p.set_state(gst.STATE_PLAYING)

time.sleep(1)

v = p.get_by_name("v")
b = gst.parse_bin_from_description("volume ! fakesink", True)
p.add(b)
v.link(b)
p.set_state(gst.STATE_PLAYING)

v.set_property("drop", False)

time.sleep(1)
-----------------------------------------------
---------------------- output -----------------
**
ERROR:gstaudiofilter.c:168:gst_audio_filter_set_caps: assertion failed:
(gst_caps_is_equal (incaps, outcaps))
zsh: abort      python bug_gstreamer.py
-----------------------------------------------
------------------- backtrace -----------------
(gdb) bt
#0  0xb7fe1430 in __kernel_vsyscall ()
#1  0xb7e403a0 in raise () from /lib/i686/cmov/libc.so.6
#2  0xb7e43a55 in abort () from /lib/i686/cmov/libc.so.6
#3  0xb773e06c in IA__g_assertion_message (domain=0xb777b29e "",
file=0xb74f44ce "gstaudiofilter.c", line=168, func=0xb74f4589
"gst_audio_filter_set_caps", 
    message=0x82e79b0 "assertion failed: (gst_caps_is_equal (incaps,
outcaps))") at
/build/buildd-glib2.0_2.20.4-1-i386-6KfM1O/glib2.0-2.20.4/glib/gtestutils.c:1301
#4  0xb773e68d in IA__g_assertion_message_expr (domain=0x0, file=0xb74f44ce
"gstaudiofilter.c", line=168, func=0xb74f4589 "gst_audio_filter_set_caps",
expr=0xb74f4538 "gst_caps_is_equal (incaps, outcaps)")
    at
/build/buildd-glib2.0_2.20.4-1-i386-6KfM1O/glib2.0-2.20.4/glib/gtestutils.c:1312
#5  0xb74e14c2 in gst_audio_filter_set_caps (btrans=0x8476050,
incaps=0x8474860, outcaps=0x8474c80) at gstaudiofilter.c:168
#6  0xb79f5422 in gst_base_transform_configure_caps (trans=0x8476050,
in=0x8474860, out=0x8474c80) at gstbasetransform.c:694
#7  0xb79f682a in gst_base_transform_setcaps (pad=0x836d400, caps=0x8474860) at
gstbasetransform.c:1107
#8  0xb796d84a in gst_pad_set_caps (pad=0x836d400, caps=0x8474860) at
gstpad.c:2506
#9  0xb796086c in gst_proxy_pad_do_setcaps (pad=0x8472800, caps=0x8474860) at
gstghostpad.c:305
#10 0xb796d84a in gst_pad_set_caps (pad=0x8472800, caps=0x8474860) at
gstpad.c:2506
#11 0xb796e48c in gst_pad_configure_sink (pad=0x8472800, caps=0x8474860) at
gstpad.c:2560
#12 0xb796e6f3 in gst_pad_chain_unchecked (pad=0x8472800, buffer=0x8444b70) at
gstpad.c:3962
#13 0xb796fa1a in gst_pad_push (pad=0x836d100, buffer=0x8444b70) at
gstpad.c:4144
#14 0xb751baad in gst_valve_chain (pad=0x836d1c0, buffer=0x8444b70) at
gstvalve.c:214
#15 0xb796e605 in gst_pad_chain_unchecked (pad=0x836d1c0, buffer=0x8444b70) at
gstpad.c:3977
#16 0xb796fa1a in gst_pad_push (pad=0x836d340, buffer=0x8444b70) at
gstpad.c:4144
#17 0xb79f837f in gst_base_transform_chain (pad=0x836d280, buffer=0x8444b70) at
gstbasetransform.c:2038
#18 0xb796e605 in gst_pad_chain_unchecked (pad=0x836d280, buffer=0x8444b70) at
gstpad.c:3977
#19 0xb796fa1a in gst_pad_push (pad=0x836d040, buffer=0x8444b70) at
gstpad.c:4144
#20 0xb79efd59 in gst_base_src_loop (pad=0x836d040) at gstbasesrc.c:2279
#21 0xb7992ec3 in gst_task_func (task=0x81c0870, tclass=0x82170d0) at
gsttask.c:172
#22 0xb7742b96 in g_thread_pool_thread_proxy (data=0x8217160) at
/build/buildd-glib2.0_2.20.4-1-i386-6KfM1O/glib2.0-2.20.4/glib/gthreadpool.c:265
#23 0xb774154f in g_thread_create_proxy (data=0x8443b18) at
/build/buildd-glib2.0_2.20.4-1-i386-6KfM1O/glib2.0-2.20.4/glib/gthread.c:635
#24 0xb7fa8495 in start_thread () from /lib/i686/cmov/libpthread.so.0
#25 0xb7ef6a1e in clone () from /lib/i686/cmov/libc.so.6
--------------------------------------------------

Please fix before the next release.

Thanks,
KaKaRoTo


-- 
See http://bugzilla.gnome.org/page.cgi?id=email.html for more info about why you received
this email, why you can't respond via email, how to stop receiving
emails (or reduce the number you receive), and how to contact someone
if you are having problems with the system.

You can add comments to this bug at http://bugzilla.gnome.org/show_bug.cgi?id=589663.




More information about the Gstreamer-bugs mailing list